You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by jb...@apache.org on 2018/11/22 13:31:31 UTC

[karaf] branch karaf-4.1.x updated: [KARAF-5854] Delete kar folder when exception occurs during installation

This is an automated email from the ASF dual-hosted git repository.

jbonofre pushed a commit to branch karaf-4.1.x
in repository https://gitbox.apache.org/repos/asf/karaf.git


The following commit(s) were added to refs/heads/karaf-4.1.x by this push:
     new 6ff26c4  [KARAF-5854] Delete kar folder when exception occurs during installation
6ff26c4 is described below

commit 6ff26c44fa3fd6ec1a82d7181c2c1486937ae5f8
Author: Jean-Baptiste Onofré <jb...@apache.org>
AuthorDate: Thu Nov 22 06:18:57 2018 +0100

    [KARAF-5854] Delete kar folder when exception occurs during installation
---
 .../main/java/org/apache/karaf/kar/internal/KarServiceImpl.java    | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/kar/src/main/java/org/apache/karaf/kar/internal/KarServiceImpl.java b/kar/src/main/java/org/apache/karaf/kar/internal/KarServiceImpl.java
index 144a99d..9a4b226 100644
--- a/kar/src/main/java/org/apache/karaf/kar/internal/KarServiceImpl.java
+++ b/kar/src/main/java/org/apache/karaf/kar/internal/KarServiceImpl.java
@@ -103,8 +103,8 @@ public class KarServiceImpl implements KarService {
     @Override
     public void install(URI karUri, File repoDir, File resourceDir, boolean noAutoStartBundles) throws Exception {
         busy.set(true);
+        Kar kar = new Kar(karUri);
         try {
-            Kar kar = new Kar(karUri);
             kar.extract(repoDir, resourceDir);
             writeToFile(kar.getFeatureRepos(), new File(repoDir, FEATURE_CONFIG_FILE));
             for (URI uri : kar.getFeatureRepos()) {
@@ -142,6 +142,11 @@ public class KarServiceImpl implements KarService {
                 }
                 delayedDeployerThread = null;
             }
+        } catch (Exception e) {
+            // cleanup state if exception occurs during installation
+            deleteRecursively(new File(storage, kar.getKarName()));
+            // throw the exception to the "clients"
+            throw e;
         } finally {
             busy.set(false);
         }