Program: 119103
Project: 119103
Buggy source:
/** 
 * DOC amaumont Comment method "retrieveDetailedProblems".
 * @return
 */
private List<DetailedProblem> retrieveDetailedProblems(final IAloneProcessNodeConfigurer nodeConfigurer){
  final ArrayList<DetailedProblem> iproblems=new ArrayList<DetailedProblem>();
  final IWorkbench workbench=PlatformUI.getWorkbench();
  Display display=workbench.getDisplay();
  if (display != null) {
    display.syncExec(new Runnable(){
      public void run(){
        IWorkbenchPage page=workbench.getActiveWorkbenchWindow().getActivePage();
        IEditorPart editorPart=page.getActiveEditor();
        if (editorPart instanceof AbstractMultiPageTalendEditor) {
          AbstractMultiPageTalendEditor multiPageTalendEditor=((AbstractMultiPageTalendEditor)editorPart);
          AbstractTalendEditor talendEditor=multiPageTalendEditor.getTalendEditor();
          TalendJavaEditor codeEditor=(TalendJavaEditor)multiPageTalendEditor.getCodeEditor();
          org.eclipse.jdt.core.ICompilationUnit compilationUnit=(org.eclipse.jdt.core.ICompilationUnit)codeEditor.getUnit();
          IProcess process=talendEditor.getProcess();
          if (AbstractProcessProvider.isExtensionProcessForJoblet(process)) {
            return;
          }
          String selectedNodeName=multiPageTalendEditor.getSelectedNodeName();
          if (selectedNodeName == null) {
            return;
          }
          String uniqueNodeName=null;
          boolean found=false;
          List<? extends INode> generatingNodes=process.getGeneratingNodes();
          int generatingNodesListSize=generatingNodes.size();
          for (int i=0; i < generatingNodesListSize; i++) {
            INode node=generatingNodes.get(i);
            if (node.getUniqueName().equals(selectedNodeName) || node.getUniqueName().startsWith(selectedNodeName + "String_Node_Str")) {
              uniqueNodeName=node.getUniqueName();
              found=true;
              break;
            }
          }
          if (!found) {
            return;
          }
          final String code=retrieveCode(process,uniqueNodeName,nodeConfigurer);
          MyProblemRequestor problemRequestor=new MyProblemRequestor(code,iproblems,selectedNodeName);
          org.eclipse.jdt.core.ICompilationUnit workingCopy=null;
          try {
            JavaProcessorUtilities.computeLibrariesPath(process.getNeededLibraries(false),process);
            try {
              WorkingCopyOwner workingCopyOwner=new WorkingCopyOwner(){
              }
;
              workingCopy=((org.eclipse.jdt.core.ICompilationUnit)compilationUnit).getWorkingCopy(workingCopyOwner,problemRequestor,null);
              problemRequestor.setReportProblems(true);
              ((IOpenable)workingCopy).getBuffer().setContents(code);
              ((org.eclipse.jdt.core.ICompilationUnit)workingCopy).reconcile(ICompilationUnit.NO_AST,true,null,null);
              problemRequestor.setReportProblems(false);
            }
  finally {
              if (workingCopy != null) {
                workingCopy.discardWorkingCopy();
              }
            }
          }
 catch (          JavaModelException e) {
            ExceptionHandler.process(e);
          }
catch (          CoreException e) {
            ExceptionHandler.process(e);
          }
        }
      }
    }
);
  }
  return iproblems;
}

Fixed version (ground truth):
/** 
 * DOC amaumont Comment method "retrieveDetailedProblems".
 * @return
 */
private List<DetailedProblem> retrieveDetailedProblems(final IAloneProcessNodeConfigurer nodeConfigurer){
  final ArrayList<DetailedProblem> iproblems=new ArrayList<DetailedProblem>();
  final IWorkbench workbench=PlatformUI.getWorkbench();
  Display display=workbench.getDisplay();
  if (display != null) {
    display.syncExec(new Runnable(){
      public void run(){
        IWorkbenchPage page=workbench.getActiveWorkbenchWindow().getActivePage();
        IEditorPart editorPart=page.getActiveEditor();
        if (editorPart instanceof AbstractMultiPageTalendEditor) {
          AbstractMultiPageTalendEditor multiPageTalendEditor=((AbstractMultiPageTalendEditor)editorPart);
          AbstractTalendEditor talendEditor=multiPageTalendEditor.getTalendEditor();
          TalendJavaEditor codeEditor=(TalendJavaEditor)multiPageTalendEditor.getCodeEditor();
          org.eclipse.jdt.core.ICompilationUnit compilationUnit=(org.eclipse.jdt.core.ICompilationUnit)codeEditor.getUnit();
          IProcess process=talendEditor.getProcess();
          if (AbstractProcessProvider.isExtensionProcessForJoblet(process)) {
            return;
          }
          String selectedNodeName=multiPageTalendEditor.getSelectedNodeName();
          if (selectedNodeName == null) {
            return;
          }
          String uniqueNodeName=null;
          boolean found=false;
          List<? extends INode> generatingNodes=process.getGeneratingNodes();
          int generatingNodesListSize=generatingNodes.size();
          for (int i=0; i < generatingNodesListSize; i++) {
            INode node=generatingNodes.get(i);
            if (node.getUniqueName().equals(selectedNodeName) || node.getUniqueName().startsWith(selectedNodeName + "String_Node_Str")) {
              uniqueNodeName=node.getUniqueName();
              found=true;
              break;
            }
          }
          if (!found) {
            return;
          }
          final String code=retrieveCode(process,uniqueNodeName,nodeConfigurer);
          MyProblemRequestor problemRequestor=new MyProblemRequestor(code,iproblems,selectedNodeName);
          org.eclipse.jdt.core.ICompilationUnit workingCopy=null;
          try {
            JavaProcessorUtilities.computeLibrariesPath(process.getNeededModules(false),process);
            try {
              WorkingCopyOwner workingCopyOwner=new WorkingCopyOwner(){
              }
;
              workingCopy=((org.eclipse.jdt.core.ICompilationUnit)compilationUnit).getWorkingCopy(workingCopyOwner,problemRequestor,null);
              problemRequestor.setReportProblems(true);
              ((IOpenable)workingCopy).getBuffer().setContents(code);
              ((org.eclipse.jdt.core.ICompilationUnit)workingCopy).reconcile(ICompilationUnit.NO_AST,true,null,null);
              problemRequestor.setReportProblems(false);
            }
  finally {
              if (workingCopy != null) {
                workingCopy.discardWorkingCopy();
              }
            }
          }
 catch (          JavaModelException e) {
            ExceptionHandler.process(e);
          }
catch (          CoreException e) {
            ExceptionHandler.process(e);
          }
        }
      }
    }
);
  }
  return iproblems;
}