Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Watson2009-08-25 16:11:25 +0000
committerThomas Watson2009-08-25 16:11:25 +0000
commita24c1b1fa92904bfcd9ee276c00508a06821adbe (patch)
treeb3ff9e38e283918bde3524dd7f9883544b8475bf
parenta39b4272a05e369e5fdc4dce3f35bde0e328c332 (diff)
downloadrt.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
-rw-r--r--bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/composites/CompositeShareTests.java7
-rw-r--r--bundles/org.eclipse.osgi/core/framework/org/eclipse/osgi/framework/internal/core/BundleContextImpl.java3
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();

Back to the top