Program: 93030
Project: 93030
Buggy source:
@Override public void launch(ILaunchConfiguration config,String mode,ILaunch launch,IProgressMonitor m) throws CoreException {
  if (m == null) {
    m=new NullProgressMonitor();
  }
  SubMonitor monitor=SubMonitor.convert(m,"String_Node_Str",5);
  if (monitor.isCanceled()) {
    return;
  }
  String command=ConfigurationOptionsSetter.setOptions(config);
  if (config.getAttribute(LaunchConfigurationConstants.USE_COLOUR,LaunchConfigurationConstants.DEFAULT_USE_COLOUR))   useColour=true;
  if (!config.getAttribute(LaunchConfigurationConstants.ARGUMENTS,LaunchConfigurationConstants.DEFAULT_ARGUMENTS).equals(LaunchConfigurationConstants.DEFAULT_ARGUMENTS)) {
    arguments=config.getAttribute(LaunchConfigurationConstants.ARGUMENTS,LaunchConfigurationConstants.DEFAULT_ARGUMENTS);
    needsArguments=true;
  }
  if (!config.getAttribute(LaunchConfigurationConstants.BINARY_PATH,LaunchConfigurationConstants.DEFAULT_BINARY_PATH).equals(LaunchConfigurationConstants.DEFAULT_BINARY_PATH)) {
    binaryPath=config.getAttribute(LaunchConfigurationConstants.BINARY_PATH,LaunchConfigurationConstants.DEFAULT_BINARY_PATH);
    needsBinary=true;
  }
  if (!config.getAttribute(LaunchConfigurationConstants.BINARY_ARGUMENTS,LaunchConfigurationConstants.DEFAULT_BINARY_ARGUMENTS).equals(LaunchConfigurationConstants.DEFAULT_BINARY_ARGUMENTS)) {
    binaryArguments=config.getAttribute(LaunchConfigurationConstants.BINARY_ARGUMENTS,LaunchConfigurationConstants.DEFAULT_BINARY_ARGUMENTS);
  }
  if (!config.getAttribute(LaunchConfigurationConstants.SCRIPT_PATH,LaunchConfigurationConstants.DEFAULT_SCRIPT_PATH).equals(LaunchConfigurationConstants.DEFAULT_SCRIPT_PATH)) {
    scriptPath=config.getAttribute(LaunchConfigurationConstants.SCRIPT_PATH,LaunchConfigurationConstants.DEFAULT_SCRIPT_PATH);
  }
  if (config.getAttribute(LaunchConfigurationConstants.NEED_TO_GENERATE,LaunchConfigurationConstants.DEFAULT_NEED_TO_GENERATE)) {
    temporaryScript=new File(scriptPath);
    temporaryScript.delete();
    try {
      temporaryScript.createNewFile();
      FileWriter fstream=new FileWriter(temporaryScript);
      BufferedWriter out=new BufferedWriter(fstream);
      out.write(config.getAttribute(LaunchConfigurationConstants.GENERATED_SCRIPT,LaunchConfigurationConstants.DEFAULT_GENERATED_SCRIPT));
      out.close();
    }
 catch (    IOException e1) {
      e1.printStackTrace();
    }
  }
  outputPath=config.getAttribute(LaunchConfigurationConstants.OUTPUT_PATH,PluginConstants.DEFAULT_OUTPUT + System.currentTimeMillis());
  command+="String_Node_Str" + outputPath;
  try {
    File tempFile=new File(outputPath);
    tempFile.createNewFile();
  }
 catch (  IOException e1) {
    e1.printStackTrace();
  }
  if (monitor.isCanceled()) {
    return;
  }
  finishLaunch(launch,config,command,m,true);
}

Fixed version (ground truth):
@Override public void launch(ILaunchConfiguration config,String mode,ILaunch launch,IProgressMonitor m) throws CoreException {
  if (m == null) {
    m=new NullProgressMonitor();
  }
  SubMonitor monitor=SubMonitor.convert(m,"String_Node_Str",5);
  if (monitor.isCanceled()) {
    return;
  }
  String command=ConfigurationOptionsSetter.setOptions(config);
  if (config.getAttribute(LaunchConfigurationConstants.USE_COLOUR,LaunchConfigurationConstants.DEFAULT_USE_COLOUR))   useColour=true;
  if (!config.getAttribute(LaunchConfigurationConstants.ARGUMENTS,LaunchConfigurationConstants.DEFAULT_ARGUMENTS).equals(LaunchConfigurationConstants.DEFAULT_ARGUMENTS)) {
    arguments=config.getAttribute(LaunchConfigurationConstants.ARGUMENTS,LaunchConfigurationConstants.DEFAULT_ARGUMENTS);
    needsArguments=true;
  }
  if (!config.getAttribute(LaunchConfigurationConstants.BINARY_PATH,LaunchConfigurationConstants.DEFAULT_BINARY_PATH).equals(LaunchConfigurationConstants.DEFAULT_BINARY_PATH)) {
    binaryPath=config.getAttribute(LaunchConfigurationConstants.BINARY_PATH,LaunchConfigurationConstants.DEFAULT_BINARY_PATH);
    needsBinary=true;
  }
  if (!config.getAttribute(LaunchConfigurationConstants.BINARY_ARGUMENTS,LaunchConfigurationConstants.DEFAULT_BINARY_ARGUMENTS).equals(LaunchConfigurationConstants.DEFAULT_BINARY_ARGUMENTS)) {
    binaryArguments=config.getAttribute(LaunchConfigurationConstants.BINARY_ARGUMENTS,LaunchConfigurationConstants.DEFAULT_BINARY_ARGUMENTS);
  }
  if (!config.getAttribute(LaunchConfigurationConstants.SCRIPT_PATH,LaunchConfigurationConstants.DEFAULT_SCRIPT_PATH).equals(LaunchConfigurationConstants.DEFAULT_SCRIPT_PATH)) {
    scriptPath=config.getAttribute(LaunchConfigurationConstants.SCRIPT_PATH,LaunchConfigurationConstants.DEFAULT_SCRIPT_PATH);
  }
  if (config.getAttribute(LaunchConfigurationConstants.NEED_TO_GENERATE,LaunchConfigurationConstants.DEFAULT_NEED_TO_GENERATE)) {
    temporaryScript=new File(scriptPath);
    temporaryScript.delete();
    try {
      temporaryScript.createNewFile();
      FileWriter fstream=new FileWriter(temporaryScript);
      BufferedWriter out=new BufferedWriter(fstream);
      out.write(config.getAttribute(LaunchConfigurationConstants.GENERATED_SCRIPT,LaunchConfigurationConstants.DEFAULT_GENERATED_SCRIPT));
      out.close();
    }
 catch (    IOException e1) {
      e1.printStackTrace();
    }
  }
  outputPath=config.getAttribute(LaunchConfigurationConstants.OUTPUT_PATH,PluginConstants.DEFAULT_OUTPUT);
  command+="String_Node_Str" + outputPath;
  try {
    File tempFile=new File(outputPath);
    tempFile.createNewFile();
  }
 catch (  IOException e1) {
    e1.printStackTrace();
  }
  if (monitor.isCanceled()) {
    return;
  }
  finishLaunch(launch,config,command,m,true);
}