Program: 72584
Project: 72584
Buggy source:
/** 
 * Update the "Preview" tab if the source code is changed in the "Raw" tab.
 */
protected void _update(){
  if (!_needRefactoring) {
    return;
  }
  String root=Environment.getRefactoringRoot(_container.getShell());
  if (root == null) {
    return;
  }
  IPreferenceStore store=EclipsePlugin.getDefault().getPreferenceStore();
  IFile file=(IFile)getEditorInput().getAdapter(IFile.class);
  IFile previewFile=_getPreviewFile();
  PipedOutputStream outputStream=new PipedOutputStream();
  OutputStreamWriter writer=new OutputStreamWriter(outputStream);
  try {
    Environment.createFolders(previewFile.getParent());
    boolean overwrite=store.getBoolean(PreferenceConstants.BACKTRACK_OVERWRITE);
    if (!overwrite && previewFile.exists()) {
      OutputConsole.outputError("String_Node_Str" + previewFile.getLocation().toOSString() + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str");
      return;
    }
    PipedInputStream inputStream=new PipedInputStream(outputStream);
    CompilationUnit compilationUnit=_getCompilationUnit();
    new RefactoringOutputThread(previewFile,inputStream).start();
    String[] PTClassPaths=Environment.getClassPaths(null);
    IWorkspaceRoot workspace=ResourcesPlugin.getWorkspace().getRoot();
    IProject[] projects=workspace.getProjects();
    String[] extraClassPaths=new String[projects.length];
    for (int i=0; i < projects.length; i++) {
      extraClassPaths[i]=projects[i].getLocation().toOSString();
    }
    String extraClassPathsInOptions=store.getString(PreferenceConstants.BACKTRACK_EXTRA_CLASSPATHS);
    if (!extraClassPathsInOptions.equals("String_Node_Str")) {
      extraClassPaths=Strings.combineArrays(extraClassPaths,Strings.decodeFileNames(extraClassPathsInOptions));
    }
    if (!Environment.setupTransformerArguments(_container.getShell(),false,true)) {
      OutputConsole.outputError("String_Node_Str");
      return;
    }
    BusyIndicator.showWhile(Display.getCurrent(),new TransformerRunnable(file.getLocation().toOSString(),compilationUnit,writer,Strings.combineArrays(PTClassPaths,extraClassPaths),new String[]{}));
    _needRefactoring=false;
  }
 catch (  Exception e) {
    OutputConsole.outputError(e.getMessage());
  }
 finally {
    try {
      writer.close();
      _preview.setInput(new FileEditorInput(previewFile));
      _preview.getViewer().setEditable(false);
    }
 catch (    Exception e) {
      OutputConsole.outputError(e.getMessage());
    }
  }
}

Fixed version (ground truth):
/** 
 * Update the "Preview" tab if the source code is changed in the "Raw" tab.
 */
protected void _update(){
  if (!_needRefactoring) {
    return;
  }
  String root=Environment.getRefactoringRoot(_container.getShell());
  if (root == null) {
    return;
  }
  IPreferenceStore store=EclipsePlugin.getDefault().getPreferenceStore();
  IFile file=(IFile)getEditorInput().getAdapter(IFile.class);
  IFile previewFile=_getPreviewFile();
  PipedOutputStream outputStream=new PipedOutputStream();
  OutputStreamWriter writer=new OutputStreamWriter(outputStream,java.nio.charset.Charset.defaultCharset());
  try {
    Environment.createFolders(previewFile.getParent());
    boolean overwrite=store.getBoolean(PreferenceConstants.BACKTRACK_OVERWRITE);
    if (!overwrite && previewFile.exists()) {
      OutputConsole.outputError("String_Node_Str" + previewFile.getLocation().toOSString() + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str");
      return;
    }
    PipedInputStream inputStream=new PipedInputStream(outputStream);
    CompilationUnit compilationUnit=_getCompilationUnit();
    new RefactoringOutputThread(previewFile,inputStream).start();
    String[] PTClassPaths=Environment.getClassPaths(null);
    IWorkspaceRoot workspace=ResourcesPlugin.getWorkspace().getRoot();
    IProject[] projects=workspace.getProjects();
    String[] extraClassPaths=new String[projects.length];
    for (int i=0; i < projects.length; i++) {
      extraClassPaths[i]=projects[i].getLocation().toOSString();
    }
    String extraClassPathsInOptions=store.getString(PreferenceConstants.BACKTRACK_EXTRA_CLASSPATHS);
    if (!extraClassPathsInOptions.equals("String_Node_Str")) {
      extraClassPaths=Strings.combineArrays(extraClassPaths,Strings.decodeFileNames(extraClassPathsInOptions));
    }
    if (!Environment.setupTransformerArguments(_container.getShell(),false,true)) {
      OutputConsole.outputError("String_Node_Str");
      return;
    }
    BusyIndicator.showWhile(Display.getCurrent(),new TransformerRunnable(file.getLocation().toOSString(),compilationUnit,writer,Strings.combineArrays(PTClassPaths,extraClassPaths),new String[]{}));
    _needRefactoring=false;
  }
 catch (  Exception e) {
    OutputConsole.outputError(e.getMessage());
  }
 finally {
    try {
      writer.close();
      _preview.setInput(new FileEditorInput(previewFile));
      _preview.getViewer().setEditable(false);
    }
 catch (    Exception e) {
      OutputConsole.outputError(e.getMessage());
    }
  }
}