if ((type & EXTENSION_INSTALLED) != 0) { if (extensionListener == null) {  extensionListener = this; context.addBundleListener(extensionListener); } return; }
	protected void processFrameworkExtension(BaseData bundleData, byte type) throws BundleException {		if (addURLMethod == null)			throw new BundleException("Framework extensions are not supported.", new UnsupportedOperationException()); //$NON-NLS-1$		if ((type & (EXTENSION_UNINSTALLED | EXTENSION_UPDATED)) != 0)			// if uninstalled or updated then do nothing framework must be restarted.			return;		// first make sure this BundleData is not on the pre-configured osgi.framework.extensions list		String[] extensions = getConfiguredExtensions();		for (int i = 0; i < extensions.length; i++)			if (extensions[i].equals(bundleData.getSymbolicName()))				return;		File[] files = getExtensionFiles(bundleData);		if (files == null)			return;		ClassLoader cl = getClass().getClassLoader();		for (int i = 0; i < files.length; i++) {			if (files[i] == null)				continue;			Throwable exceptionLog = null;			try {				addURLMethod.invoke(cl, new Object[] {files[i].toURL()});			} catch (InvocationTargetException e) {				exceptionLog = e.getTargetException();			} catch (Throwable t) {				exceptionLog = t;			} finally {				if (exceptionLog != null)					adaptor.getEventPublisher().publishFrameworkEvent(FrameworkEvent.ERROR, bundleData.getBundle(), exceptionLog);			}		}		try {			cl.loadClass("thisIsNotAClass"); // initialize the new urls  //$NON-NLS-1$		} catch (ClassNotFoundException e) {			// do nothing		} 	}