commit | a24c1b1fa92904bfcd9ee276c00508a06821adbe | [log] [tgz] |
---|---|---|
author | Thomas Watson <twatson> | Tue Aug 25 16:11:25 2009 +0000 |
committer | Thomas Watson <twatson> | Tue Aug 25 16:11:25 2009 +0000 |
tree | b3ff9e38e283918bde3524dd7f9883544b8475bf | |
parent | a39b4272a05e369e5fdc4dce3f35bde0e328c332 [diff] |
Bug 287449 Behavior change between 3.4.2 and 3.5 around TCCL management when a Bundle is started
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/composites/CompositeShareTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/composites/CompositeShareTests.java index e9e61ea..bddeb51 100644 --- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/composites/CompositeShareTests.java +++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/composites/CompositeShareTests.java
@@ -933,6 +933,13 @@ } finally { Thread.currentThread().setContextClassLoader(current); } + // test that starting directly works + try { + testTCCL.stop(); + testTCCL.start(); + } catch (BundleException e) { + fail("Unepected", e); //$NON-NLS-1$ + } uninstallCompositeBundle(compositeBundle); }
diff --git a/bundles/org.eclipse.osgi/core/framework/org/eclipse/osgi/framework/internal/core/BundleContextImpl.java b/bundles/org.eclipse.osgi/core/framework/org/eclipse/osgi/framework/internal/core/BundleContextImpl.java index 073da42..b405a3d 100644 --- a/bundles/org.eclipse.osgi/core/framework/org/eclipse/osgi/framework/internal/core/BundleContextImpl.java +++ b/bundles/org.eclipse.osgi/core/framework/org/eclipse/osgi/framework/internal/core/BundleContextImpl.java
@@ -33,6 +33,7 @@ */ public class BundleContextImpl implements BundleContext, EventDispatcher { + private static boolean SET_TCCL = "true".equals(FrameworkProperties.getProperty("eclipse.bundle.setTCCL", "true")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ /** true if the bundle context is still valid */ private volatile boolean valid; @@ -810,6 +811,8 @@ } Object setContextFinder() { + if (!SET_TCCL) + return Boolean.FALSE; Thread currentThread = Thread.currentThread(); ClassLoader previousTCCL = currentThread.getContextClassLoader(); ClassLoader contextFinder = framework.getContextFinder();