if (start) startBundles.add(bundles[i]);
	private static Bundle[] loadBasicBundles() throws BundleException, IOException, IllegalArgumentException, IllegalStateException {		long startTime = System.currentTimeMillis();		ServiceReference reference = context.getServiceReference(StartLevel.class.getName());		StartLevel startService = null;		if (reference != null)			startService = (StartLevel) context.getService(reference);		String[] installEntries = getArrayFromList(System.getProperty(PROP_BUNDLES), ","); //$NON-NLS-1$		int defaultStartLevel = Integer.parseInt(System.getProperty(PROP_BUNDLES_STARTLEVEL));		String syspath = getSysPath();		Bundle[] bundles = new Bundle[installEntries.length];		ArrayList startBundles = new ArrayList(installEntries.length);		boolean installedSomething = false;		for (int i = 0; i < installEntries.length; i++) {			String name = installEntries[i];			int level = defaultStartLevel;			// TODO setting start to true is a temporary hack while PDE gets up to speed			// with the change in syntax.  After next week's integration build this should be change			// back to false.			boolean start = true;			int index = name.indexOf('@');			if (index >= 0) {				String[] attributes = getArrayFromList(name.substring(index + 1, name.length()), ":"); //$NON-NLS-1$				name = name.substring(0, index);				for (int j = 0; j < attributes.length; j++) {					String attribute = attributes[j];					if (attribute.equals("start")) //$NON-NLS-1$						start = true;					else						level = Integer.parseInt(attribute);				}			}			URL location = searchForBundle(name, syspath);			if (location == null)				throw new IllegalArgumentException(EclipseAdaptorMsg.formatter.getString("ECLIPSE_STARTUP_BUNDLE_NOT_FOUND", name)); //$NON-NLS-1$			// don't need to install if it is already installed			String locationString = "initial@" + location.toExternalForm(); //$NON-NLS-1$			bundles[i] = getBundleByLocation(locationString);			if (bundles[i] == null) {				InputStream in = location.openStream();				bundles[i] = context.installBundle(locationString, in);				installedSomething = true;				if (start)					startBundles.add(bundles[i]);				if (level >= 0 && startService != null)					startService.setBundleStartLevel(bundles[i], level);			}		}		// If we installed something, force all basic bundles we installed to be resolved		if (installedSomething)			refreshPackages(bundles);		// schedule all basic bundles to be started		for (Iterator i = startBundles.iterator(); i.hasNext();) {			Bundle bundle = (Bundle) i.next();			if (bundle.getState() == Bundle.INSTALLED)				throw new IllegalStateException(EclipseAdaptorMsg.formatter.getString("ECLIPSE_STARTUP_ERROR_BUNDLE_NOT_RESOLVED", bundle.getLocation())); //$NON-NLS-1$			bundle.start();		}		context.ungetService(reference);		if (debug)			System.out.println("Time to load bundles: " + (System.currentTimeMillis() - startTime)); //$NON-NLS-1$		return bundles;	}