diff options
author | Thomas Watson | 2009-08-25 16:11:25 +0000 |
---|---|---|
committer | Thomas Watson | 2009-08-25 16:11:25 +0000 |
commit | a24c1b1fa92904bfcd9ee276c00508a06821adbe (patch) | |
tree | b3ff9e38e283918bde3524dd7f9883544b8475bf | |
parent | a39b4272a05e369e5fdc4dce3f35bde0e328c332 (diff) | |
download | rt.equinox.framework-a24c1b1fa92904bfcd9ee276c00508a06821adbe.tar.gz rt.equinox.framework-a24c1b1fa92904bfcd9ee276c00508a06821adbe.tar.xz rt.equinox.framework-a24c1b1fa92904bfcd9ee276c00508a06821adbe.zip |
Bug 287449 Behavior change between 3.4.2 and 3.5 around TCCL management when a Bundle is startedR35x_v20090825
2 files changed, 10 insertions, 0 deletions
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 e9e61ea97..bddeb515d 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 @@ public class CompositeShareTests extends AbstractCompositeTests { } 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 073da424f..b405a3d69 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 @@ import org.osgi.framework.*; */ 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 @@ public class BundleContextImpl implements BundleContext, EventDispatcher { } Object setContextFinder() { + if (!SET_TCCL) + return Boolean.FALSE; Thread currentThread = Thread.currentThread(); ClassLoader previousTCCL = currentThread.getContextClassLoader(); ClassLoader contextFinder = framework.getContextFinder(); |