if (state.installed.contains(b)
|| (b.getState() != Bundle.STARTING && b.getState() != Bundle.ACTIVE
&& getStartLevel().isBundlePersistentlyStarted(b))) {
// do no start bundles when user request it
Long bundleId = b.getBundleId();
BundleInfo bundleInfo = state.bundleInfos.get(bundleId);
if (bundleInfo == null || bundleInfo.isStart()) {
try {
b.start();
} catch (BundleException be) {
String msg = format("Could not start bundle %s in feature(s) %s: %s", b.getLocation(), getFeaturesContainingBundleList(b), be.getMessage());
throw new Exception(msg, be);