Program: 75034
Project: 75034
Buggy source:
protected void _update(){
  if (!_needRefactoring)   return;
  IFile file=(IFile)getEditorInput().getAdapter(IFile.class);
  IFile previewFile=((IFileEditorInput)_preview.getEditorInput()).getFile();
  IPreferenceStore store=EclipsePlugin.getDefault().getPreferenceStore();
  boolean overwrite=store.getBoolean(PreferenceConstants.BACKTRACK_OVERWRITE);
  if (!overwrite && previewFile.exists() && previewFile.isLocal(0)) {
    OutputConsole.outputError("String_Node_Str" + previewFile.getLocation().toOSString() + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str");
    return;
  }
  PipedOutputStream outputStream=new PipedOutputStream();
  OutputStreamWriter writer=new OutputStreamWriter(outputStream);
  try {
    PipedInputStream inputStream=new PipedInputStream(outputStream);
    CompilationUnit compilationUnit=_getCompilationUnit();
    new RefactoredOutputThread(previewFile,inputStream).start();
    String[] classPaths=null;
    String[] PTClassPaths=Environment.getClassPaths(null);
    String[] extraClassPaths=new String[0];
    if (file.getProject() != null)     extraClassPaths=new String[]{file.getProject().getLocation().toOSString()};
    if (!Environment.setupTransformerArguments(getContainer().getShell(),false,true)) {
      OutputConsole.outputError("String_Node_Str");
      return;
    }
    Environment.createFolders(previewFile.getParent());
    Transformer.transform(file.getName(),compilationUnit,writer,Environment.combineArrays(PTClassPaths,extraClassPaths),new String[]{});
    _needRefactoring=false;
  }
 catch (  Exception e) {
    OutputConsole.outputError(e.getMessage());
  }
 finally {
    try {
      writer.close();
      _preview.setInput(new FileEditorInput(previewFile));
    }
 catch (    Exception e) {
      OutputConsole.outputError(e.getMessage());
    }
  }
}

Fixed version (ground truth):
protected void _update(){
  if (!_needRefactoring)   return;
  IFile file=(IFile)getEditorInput().getAdapter(IFile.class);
  IFile previewFile=((IFileEditorInput)_preview.getEditorInput()).getFile();
  IPreferenceStore store=EclipsePlugin.getDefault().getPreferenceStore();
  boolean overwrite=store.getBoolean(PreferenceConstants.BACKTRACK_OVERWRITE);
  if (!overwrite && previewFile.exists() && previewFile.isLocal(0)) {
    OutputConsole.outputError("String_Node_Str" + previewFile.getLocation().toOSString() + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str");
    return;
  }
  PipedOutputStream outputStream=new PipedOutputStream();
  OutputStreamWriter writer=new OutputStreamWriter(outputStream);
  try {
    PipedInputStream inputStream=new PipedInputStream(outputStream);
    CompilationUnit compilationUnit=_getCompilationUnit();
    new RefactoredOutputThread(previewFile,inputStream).start();
    String[] classPaths=null;
    String[] PTClassPaths=Environment.getClassPaths(null);
    String[] extraClassPaths=new String[0];
    if (file.getProject() != null)     extraClassPaths=new String[]{file.getProject().getLocation().toOSString()};
    if (!Environment.setupTransformerArguments(getContainer().getShell(),false,true)) {
      OutputConsole.outputError("String_Node_Str");
      return;
    }
    Environment.createFolders(previewFile.getParent());
    BusyIndicator.showWhile(Display.getCurrent(),new TransformerRunnable(file.getName(),compilationUnit,writer,Environment.combineArrays(PTClassPaths,extraClassPaths),new String[]{}));
    _needRefactoring=false;
  }
 catch (  Exception e) {
    OutputConsole.outputError(e.getMessage());
  }
 finally {
    try {
      writer.close();
      _preview.setInput(new FileEditorInput(previewFile));
    }
 catch (    Exception e) {
      OutputConsole.outputError(e.getMessage());
    }
  }
}