Author: tjwatson
Date: Thu Jul 24 13:45:09 2014
New Revision: 1613124

URL: http://svn.apache.org/r1613124
Log:
ARIES-1228 - subsytem install fails OSGI CT test on Java 8


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

Modified: 
aries/trunk/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/internal/SubsystemResourceUninstaller.java
URL: 
http://svn.apache.org/viewvc/aries/trunk/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/internal/SubsystemResourceUninstaller.java?rev=1613124&r1=1613123&r2=1613124&view=diff
==============================================================================
--- 
aries/trunk/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/internal/SubsystemResourceUninstaller.java
 (original)
+++ 
aries/trunk/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/internal/SubsystemResourceUninstaller.java
 Thu Jul 24 13:45:09 2014
@@ -66,10 +66,16 @@ public class SubsystemResourceUninstalle
        private void removeReferences() {
                if (!isExplicit()) {
                        removeReference();
-                       return;
                }
-               for (Subsystem subsystem : 
((BasicSubsystem)resource).getParents())
-                       removeReference((BasicSubsystem)subsystem, 
(BasicSubsystem)resource);
+               else {
+                       for (Subsystem subsystem : 
((BasicSubsystem)resource).getParents())
+                               removeReference((BasicSubsystem)subsystem, 
(BasicSubsystem)resource);
+                       Subsystems subsystems = 
Activator.getInstance().getSubsystems();
+                       // for explicit uninstall remove all references to 
subsystem.
+                       for (BasicSubsystem s : 
subsystems.getSubsystemsReferencing(resource)) {
+                               removeReference(s, resource);
+                       }
+               }
        }
        
        private void removeSubsystem() {


Reply via email to