monitor.beginTask(MessageFormat.format("{0}...", new String[] { configuration.getName()}), 4);
monitor.beginTask(MessageFormat.format("{0}...", new String[] { configuration.getName()}), 100);
	public final void launch(final ILaunchConfiguration configuration, final String mode, final ILaunch launch, IProgressMonitor monitor) throws CoreException {		Assert.isNotNull(configuration);		Assert.isNotNull(monitor);		try {			monitor.beginTask(MessageFormat.format("{0}...", new String[] { configuration.getName()}), 4); //$NON-NLS-1$			if (monitor.isCanceled())				return;			monitor.subTask(CorrectionMessages.SerialVersionLaunchConfigurationDelegate_verifying_launch_attributes);			final String type= verifyMainTypeName(configuration);			final IVMInstall install= verifyVMInstall(configuration);			final IVMRunner runner= new SerialVersionRunner(install);			monitor.worked(1);			monitor.subTask(CorrectionMessages.SerialVersionLaunchConfigurationDelegate_setting_up);			final String[] environment= DebugPlugin.getDefault().getLaunchManager().getEnvironment(configuration);			final String programArguments= getProgramArguments(configuration);			final String vmArguments= getVMArguments(configuration);			final ExecutionArguments execArguments= new ExecutionArguments(vmArguments, programArguments);			final Map attributes= getVMSpecificAttributesMap(configuration);			final String[] classpath= getClasspath(configuration);			monitor.worked(1);			final VMRunnerConfiguration vmConfiguration= new VMRunnerConfiguration(type, classpath);			vmConfiguration.setProgramArguments(execArguments.getProgramArgumentsArray());			vmConfiguration.setEnvironment(environment);			vmConfiguration.setVMArguments(execArguments.getVMArgumentsArray());			vmConfiguration.setVMSpecificAttributesMap(attributes);			vmConfiguration.setBootClassPath(getBootpath(configuration));			if (monitor.isCanceled())				return;			monitor.subTask(CorrectionMessages.SerialVersionLaunchConfigurationDelegate_launching_computation);			monitor.worked(1);			runner.run(vmConfiguration, launch, monitor);			if (monitor.isCanceled())				return;		} finally {			monitor.done();		}	}