Author: tjwatson
Date: Wed Jan  4 18:52:15 2017
New Revision: 1777364

URL: http://svn.apache.org/viewvc?rev=1777364&view=rev
Log:
[ARIES-1637] - Subsystem persistent cache is not successfully deleted on
uninstall

Modified:
    
aries/trunk/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/internal/Subsystems.java

Modified: 
aries/trunk/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/internal/Subsystems.java
URL: 
http://svn.apache.org/viewvc/aries/trunk/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/internal/Subsystems.java?rev=1777364&r1=1777363&r2=1777364&view=diff
==============================================================================
--- 
aries/trunk/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/internal/Subsystems.java
 (original)
+++ 
aries/trunk/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/internal/Subsystems.java
 Wed Jan  4 18:52:15 2017
@@ -27,12 +27,14 @@ import java.util.Set;
 
 import org.apache.aries.subsystem.core.archive.DeploymentManifest;
 import 
org.apache.aries.subsystem.core.internal.BundleResourceInstaller.BundleConstituent;
+import org.apache.aries.util.io.IOUtils;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.wiring.BundleRevision;
 import org.osgi.resource.Resource;
 import org.osgi.service.coordinator.Coordination;
 import org.osgi.service.subsystem.Subsystem;
+import org.osgi.service.subsystem.Subsystem.State;
 import org.osgi.service.subsystem.SubsystemException;
 
 public class Subsystems {
@@ -143,8 +145,13 @@ public class Subsystems {
                                try {
                                        for (File f : fileList) {
                                                BasicSubsystem s = new 
BasicSubsystem(f);
-                                               subsystems.add(s);
-                                               addSubsystem(s);
+                                               if 
(State.UNINSTALLED.equals(s.getState())) {
+                                                       // left over cache, 
delete this
+                                                       
IOUtils.deleteRecursive(f);
+                                               } else {
+                                                       subsystems.add(s);
+                                                       addSubsystem(s);
+                                               }
                                        }
                                        root = getSubsystemById(0);
                                        SubsystemIdentifier.setLastId(


Reply via email to