FileBuffers.getTextFileBufferManager().disconnect(path, new SubProgressMonitor(monitor, 1));
FileBuffers.getTextFileBufferManager().disconnect(path, new SubProgressMonitor(monitor, 10));
	protected final Expression computeDefaultExpression(final IProgressMonitor monitor) {		Assert.isNotNull(monitor);		long serialVersionID= SERIAL_VALUE;		ILaunchConfiguration configuration= null;		try {			monitor.beginTask(CorrectionMessages.SerialVersionHashProposal_computing_id, 7);			final ICompilationUnit unit= getCompilationUnit();			final IJavaProject project= unit.getJavaProject();			final IPath path= unit.getResource().getFullPath();			try {				FileBuffers.getTextFileBufferManager().connect(path, new SubProgressMonitor(monitor, 1));				final ITextFileBuffer buffer= FileBuffers.getTextFileBufferManager().getTextFileBuffer(path);				if (buffer.isDirty() && buffer.isStateValidated() && buffer.isCommitable() && displayYesNoMessage(CorrectionMessages.SerialVersionHashProposal_save_caption, CorrectionMessages.SerialVersionHashProposal_save_message))					buffer.commit(new SubProgressMonitor(monitor, 1), true);				else					monitor.worked(1);			} finally {				FileBuffers.getTextFileBufferManager().disconnect(path, new SubProgressMonitor(monitor, 1));			}			project.getProject().build(IncrementalProjectBuilder.INCREMENTAL_BUILD, new SubProgressMonitor(monitor, 1));			final ILaunchConfigurationWorkingCopy copy= DebugPlugin.getDefault().getLaunchManager().getLaunchConfigurationType(LAUNCH_CONFIG_TYPE).newInstance(null, LAUNCH_CONFIG_TYPE + System.currentTimeMillis());			monitor.worked(1);			copy.setAttribute(IDebugUIConstants.ATTR_PRIVATE, true);			copy.setAttribute(IJavaLaunchConfigurationConstants.ATTR_DEFAULT_CLASSPATH, false);			copy.setAttribute(IJavaLaunchConfigurationConstants.ATTR_MAIN_TYPE_NAME, SERIAL_SUPPORT_CLASS);			copy.setAttribute(IJavaLaunchConfigurationConstants.ATTR_PROGRAM_ARGUMENTS, getQualifiedName());			copy.setAttribute(IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME, project.getElementName());			final String[] entries= computeUserAndBootClasspath(project);			final IRuntimeClasspathEntry[] classpath= new IRuntimeClasspathEntry[entries.length + 2];			monitor.worked(1);			classpath[0]= JavaRuntime.newRuntimeContainerClasspathEntry(new Path(JavaRuntime.JRE_CONTAINER), IRuntimeClasspathEntry.STANDARD_CLASSES, project);			classpath[1]= JavaRuntime.newArchiveRuntimeClasspathEntry(Path.fromOSString(Platform.asLocalURL(JavaPlugin.getDefault().getBundle().getEntry(SERIAL_SUPPORT_JAR)).getFile()));			for (int index= 2; index < classpath.length; index++)				classpath[index]= JavaRuntime.newArchiveRuntimeClasspathEntry(Path.fromOSString(entries[index - 2]));			final List mementos= new ArrayList(classpath.length);			IRuntimeClasspathEntry entry= null;			for (int index= 0; index < classpath.length; index++) {				entry= classpath[index];				mementos.add(entry.getMemento());			}			copy.setAttribute(IJavaLaunchConfigurationConstants.ATTR_CLASSPATH, mementos);			configuration= copy.doSave();			monitor.worked(1);			final ILaunchConfigurationDelegate delegate= configuration.getType().getDelegate(ILaunchManager.RUN_MODE);			if (delegate instanceof SerialVersionLaunchConfigurationDelegate) {				final SerialVersionLaunchConfigurationDelegate extension= (SerialVersionLaunchConfigurationDelegate) delegate;				configuration.launch(ILaunchManager.RUN_MODE, new SubProgressMonitor(monitor, 1), true, false);				monitor.worked(1);				serialVersionID= extension.getSerialVersionID();				final String message= extension.getErrorMessage();				if (message != null && message.length() > 0)					displayErrorMessage(message);			} else				displayErrorMessage(CorrectionMessages.SerialVersionHashProposal_wrong_launch_delegate);		} catch (CoreException exception) {			displayErrorMessage(exception);		} catch (IOException exception) {			displayErrorMessage(exception);		} finally {			try {				if (configuration != null)					configuration.delete();			} catch (CoreException exception) {				JavaPlugin.log(exception);			}			monitor.done();		}		return getAST().newNumberLiteral(serialVersionID + LONG_SUFFIX);	}