You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by tj...@apache.org on 2014/07/24 15:45:09 UTC

svn commit: r1613124 - /aries/trunk/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/internal/SubsystemResourceUninstaller.java

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() {