Bug 449779 - Deadlock within the OSGi framework
 - Ensure permission caches are cleared even with a null loader to invalidateWiring
diff --git a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/framework/EquinoxContainerAdaptor.java b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/framework/EquinoxContainerAdaptor.java
index b2dbb2b..74058ea 100644
--- a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/framework/EquinoxContainerAdaptor.java
+++ b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/framework/EquinoxContainerAdaptor.java
@@ -147,25 +147,24 @@
 		if (current instanceof BundleLoader) {
 			BundleLoader bundleLoader = (BundleLoader) current;
 			bundleLoader.close();
-			long updatedTimestamp = storage.getModuleDatabase().getRevisionsTimestamp();
-			if (System.getSecurityManager() != null && updatedTimestamp != lastSecurityAdminFlush.getAndSet(updatedTimestamp)) {
-				storage.getSecurityAdmin().clearCaches();
-				List<Module> modules = storage.getModuleContainer().getModules();
-				for (Module module : modules) {
-					for (ModuleRevision revision : module.getRevisions().getModuleRevisions()) {
-						Generation generation = (Generation) revision.getRevisionInfo();
-						if (generation != null) {
-							ProtectionDomain domain = generation.getDomain();
-							if (domain != null) {
-								((BundlePermissions) domain.getPermissions()).clearPermissionCache();
-							}
+		}
+		long updatedTimestamp = storage.getModuleDatabase().getRevisionsTimestamp();
+		if (System.getSecurityManager() != null && updatedTimestamp != lastSecurityAdminFlush.getAndSet(updatedTimestamp)) {
+			storage.getSecurityAdmin().clearCaches();
+			List<Module> modules = storage.getModuleContainer().getModules();
+			for (Module module : modules) {
+				for (ModuleRevision revision : module.getRevisions().getModuleRevisions()) {
+					Generation generation = (Generation) revision.getRevisionInfo();
+					if (generation != null) {
+						ProtectionDomain domain = generation.getDomain();
+						if (domain != null) {
+							((BundlePermissions) domain.getPermissions()).clearPermissionCache();
 						}
 					}
 				}
 			}
 		}
 		clearManifestCache(moduleWiring);
-
 	}
 
 	private void clearManifestCache(ModuleWiring moduleWiring) {