Bug 87511 Java serialization execution can not be removed from the debug view
The generation of the serial ID runs a VM. This process appears in the debug view, however the process is complete the entry is not removed from the debug view nor can it be removed manually. Side questions: - why do we need to run a VM? - why can't that be done in a background job?
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/SerialVersionHashProposal.java
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.getString("SerialVersionHashProposal.save.caption"), CorrectionMessages.getString("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= JavaRuntime.computeDefaultRuntimeClassPath(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++) {