if (stateManager != null) stateManager.getSystemState().removeBundle(data.getBundleID());
updateState(data, BundleEvent.UNINSTALLED);
	public BundleOperation uninstallBundle(final org.eclipse.osgi.framework.adaptor.BundleData bundledata) {		return (new BundleOperation() {			private AbstractBundleData data;			/**			 * Perform the change to persistent storage.			 *			 * @return Bundle object for the target bundle.			 * @throws BundleException If a failure occured modifiying peristent storage.			 */			public org.eclipse.osgi.framework.adaptor.BundleData begin() throws BundleException {				this.data = (AbstractBundleData) bundledata;				return (bundledata);			}			/**			 * Commit the change to persistent storage.			 *			 * @param postpone If true, the bundle's persistent			 * storage cannot be immediately reclaimed.			 * @throws BundleException If a failure occured modifiying peristent storage.			 */			public void commit(boolean postpone) throws BundleException {				File bundleDir = data.getBundleStoreDir();				if (postpone || !rm(bundleDir)) {					/* mark this bundle to be deleted to ensure it is fully cleaned up					 * on next restart.					 */					File delete = new File(bundleDir, ".delete"); //$NON-NLS-1$					if (!delete.exists()) {						try {							/* create .delete */							FileOutputStream out = new FileOutputStream(delete);							out.close();						} catch (IOException e) {							if (Debug.DEBUG && Debug.DEBUG_GENERAL) {								Debug.println("Unable to write " + delete.getPath() + ": " + e.getMessage()); //$NON-NLS-1$ //$NON-NLS-2$							}						}					}				}				data.setLastModified(System.currentTimeMillis());				if (stateManager != null)					stateManager.getSystemState().removeBundle(data.getBundleID());			}			/**			 * Undo the change to persistent storage.			 *			 * @throws BundleException If a failure occured modifiying peristent storage.			 */			public void undo() throws BundleException {			}		});	}