Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Watson2014-08-28 16:18:46 +0000
committerThomas Watson2014-08-28 16:42:48 +0000
commit033dd7e0f4c681a98bce931b2797b3cbe77c35ec (patch)
tree0f8ab6ae6e9dcc8d1f08214cb1861c15b00781fb
parentcbb414aecb66346ee5f871032736c868dcd8bbdb (diff)
downloadrt.equinox.framework-033dd7e0f4c681a98bce931b2797b3cbe77c35ec.tar.gz
rt.equinox.framework-033dd7e0f4c681a98bce931b2797b3cbe77c35ec.tar.xz
rt.equinox.framework-033dd7e0f4c681a98bce931b2797b3cbe77c35ec.zip
Bug 442641 - Fix for dynamically reacting to new system bundle fragmentsM20140829-0500
for NSL Change-Id: I3ab598e80e4122e01f0a7c3b548494c37573296c Signed-off-by: Thomas Watson <tjwatson@us.ibm.com>
-rw-r--r--bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/loader/BundleLoader.java13
-rw-r--r--bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/loader/SystemBundleLoader.java3
2 files changed, 13 insertions, 3 deletions
diff --git a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/loader/BundleLoader.java b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/loader/BundleLoader.java
index 62beb5bda..a59b6a740 100644
--- a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/loader/BundleLoader.java
+++ b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/loader/BundleLoader.java
@@ -34,8 +34,7 @@ import org.eclipse.osgi.internal.loader.sources.*;
import org.eclipse.osgi.storage.BundleInfo.Generation;
import org.eclipse.osgi.util.ManifestElement;
import org.osgi.framework.*;
-import org.osgi.framework.namespace.BundleNamespace;
-import org.osgi.framework.namespace.PackageNamespace;
+import org.osgi.framework.namespace.*;
import org.osgi.framework.wiring.BundleWiring;
/**
@@ -245,6 +244,16 @@ public class BundleLoader extends ModuleLoader {
synchronized (classLoaderMonitor) {
addFragmentExports(wiring.getModuleCapabilities(PackageNamespace.PACKAGE_NAMESPACE));
loadClassLoaderFragments(fragments);
+ clearManifestLocalizationCache();
+ }
+ }
+
+ protected void clearManifestLocalizationCache() {
+ Generation hostGen = (Generation) wiring.getRevision().getRevisionInfo();
+ hostGen.clearManifestCache();
+ for (ModuleWire fragmentWire : wiring.getProvidedModuleWires(HostNamespace.HOST_NAMESPACE)) {
+ Generation fragGen = (Generation) fragmentWire.getRequirer().getRevisionInfo();
+ fragGen.clearManifestCache();
}
}
diff --git a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/loader/SystemBundleLoader.java b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/loader/SystemBundleLoader.java
index c79f4cda1..e81a4ba8c 100644
--- a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/loader/SystemBundleLoader.java
+++ b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/loader/SystemBundleLoader.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2003, 2013 IBM Corporation and others.
+ * Copyright (c) 2003, 2014 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -132,6 +132,7 @@ public class SystemBundleLoader extends BundleLoader {
systemModule.getContainer().getAdaptor().publishContainerEvent(ContainerEvent.ERROR, systemModule, e);
}
}
+ getClasspathManager().loadFragments(fragments);
}
}
}

Back to the top