BundleException sbe = null;
	private void resumeBundles(AbstractBundle[] launch, boolean launchingFW) {		BundleException sbe = null;		if (launchingFW) {			/* Start the system bundle */			try {				framework.systemBundle.context.start();			} catch (BundleException be) {				// TODO: We may have to do something more drastic here if the SystemBundle did not start.				sbe = be;			}		}		/* Resume all bundles that were previously started and whose startlevel is <= the active startlevel */		int fwsl = framework.startLevelManager.getStartLevel();		for (int i = 0; i < launch.length; i++) {			int bsl = launch[i].getStartLevel();			if (bsl < fwsl) {				// skip bundles who should have already been started				continue;			} else if (bsl == fwsl) {				if (Debug.DEBUG && Debug.DEBUG_STARTLEVEL) {					Debug.println("SLL: Active sl = " + fwsl + "; Bundle " + launch[i].getBundleId() + " sl = " + bsl);				}				framework.resumeBundle(launch[i]);			} else {				// can stop resuming bundles since any remaining bundles have a greater startlevel than the framework active startlevel				break;			}		}		if (sbe == null) {			framework.systemBundle.state = AbstractBundle.ACTIVE;		} else {			if (Debug.DEBUG && Debug.DEBUG_STARTLEVEL) {				Debug.println("SLL: Bundle resume exception: " + sbe.getMessage());				Debug.printStackTrace(sbe.getNestedException());			}			framework.publishFrameworkEvent(FrameworkEvent.ERROR, framework.systemBundle, sbe);		}	}