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);
}