Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Watson2010-03-18 21:14:48 +0000
committerThomas Watson2010-03-18 21:14:48 +0000
commit4f8e19c4a6295c4be5b3eb598e5220fac0f8f9bd (patch)
tree031c522dca1703278a891d21fc74a04fbd0aea93 /bundles
parentd2e99ea826860c8301f1f800d9c5a6899a5edca1 (diff)
downloadrt.equinox.framework-4f8e19c4a6295c4be5b3eb598e5220fac0f8f9bd.tar.gz
rt.equinox.framework-4f8e19c4a6295c4be5b3eb598e5220fac0f8f9bd.tar.xz
rt.equinox.framework-4f8e19c4a6295c4be5b3eb598e5220fac0f8f9bd.zip
Bug 306181 - Cannot install new software after updating to last I-buildv20100322-1720
Diffstat (limited to 'bundles')
-rw-r--r--bundles/org.eclipse.osgi.tests/.classpath2
-rw-r--r--bundles/org.eclipse.osgi.tests/.project5
-rw-r--r--bundles/org.eclipse.osgi.tests/All OSGi Tests.launch2
-rw-r--r--bundles/org.eclipse.osgi.tests/build.properties8
-rw-r--r--bundles/org.eclipse.osgi.tests/bundles_src/test.bug306181a/META-INF/MANIFEST.MF7
-rw-r--r--bundles/org.eclipse.osgi.tests/bundles_src/test.bug306181a/test/bug306181a/Activator.java37
-rw-r--r--bundles/org.eclipse.osgi.tests/bundles_src/test.bug306181b/META-INF/MANIFEST.MF7
-rw-r--r--bundles/org.eclipse.osgi.tests/bundles_src/test.bug306181b/component.xml9
-rw-r--r--bundles/org.eclipse.osgi.tests/bundles_src/test.bug306181b/test/bug306181b/Component.java19
-rw-r--r--bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/AbstractBundleTests.java4
-rw-r--r--bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/ClassLoadingBundleTests.java55
-rw-r--r--bundles/org.eclipse.osgi/core/framework/org/eclipse/osgi/framework/internal/core/AbstractBundle.java7
-rw-r--r--bundles/org.eclipse.osgi/core/framework/org/eclipse/osgi/framework/internal/core/StartLevelManager.java31
13 files changed, 171 insertions, 22 deletions
diff --git a/bundles/org.eclipse.osgi.tests/.classpath b/bundles/org.eclipse.osgi.tests/.classpath
index 21621bac4..26a9249b6 100644
--- a/bundles/org.eclipse.osgi.tests/.classpath
+++ b/bundles/org.eclipse.osgi.tests/.classpath
@@ -107,6 +107,8 @@
<classpathentry kind="src" output="bundle_tests/test.bug287636.a2" path="bundles_src/test.bug287636.a2"/>
<classpathentry kind="src" output="bundle_tests/test.bug287636.b" path="bundles_src/test.bug287636.b"/>
<classpathentry kind="src" output="bundle_tests/test.bug287750" path="bundles_src/test.bug287750"/>
+ <classpathentry kind="src" output="bundle_tests/test.bug306181a" path="bundles_src/test.bug306181a"/>
+ <classpathentry kind="src" output="bundle_tests/test.bug306181b" path="bundles_src/test.bug306181b"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="output" path="bin"/>
diff --git a/bundles/org.eclipse.osgi.tests/.project b/bundles/org.eclipse.osgi.tests/.project
index 1650a5a2d..3daf4e72e 100644
--- a/bundles/org.eclipse.osgi.tests/.project
+++ b/bundles/org.eclipse.osgi.tests/.project
@@ -23,6 +23,11 @@
<arguments>
</arguments>
</buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ds.core.builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
diff --git a/bundles/org.eclipse.osgi.tests/All OSGi Tests.launch b/bundles/org.eclipse.osgi.tests/All OSGi Tests.launch
index d2433a886..ebb0a67ad 100644
--- a/bundles/org.eclipse.osgi.tests/All OSGi Tests.launch
+++ b/bundles/org.eclipse.osgi.tests/All OSGi Tests.launch
@@ -5,6 +5,7 @@
<booleanAttribute key="automaticAdd" value="true"/>
<booleanAttribute key="automaticValidate" value="false"/>
<stringAttribute key="bootstrap" value=""/>
+<stringAttribute key="checked" value="[NONE]"/>
<booleanAttribute key="clearConfig" value="true"/>
<booleanAttribute key="clearws" value="true"/>
<booleanAttribute key="clearwslog" value="false"/>
@@ -37,6 +38,7 @@
<booleanAttribute key="show_selected_only" value="false"/>
<stringAttribute key="templateConfig" value=""/>
<booleanAttribute key="tracing" value="false"/>
+<booleanAttribute key="useCustomFeatures" value="false"/>
<booleanAttribute key="useDefaultConfig" value="true"/>
<booleanAttribute key="useDefaultConfigArea" value="true"/>
<booleanAttribute key="useProduct" value="false"/>
diff --git a/bundles/org.eclipse.osgi.tests/build.properties b/bundles/org.eclipse.osgi.tests/build.properties
index 2fa92ee8c..278b77422 100644
--- a/bundles/org.eclipse.osgi.tests/build.properties
+++ b/bundles/org.eclipse.osgi.tests/build.properties
@@ -229,6 +229,10 @@ source.bundle_tests/test.bug287636.b.jar = bundles_src/test.bug287636.b/
manifest.bundle_tests/test.bug287636.b.jar = META-INF/MANIFEST.MF
source.bundle_tests/test.bug287750.jar = bundles_src/test.bug287750/
manifest.bundle_tests/test.bug287750.jar = META-INF/MANIFEST.MF
+source.bundle_tests/test.bug306181a.jar = bundles_src/test.bug306181a/
+manifest.bundle_tests/test.bug306181a.jar = META-INF/MANIFEST.MF
+source.bundle_tests/test.bug306181b.jar = bundles_src/test.bug306181b/
+manifest.bundle_tests/test.bug306181b.jar = META-INF/MANIFEST.MF
jars.compile.order = bundle_tests/ext.framework.b.jar,\
osgitests.jar,\
@@ -336,4 +340,6 @@ jars.compile.order = bundle_tests/ext.framework.b.jar,\
bundle_tests/test.bug287636.a1.jar,\
bundle_tests/test.bug287636.a2.jar,\
bundle_tests/test.bug287636.b.jar,\
- test.bug287750.jar
+ bundle_tests/test.bug287750.jar,\
+ bundle_tests/test.bug306181a.jar,\
+ bundle_tests/test.bug306181b.jar
diff --git a/bundles/org.eclipse.osgi.tests/bundles_src/test.bug306181a/META-INF/MANIFEST.MF b/bundles/org.eclipse.osgi.tests/bundles_src/test.bug306181a/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..3dcf7333d
--- /dev/null
+++ b/bundles/org.eclipse.osgi.tests/bundles_src/test.bug306181a/META-INF/MANIFEST.MF
@@ -0,0 +1,7 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: test.bug306181a
+Bundle-SymbolicName: test.bug306181a
+Bundle-Version: 1.0.0
+Bundle-Activator: test.bug306181a.Activator
+Import-Package: org.osgi.framework
diff --git a/bundles/org.eclipse.osgi.tests/bundles_src/test.bug306181a/test/bug306181a/Activator.java b/bundles/org.eclipse.osgi.tests/bundles_src/test.bug306181a/test/bug306181a/Activator.java
new file mode 100644
index 000000000..03496cbf4
--- /dev/null
+++ b/bundles/org.eclipse.osgi.tests/bundles_src/test.bug306181a/test/bug306181a/Activator.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2010 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
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package test.bug306181a;
+
+import java.util.Hashtable;
+import org.osgi.framework.*;
+
+public class Activator implements BundleActivator {
+
+ public void start(BundleContext context) throws Exception {
+ ServiceReference[] refs = context.getServiceReferences(Runnable.class.getName(), "(test=bug306181)");
+ String error = null;
+ if (refs == null)
+ error = "Did not find expected service";
+ else if (refs.length != 1)
+ error = "Found wrong number of services: " + refs.length;
+ if (error != null) {
+ Hashtable props = new Hashtable();
+ props.put("test", "bug306181");
+ context.registerService(String.class.getName(), error, props);
+ }
+ }
+
+ public void stop(BundleContext context) throws Exception {
+ // TODO Auto-generated method stub
+
+ }
+
+}
diff --git a/bundles/org.eclipse.osgi.tests/bundles_src/test.bug306181b/META-INF/MANIFEST.MF b/bundles/org.eclipse.osgi.tests/bundles_src/test.bug306181b/META-INF/MANIFEST.MF
new file mode 100644
index 000000000..2bf1bba15
--- /dev/null
+++ b/bundles/org.eclipse.osgi.tests/bundles_src/test.bug306181b/META-INF/MANIFEST.MF
@@ -0,0 +1,7 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: test.bug306181b
+Bundle-SymbolicName: test.bug306181b
+Bundle-Version: 1.0.0
+Service-Component: component.xml
+Bundle-ActivationPolicy: lazy
diff --git a/bundles/org.eclipse.osgi.tests/bundles_src/test.bug306181b/component.xml b/bundles/org.eclipse.osgi.tests/bundles_src/test.bug306181b/component.xml
new file mode 100644
index 000000000..a7e4ee4dd
--- /dev/null
+++ b/bundles/org.eclipse.osgi.tests/bundles_src/test.bug306181b/component.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="org.eclipse.osgi.tests">
+ <implementation class="test.bug306181b.Component"/>
+ <property name="test" type="String" value="bug306181"/>
+ <service>
+ <provide interface="java.lang.Runnable"/>
+ </service>
+
+</scr:component>
diff --git a/bundles/org.eclipse.osgi.tests/bundles_src/test.bug306181b/test/bug306181b/Component.java b/bundles/org.eclipse.osgi.tests/bundles_src/test.bug306181b/test/bug306181b/Component.java
new file mode 100644
index 000000000..17f4234c2
--- /dev/null
+++ b/bundles/org.eclipse.osgi.tests/bundles_src/test.bug306181b/test/bug306181b/Component.java
@@ -0,0 +1,19 @@
+/*******************************************************************************
+ * Copyright (c) 2006, 20010 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
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package test.bug306181b;
+
+public class Component implements Runnable {
+
+ public void run() {
+ // nothing
+ }
+
+}
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/AbstractBundleTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/AbstractBundleTests.java
index 7735ba56c..4b1125efa 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/AbstractBundleTests.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/AbstractBundleTests.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2006, 2009 IBM Corporation and others.
+ * Copyright (c) 2006, 20010 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
@@ -157,7 +157,7 @@ public class AbstractBundleTests extends CoreTest {
result.append("INSTALLED");
break;
case BundleEvent.LAZY_ACTIVATION :
- result.append("LAZY_STARTING");
+ result.append("LAZY_ACTIVATION");
break;
case BundleEvent.RESOLVED :
result.append("RESOLVED");
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/ClassLoadingBundleTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/ClassLoadingBundleTests.java
index 6cf9a8829..ec9308e8e 100644
--- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/ClassLoadingBundleTests.java
+++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/ClassLoadingBundleTests.java
@@ -203,17 +203,17 @@ public class ClassLoadingBundleTests extends AbstractBundleTests {
expectedEvents = new Object[14];
int i = 0;
- expectedEvents[i++] = new BundleEvent(BundleEvent.STARTING, chainTest);
+ expectedEvents[i++] = new BundleEvent(BundleEvent.LAZY_ACTIVATION, chainTestA);
expectedEvents[i++] = new BundleEvent(BundleEvent.LAZY_ACTIVATION, chainTestB);
+ expectedEvents[i++] = new BundleEvent(BundleEvent.LAZY_ACTIVATION, chainTestC);
+ expectedEvents[i++] = new BundleEvent(BundleEvent.LAZY_ACTIVATION, chainTestD);
+ expectedEvents[i++] = new BundleEvent(BundleEvent.STARTING, chainTest);
expectedEvents[i++] = new BundleEvent(BundleEvent.STARTING, chainTestB);
expectedEvents[i++] = new BundleEvent(BundleEvent.STARTED, chainTestB);
- expectedEvents[i++] = new BundleEvent(BundleEvent.LAZY_ACTIVATION, chainTestC);
expectedEvents[i++] = new BundleEvent(BundleEvent.STARTING, chainTestC);
expectedEvents[i++] = new BundleEvent(BundleEvent.STARTED, chainTestC);
- expectedEvents[i++] = new BundleEvent(BundleEvent.LAZY_ACTIVATION, chainTestA);
expectedEvents[i++] = new BundleEvent(BundleEvent.STARTING, chainTestA);
expectedEvents[i++] = new BundleEvent(BundleEvent.STARTED, chainTestA);
- expectedEvents[i++] = new BundleEvent(BundleEvent.LAZY_ACTIVATION, chainTestD);
expectedEvents[i++] = new BundleEvent(BundleEvent.STARTING, chainTestD);
expectedEvents[i++] = new BundleEvent(BundleEvent.STARTED, chainTestD);
expectedEvents[i++] = new BundleEvent(BundleEvent.STARTED, chainTest);
@@ -269,17 +269,18 @@ public class ClassLoadingBundleTests extends AbstractBundleTests {
expectedEvents = new Object[14];
int i = 0;
- expectedEvents[i++] = new BundleEvent(BundleEvent.STARTING, chainTest);
+
+ expectedEvents[i++] = new BundleEvent(BundleEvent.LAZY_ACTIVATION, chainTestA);
expectedEvents[i++] = new BundleEvent(BundleEvent.LAZY_ACTIVATION, chainTestB);
+ expectedEvents[i++] = new BundleEvent(BundleEvent.LAZY_ACTIVATION, chainTestC);
+ expectedEvents[i++] = new BundleEvent(BundleEvent.LAZY_ACTIVATION, chainTestD);
+ expectedEvents[i++] = new BundleEvent(BundleEvent.STARTING, chainTest);
expectedEvents[i++] = new BundleEvent(BundleEvent.STARTING, chainTestB);
expectedEvents[i++] = new BundleEvent(BundleEvent.STARTED, chainTestB);
- expectedEvents[i++] = new BundleEvent(BundleEvent.LAZY_ACTIVATION, chainTestC);
expectedEvents[i++] = new BundleEvent(BundleEvent.STARTING, chainTestC);
expectedEvents[i++] = new BundleEvent(BundleEvent.STARTED, chainTestC);
- expectedEvents[i++] = new BundleEvent(BundleEvent.LAZY_ACTIVATION, chainTestA);
expectedEvents[i++] = new BundleEvent(BundleEvent.STARTING, chainTestA);
expectedEvents[i++] = new BundleEvent(BundleEvent.STARTED, chainTestA);
- expectedEvents[i++] = new BundleEvent(BundleEvent.LAZY_ACTIVATION, chainTestD);
expectedEvents[i++] = new BundleEvent(BundleEvent.STARTING, chainTestD);
expectedEvents[i++] = new BundleEvent(BundleEvent.STARTED, chainTestD);
expectedEvents[i++] = new BundleEvent(BundleEvent.STARTED, chainTest);
@@ -1562,6 +1563,44 @@ public class ClassLoadingBundleTests extends AbstractBundleTests {
assertFalse("Found resources!", resources.hasMoreElements());
}
+ public void testBug306181() throws BundleException {
+ StartLevel sl = installer.getStartLevel();
+ int origSL = sl.getStartLevel();
+ int origBundleSL = sl.getInitialBundleStartLevel();
+ int newSL = origSL + 1;
+ sl.setInitialBundleStartLevel(newSL);
+ try {
+ Bundle a = installer.installBundle("test.bug306181a");
+ Bundle b = installer.installBundle("test.bug306181b");
+
+ sl.setBundleStartLevel(a, newSL);
+ sl.setBundleStartLevel(b, newSL);
+ installer.resolveBundles(new Bundle[] {a, b});
+ a.start();
+ b.start(Bundle.START_ACTIVATION_POLICY);
+
+ sl.setStartLevel(newSL);
+ Object[] expectedFrameworkEvents = new Object[1];
+ expectedFrameworkEvents[0] = new FrameworkEvent(FrameworkEvent.STARTLEVEL_CHANGED, OSGiTestsActivator.getContext().getBundle(0), null);
+ Object[] actualFrameworkEvents = frameworkListenerResults.getResults(1);
+ compareResults(expectedFrameworkEvents, actualFrameworkEvents);
+
+ assertEquals("Bundle A is not active", Bundle.ACTIVE, a.getState());
+ assertEquals("Bundle B is not active", Bundle.STARTING, b.getState());
+ ServiceReference[] regs = a.getRegisteredServices();
+ if (regs != null && regs.length > 0) {
+ fail(OSGiTestsActivator.getContext().getService(regs[0]).toString());
+ }
+ } finally {
+ sl.setInitialBundleStartLevel(origBundleSL);
+ sl.setStartLevel(origSL);
+ Object[] expectedFrameworkEvents = new Object[1];
+ expectedFrameworkEvents[0] = new FrameworkEvent(FrameworkEvent.STARTLEVEL_CHANGED, OSGiTestsActivator.getContext().getBundle(0), null);
+ Object[] actualFrameworkEvents = frameworkListenerResults.getResults(1);
+ compareResults(expectedFrameworkEvents, actualFrameworkEvents);
+ }
+ }
+
private void doTestArrayTypeLoad(String name) {
try {
Class arrayType = OSGiTestsActivator.getContext().getBundle().loadClass(name);
diff --git a/bundles/org.eclipse.osgi/core/framework/org/eclipse/osgi/framework/internal/core/AbstractBundle.java b/bundles/org.eclipse.osgi/core/framework/org/eclipse/osgi/framework/internal/core/AbstractBundle.java
index 66467e930..5921a07bf 100644
--- a/bundles/org.eclipse.osgi/core/framework/org/eclipse/osgi/framework/internal/core/AbstractBundle.java
+++ b/bundles/org.eclipse.osgi/core/framework/org/eclipse/osgi/framework/internal/core/AbstractBundle.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2003, 2009 IBM Corporation and others.
+ * Copyright (c) 2003, 2010 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
@@ -195,6 +195,11 @@ public abstract class AbstractBundle implements Bundle, Comparable, KeyedElement
return ((state & (ACTIVE | STARTING)) != 0);
}
+ boolean isLazyStart() {
+ int status = bundledata.getStatus();
+ return (status & Constants.BUNDLE_ACTIVATION_POLICY) != 0 && (status & Constants.BUNDLE_LAZY_START) != 0;
+ }
+
/**
* Return true if the bundle is resolved.
*
diff --git a/bundles/org.eclipse.osgi/core/framework/org/eclipse/osgi/framework/internal/core/StartLevelManager.java b/bundles/org.eclipse.osgi/core/framework/org/eclipse/osgi/framework/internal/core/StartLevelManager.java
index a26ec7177..5ecc3e39a 100644
--- a/bundles/org.eclipse.osgi/core/framework/org/eclipse/osgi/framework/internal/core/StartLevelManager.java
+++ b/bundles/org.eclipse.osgi/core/framework/org/eclipse/osgi/framework/internal/core/StartLevelManager.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2003, 2009 IBM Corporation and others.
+ * Copyright (c) 2003, 2010 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
@@ -243,6 +243,8 @@ public class StartLevelManager implements EventDispatcher, EventListener, StartL
Debug.println("sync - incrementing Startlevel from " + tempSL); //$NON-NLS-1$
}
tempSL++;
+ // Note that we must get a new list of installed bundles each time;
+ // this is because additional bundles could have been installed from the previous start-level
incFWSL(i + 1, getInstalledBundles(framework.bundles, false));
}
if (launching) {
@@ -458,7 +460,7 @@ public class StartLevelManager implements EventDispatcher, EventListener, StartL
// save the startlevel
saveActiveStartLevel(incToSL);
// resume all bundles at the startlevel
- resumeBundles(launchBundles);
+ resumeBundles(launchBundles, incToSL);
}
/**
@@ -536,22 +538,31 @@ public class StartLevelManager implements EventDispatcher, EventListener, StartL
}
/**
- * Resume all bundles in the launch list
+ * Resume all bundles in the launch list at the specified start-level
* @param launch a list of Bundle Objects to launch
+ * @param currentSL the current start-level that the bundles must meet to be resumed
*/
- private void resumeBundles(AbstractBundle[] launch) {
- /* Resume all bundles that were previously started and whose startlevel is <= the active startlevel */
- int fwsl = getStartLevel();
+ private void resumeBundles(AbstractBundle[] launch, int currentSL) {
+ // Resume all bundles that were previously started and whose startlevel is <= the active startlevel
+ // first resume the lazy activated bundles
+ resumeBundles(launch, true, currentSL);
+ // now resume all non lazy bundles
+ resumeBundles(launch, false, currentSL);
+ }
+
+ private void resumeBundles(AbstractBundle[] launch, boolean lazyOnly, int currentSL) {
for (int i = 0; i < launch.length && !framework.isForcedRestart(); i++) {
int bsl = launch[i].getStartLevel();
- if (bsl < fwsl) {
+ if (bsl < currentSL) {
// skip bundles who should have already been started
continue;
- } else if (bsl == fwsl) {
+ } else if (bsl == currentSL) {
if (Debug.DEBUG && Debug.DEBUG_STARTLEVEL) {
- Debug.println("SLL: Active sl = " + fwsl + "; Bundle " + launch[i].getBundleId() + " sl = " + bsl); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ Debug.println("SLL: Active sl = " + currentSL + "; Bundle " + launch[i].getBundleId() + " sl = " + bsl); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
}
- framework.resumeBundle(launch[i]);
+ boolean isLazyStart = launch[i].isLazyStart();
+ if (lazyOnly ? isLazyStart : !isLazyStart)
+ framework.resumeBundle(launch[i]);
} else {
// can stop resuming bundles since any remaining bundles have a greater startlevel than the framework active startlevel
break;

Back to the top