nus-yam/ex-repair huggingface dataset:
Program: 121517
Project: 121517
Buggy source:
private void initFigureMap(){
  Set<ParallelFigure> parFigures=new HashSet<ParallelFigure>();
  Set<ParallelFigure> keepParFigures=new HashSet<ParallelFigure>();
  Set<ParallelFigure> deparFigures=new HashSet<ParallelFigure>();
  Set<ParallelFigure> reparFigures=new HashSet<ParallelFigure>();
  IElementParameter enableParatitoner=connection.getElementParameter(EParameterName.PARTITIONER.getName());
  IElementParameter enableDepatitoner=connection.getElementParameter(EParameterName.DEPARTITIONER.getName());
  IElementParameter none=connection.getElementParameter(EParameterName.NONE.getName());
  IElementParameter enableRepatitoner=connection.getElementParameter(EParameterName.REPARTITIONER.getName());
  parFigures.add(pationerFigure);
  parFigures.add(collectorFigure);
  keepParFigures.add(collectorFigureAfter);
  deparFigures.add(departionerFigure);
  deparFigures.add(recollectorFigure);
  reparFigures.add(repartionerFigureBefore);
  reparFigures.add(repartionerFigureAfter);
  figureMap.put(enableParatitoner,parFigures);
  figureMap.put(enableDepatitoner,deparFigures);
  figureMap.put(none,keepParFigures);
  figureMap.put(enableRepatitoner,reparFigures);
}

Fixed version (ground truth):
private void initFigureMap(){
  figureMap.clear();
  Set<ParallelFigure> parFigures=new HashSet<ParallelFigure>();
  Set<ParallelFigure> keepParFigures=new HashSet<ParallelFigure>();
  Set<ParallelFigure> deparFigures=new HashSet<ParallelFigure>();
  Set<ParallelFigure> reparFigures=new HashSet<ParallelFigure>();
  IElementParameter enableParatitoner=connection.getElementParameter(EParameterName.PARTITIONER.getName());
  IElementParameter enableDepatitoner=connection.getElementParameter(EParameterName.DEPARTITIONER.getName());
  IElementParameter none=connection.getElementParameter(EParameterName.NONE.getName());
  IElementParameter enableRepatitoner=connection.getElementParameter(EParameterName.REPARTITIONER.getName());
  parFigures.add(pationerFigure);
  parFigures.add(collectorFigure);
  keepParFigures.add(collectorFigureAfter);
  deparFigures.add(departionerFigure);
  deparFigures.add(recollectorFigure);
  reparFigures.add(repartionerFigureBefore);
  reparFigures.add(repartionerFigureAfter);
  if (enableParatitoner != null) {
    figureMap.put(enableParatitoner,parFigures);
  }
  if (enableDepatitoner != null) {
    figureMap.put(enableDepatitoner,deparFigures);
  }
  if (none != null) {
    figureMap.put(none,keepParFigures);
  }
  if (enableRepatitoner != null) {
    figureMap.put(enableRepatitoner,reparFigures);
  }
}
Program: 121519
Project: 121519
Buggy source:
public void createDynamicComposite(Composite parent,Element element,EComponentCategory category){
  if (moveButton.getText().equals("String_Node_Str")) {
    sash.setWeights(new int[]{18,5});
  }
 else   if (moveButton.getText().equals("String_Node_Str")) {
    sash.setWeights(new int[]{23,1});
  }
  if (category == EComponentCategory.BASICRUN) {
    processComposite=new ProcessComposite(parent,SWT.H_SCROLL | SWT.V_SCROLL | SWT.NO_FOCUS);
    dc=processComposite;
  }
 else   if (category == EComponentCategory.DEBUGRUN) {
    debugTisProcessComposite=this.debugViewHelper.getDebugComposite(parent);
    dc=debugTisProcessComposite;
  }
 else   if (category == EComponentCategory.ADVANCESETTING) {
    advanceComposite=new AdvanceSettingComposite(parent,SWT.H_SCROLL | SWT.V_SCROLL | SWT.NO_FOCUS);
    dc=advanceComposite;
  }
 else   if (category == EComponentCategory.TARGET) {
    targetComposite=new TargetExecComposite(parent,SWT.H_SCROLL | SWT.V_SCROLL | SWT.NO_FOCUS);
    dc=targetComposite;
  }
 else   if (EComponentCategory.MAPREDUCE_JOB_CONFIG_FOR_HADOOP.equals(category)) {
    dc=new MultipleThreadDynamicComposite(parent,SWT.H_SCROLL | SWT.V_SCROLL | SWT.NO_FOCUS,category,(Element)processContext.getProcess(),true,Display.getCurrent().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
    sash.setWeights(new int[]{24,0});
  }
  refresh();
  if (dc != null) {
    dc.refresh();
  }
}

Fixed version (ground truth):
public void createDynamicComposite(Composite parent,Element element,EComponentCategory category){
  if (moveButton.getText().equals("String_Node_Str")) {
    sash.setWeights(new int[]{18,5});
  }
 else   if (moveButton.getText().equals("String_Node_Str")) {
    sash.setWeights(new int[]{23,1});
  }
  if (category == EComponentCategory.BASICRUN) {
    processComposite=new ProcessComposite(parent,SWT.H_SCROLL | SWT.V_SCROLL | SWT.NO_FOCUS);
    dc=processComposite;
  }
 else   if (category == EComponentCategory.DEBUGRUN) {
    debugTisProcessComposite=this.debugViewHelper.getDebugComposite(parent);
    dc=debugTisProcessComposite;
  }
 else   if (category == EComponentCategory.ADVANCESETTING) {
    advanceComposite=new AdvanceSettingComposite(parent,SWT.H_SCROLL | SWT.V_SCROLL | SWT.NO_FOCUS);
    dc=advanceComposite;
  }
 else   if (category == EComponentCategory.TARGET) {
    targetComposite=new TargetExecComposite(parent,SWT.H_SCROLL | SWT.V_SCROLL | SWT.NO_FOCUS);
    dc=targetComposite;
  }
 else   if (EComponentCategory.MAPREDUCE_JOB_CONFIG_FOR_HADOOP.equals(category)) {
    if (processContext != null) {
      dc=new MultipleThreadDynamicComposite(parent,SWT.H_SCROLL | SWT.V_SCROLL | SWT.NO_FOCUS,category,(Element)processContext.getProcess(),true,Display.getCurrent().getSystemColor(SWT.COLOR_WIDGET_BACKGROUND));
    }
 else {
      dc=null;
    }
    sash.setWeights(new int[]{24,0});
  }
  refresh();
  if (dc != null) {
    dc.refresh();
  }
}
Program: 121521
Project: 121521
Buggy source:
@Override public void checkStartNodes(){
  for (  INode node : nodes) {
    if ((Boolean)node.getPropertyValue(EParameterName.STARTABLE.getName())) {
      if (node.isActivate()) {
        boolean checkIfCanBeStart=node.checkIfCanBeStart();
        node.setStart(checkIfCanBeStart);
      }
    }
  }
  if (!isDuplicate()) {
    ConnectionListController.updateConnectionList(this);
    updateSubjobContainers();
  }
}

Fixed version (ground truth):
@Override public void checkStartNodes(){
  for (  INode node : nodes) {
    if ((Boolean)node.getPropertyValue(EParameterName.STARTABLE.getName())) {
      if (node.isActivate()) {
        boolean checkIfCanBeStart=node.checkIfCanBeStart();
        node.setStart(checkIfCanBeStart);
      }
    }
  }
  if (!isDuplicate()) {
    for (    INode inode : nodes) {
      Node node=(Node)inode;
      node.setSubtreeStart(node.isDesignSubjobStartNode() && !node.isThereLinkWithHash());
      IElementParameter param=getElementParameter(EParameterName.END_OF_FLOW.getName());
      if (param != null) {
        if (NodeUtil.getOutgoingConnections(node,IConnectionCategory.DATA).isEmpty()) {
          param.setValue(Boolean.TRUE);
        }
 else {
          param.setValue(Boolean.FALSE);
        }
      }
    }
    ConnectionListController.updateConnectionList(this);
    updateSubjobContainers();
  }
}
Program: 121524
Project: 121524
Buggy source:
/** 
 * DOC Administrator Comment method "isNeedRedraw".
 * @return
 */
protected boolean isNeedRedraw(){
  boolean needRedraw=false;
  for (  IElementParameter elementParameter : elem.getElementParametersWithChildrens()) {
    if (elementParameter.getCategory().equals(section) && (elementParameter.getFieldType() != EParameterFieldType.SCHEMA_TYPE) && (elementParameter.getFieldType() != EParameterFieldType.QUERYSTORE_TYPE)) {
      boolean show=elementParameter.isShow(elem.getElementParameters());
      Object control;
      if (elementParameter.getParentParameter() == null) {
        control=hashCurControls.get(elementParameter.getName());
      }
 else {
        control=hashCurControls.get(elementParameter.getParentParameter().getName() + "String_Node_Str" + elementParameter.getName());
      }
      if ((control == null && show) || (control != null && !show)) {
        needRedraw=true;
        break;
      }
    }
  }
  return needRedraw;
}

Fixed version (ground truth):
/** 
 * DOC Administrator Comment method "isNeedRedraw".
 * @return
 */
protected boolean isNeedRedraw(){
  Boolean updateNeeded=(Boolean)elem.getPropertyValue(updataComponentParamName);
  if (updateNeeded) {
    return true;
  }
  boolean needRedraw=false;
  for (  IElementParameter elementParameter : elem.getElementParametersWithChildrens()) {
    if (elementParameter.getCategory().equals(section) && (elementParameter.getFieldType() != EParameterFieldType.SCHEMA_TYPE) && (elementParameter.getFieldType() != EParameterFieldType.QUERYSTORE_TYPE)) {
      boolean show=elementParameter.isShow(elem.getElementParameters());
      Object control;
      if (elementParameter.getParentParameter() == null) {
        control=hashCurControls.get(elementParameter.getName());
      }
 else {
        control=hashCurControls.get(elementParameter.getParentParameter().getName() + "String_Node_Str" + elementParameter.getName());
      }
      if ((control == null && show) || (control != null && !show)) {
        needRedraw=true;
        break;
      }
    }
  }
  return needRedraw;
}
Program: 121527
Project: 121527
Buggy source:
protected List<String> getRelatedJobFolderNames(ProcessItem process,boolean includeSelf){
  List<String> jobFolderNames=new ArrayList<String>();
  if (includeSelf) {
    String jobName=process.getProperty().getLabel();
    String jobVersion=process.getProperty().getVersion();
    String jobFolderName=JavaResourcesHelper.getJobFolderName(jobName,jobVersion);
    jobFolderNames.add(jobFolderName);
  }
  Set<JobInfo> subjobInfos=ProcessorUtilities.getChildrenJobInfo(process);
  for (  JobInfo subjobInfo : subjobInfos) {
    jobFolderNames.addAll(getRelatedJobFolderNames(subjobInfo.getProcessItem(),true));
  }
  return jobFolderNames;
}

Fixed version (ground truth):
protected List<String> getRelatedJobFolderNames(ProcessItem process,Set<String> jobNameVersionChecked){
  List<String> jobFolderNames=new ArrayList<String>();
  String jobName=process.getProperty().getLabel();
  String jobVersion=process.getProperty().getVersion();
  String id=jobName + "String_Node_Str" + jobVersion;
  if (jobNameVersionChecked.contains(id)) {
    return jobFolderNames;
  }
  jobNameVersionChecked.add(id);
  String jobFolderName=JavaResourcesHelper.getJobFolderName(jobName,jobVersion);
  jobFolderNames.add(jobFolderName);
  Set<JobInfo> subjobInfos=ProcessorUtilities.getChildrenJobInfo(process);
  for (  JobInfo subjobInfo : subjobInfos) {
    jobFolderNames.addAll(getRelatedJobFolderNames(subjobInfo.getProcessItem(),jobNameVersionChecked));
  }
  return jobFolderNames;
}
Program: 121528
Project: 121528
Buggy source:
public boolean accept(java.io.File dir,String name){
  File file=new java.io.File(dir,name);
  if (file.isFile()) {
    list.add(file);
    return true;
  }
  return false;
}

Fixed version (ground truth):
@Override public boolean accept(java.io.File dir,String name){
  File file=new java.io.File(dir,name);
  if (file.isFile()) {
    list.add(file);
    return true;
  }
  return false;
}
Program: 121529
Project: 121529
Buggy source:
public int compare(ModuleNeeded m1,ModuleNeeded m2){
  return m1.getModuleName().compareToIgnoreCase(m2.getModuleName());
}

Fixed version (ground truth):
@Override public int compare(ModuleNeeded m1,ModuleNeeded m2){
  return m1.getModuleName().compareToIgnoreCase(m2.getModuleName());
}
Program: 121530
Project: 121530
Buggy source:
protected void addSourceCode(ExportFileResource[] allResources,ProcessItem processItem,boolean needSource,ExportFileResource resource,String... selectedJobVersion){
  if (!needSource) {
    return;
  }
  try {
    String projectName=getCorrespondingProjectName(processItem);
    String jobName=processItem.getProperty().getLabel();
    String jobVersion=processItem.getProperty().getVersion();
    if (!isMultiNodes() && selectedJobVersion != null && selectedJobVersion.length == 1) {
      jobVersion=selectedJobVersion[0];
    }
    String jobFolderName=JavaResourcesHelper.getJobFolderName(jobName,jobVersion);
    IPath path=getSrcRootLocation();
    path=path.append(projectName).append(jobFolderName);
    FilenameFilter filter=new FilenameFilter(){
      public boolean accept(      File dir,      String name){
        return name.toLowerCase().endsWith("String_Node_Str");
      }
    }
;
    List<URL> javaFileUrls=new ArrayList<URL>();
    File file=path.toFile();
    if (file.exists() && file.isDirectory()) {
      for (      File curFile : file.listFiles(filter)) {
        javaFileUrls.add(FileLocator.toFileURL(curFile.toURL()));
      }
    }
    resource.addResources(JOB_SOURCE_FOLDER_NAME + PATH_SEPARATOR + projectName+ PATH_SEPARATOR+ jobFolderName,javaFileUrls);
  }
 catch (  Exception e) {
    ExceptionHandler.process(e);
  }
}

Fixed version (ground truth):
protected void addSourceCode(ExportFileResource[] allResources,ProcessItem processItem,boolean needSource,ExportFileResource resource,String... selectedJobVersion){
  if (!needSource) {
    return;
  }
  try {
    String projectName=getCorrespondingProjectName(processItem);
    String jobName=processItem.getProperty().getLabel();
    String jobVersion=processItem.getProperty().getVersion();
    if (!isMultiNodes() && selectedJobVersion != null && selectedJobVersion.length == 1) {
      jobVersion=selectedJobVersion[0];
    }
    String jobFolderName=JavaResourcesHelper.getJobFolderName(jobName,jobVersion);
    IPath path=getSrcRootLocation();
    path=path.append(projectName).append(jobFolderName);
    FilenameFilter filter=new FilenameFilter(){
      @Override public boolean accept(      File dir,      String name){
        return name.toLowerCase().endsWith("String_Node_Str");
      }
    }
;
    List<URL> javaFileUrls=new ArrayList<URL>();
    File file=path.toFile();
    if (file.exists() && file.isDirectory()) {
      for (      File curFile : file.listFiles(filter)) {
        javaFileUrls.add(FileLocator.toFileURL(curFile.toURL()));
      }
    }
    resource.addResources(JOB_SOURCE_FOLDER_NAME + PATH_SEPARATOR + projectName+ PATH_SEPARATOR+ jobFolderName,javaFileUrls);
  }
 catch (  Exception e) {
    ExceptionHandler.process(e);
  }
}
Program: 121531
Project: 121531
Buggy source:
protected List<URL> getLib(List<String> libs,Boolean needLib){
  List<URL> list=new ArrayList<URL>();
  if (!needLib) {
    return list;
  }
  try {
    org.talend.core.model.general.Project projecdddt=ProjectManager.getInstance().getCurrentProject();
    IProject fsProject=null;
    try {
      fsProject=ResourceModelUtils.getProject(projecdddt);
    }
 catch (    PersistenceException e2) {
      ExceptionHandler.process(e2);
    }
    IPath temPath=fsProject.getLocation().append(File.separator + "String_Node_Str");
    ILibraryManagerService repositoryBundleService=CorePlugin.getDefault().getRepositoryBundleService();
    if (repositoryBundleService != null) {
      repositoryBundleService.retrieve(libs,temPath.toString());
    }
    File file=temPath.toFile();
    File[] files=file.listFiles(new FilenameFilter(){
      public boolean accept(      File dir,      String name){
        return name.toLowerCase().endsWith(FileConstants.JAR_FILE_SUFFIX) || name.toLowerCase().endsWith(FileConstants.PROPERTIES_FILE_SUFFIX) || name.toLowerCase().endsWith(FileConstants.ZIP_FILE_SUFFIX) ? true : false;
      }
    }
);
    for (    File tempFile : files) {
      try {
        if (libs.contains(tempFile.getName())) {
          list.add(tempFile.toURL());
        }
      }
 catch (      MalformedURLException e) {
        ExceptionHandler.process(e);
      }
    }
  }
 catch (  Exception e) {
    ExceptionHandler.process(e);
  }
  return list;
}

Fixed version (ground truth):
protected List<URL> getLib(List<String> libs,Boolean needLib){
  List<URL> list=new ArrayList<URL>();
  if (!needLib) {
    return list;
  }
  try {
    org.talend.core.model.general.Project projecdddt=ProjectManager.getInstance().getCurrentProject();
    IProject fsProject=null;
    try {
      fsProject=ResourceModelUtils.getProject(projecdddt);
    }
 catch (    PersistenceException e2) {
      ExceptionHandler.process(e2);
    }
    IPath temPath=fsProject.getLocation().append(File.separator + "String_Node_Str");
    ILibraryManagerService repositoryBundleService=CorePlugin.getDefault().getRepositoryBundleService();
    if (repositoryBundleService != null) {
      repositoryBundleService.retrieve(libs,temPath.toString());
    }
    File file=temPath.toFile();
    File[] files=file.listFiles(new FilenameFilter(){
      @Override public boolean accept(      File dir,      String name){
        return name.toLowerCase().endsWith(FileConstants.JAR_FILE_SUFFIX) || name.toLowerCase().endsWith(FileConstants.PROPERTIES_FILE_SUFFIX) || name.toLowerCase().endsWith(FileConstants.ZIP_FILE_SUFFIX) ? true : false;
      }
    }
);
    for (    File tempFile : files) {
      try {
        if (libs.contains(tempFile.getName())) {
          list.add(tempFile.toURL());
        }
      }
 catch (      MalformedURLException e) {
        ExceptionHandler.process(e);
      }
    }
  }
 catch (  Exception e) {
    ExceptionHandler.process(e);
  }
  return list;
}
Program: 121532
Project: 121532
Buggy source:
private Collection<File> getAllFiles(File rootFile,String childPath){
  final Collection<File> list=new ArrayList<File>();
  new File(rootFile,childPath).listFiles(new java.io.FilenameFilter(){
    public boolean accept(    java.io.File dir,    String name){
      File file=new java.io.File(dir,name);
      if (file.isFile()) {
        list.add(file);
        return true;
      }
      return false;
    }
  }
);
  return list;
}

Fixed version (ground truth):
private Collection<File> getAllFiles(File rootFile,String childPath){
  final Collection<File> list=new ArrayList<File>();
  new File(rootFile,childPath).listFiles(new java.io.FilenameFilter(){
    @Override public boolean accept(    java.io.File dir,    String name){
      File file=new java.io.File(dir,name);
      if (file.isFile()) {
        list.add(file);
        return true;
      }
      return false;
    }
  }
);
  return list;
}
Program: 121533
Project: 121533
Buggy source:
protected void addMavenDependencyElements(Document pomDocument,Set<ModuleNeeded> neededModules,String libFolder){
  Element rootElement=pomDocument.getRootElement();
  Element parentEle=rootElement.element(IMavenProperties.ELE_DEPENDENCIES);
  if (parentEle == null) {
    parentEle=rootElement.addElement(IMavenProperties.ELE_DEPENDENCIES);
  }
  removeComments(parentEle);
  List<ModuleNeeded> modelesList=new ArrayList<ModuleNeeded>();
  modelesList.addAll(neededModules);
  Collections.sort(modelesList,new Comparator<ModuleNeeded>(){
    public int compare(    ModuleNeeded m1,    ModuleNeeded m2){
      return m1.getModuleName().compareToIgnoreCase(m2.getModuleName());
    }
  }
);
  for (  ModuleNeeded module : modelesList) {
    addMavenDependencyElement(parentEle,module.getModuleName(),libFolder);
  }
}

Fixed version (ground truth):
protected void addMavenDependencyElements(Document pomDocument,Set<ModuleNeeded> neededModules,String libFolder){
  Element rootElement=pomDocument.getRootElement();
  Element parentEle=rootElement.element(IMavenProperties.ELE_DEPENDENCIES);
  if (parentEle == null) {
    parentEle=rootElement.addElement(IMavenProperties.ELE_DEPENDENCIES);
  }
  removeComments(parentEle);
  List<ModuleNeeded> modelesList=new ArrayList<ModuleNeeded>();
  modelesList.addAll(neededModules);
  Collections.sort(modelesList,new Comparator<ModuleNeeded>(){
    @Override public int compare(    ModuleNeeded m1,    ModuleNeeded m2){
      return m1.getModuleName().compareToIgnoreCase(m2.getModuleName());
    }
  }
);
  for (  ModuleNeeded module : modelesList) {
    addMavenDependencyElement(parentEle,module.getModuleName(),libFolder);
  }
}
Program: 121534
Project: 121534
Buggy source:
private static Set<String> getAliases(ProcessItem processItem){
  Set<String> aliases=new HashSet<String>();
  for (  Object o : processItem.getProcess().getNode()) {
    if (o instanceof NodeType) {
      NodeType node=(NodeType)o;
      if (EmfModelUtils.isComponentActive(node)) {
        String alias=EmfModelUtils.computeTextElementValue("String_Node_Str",node);
        if (!"String_Node_Str".equals(alias)) {
          aliases.add(alias);
        }
      }
    }
  }
  Set<JobInfo> subjobInfos=ProcessorUtilities.getChildrenJobInfo(processItem);
  for (  JobInfo subjobInfo : subjobInfos) {
    aliases.addAll(getAliases(subjobInfo.getProcessItem()));
  }
  return aliases;
}

Fixed version (ground truth):
private static Set<String> getAliases(ProcessItem processItem,Set<String> jobNameVersionChecked){
  Set<String> aliases=new HashSet<String>();
  String jobName=processItem.getProperty().getLabel();
  String jobVersion=processItem.getProperty().getVersion();
  String id=jobName + "String_Node_Str" + jobVersion;
  if (jobNameVersionChecked.contains(id)) {
    return aliases;
  }
  jobNameVersionChecked.add(id);
  for (  Object o : processItem.getProcess().getNode()) {
    if (o instanceof NodeType) {
      NodeType node=(NodeType)o;
      if (EmfModelUtils.isComponentActive(node)) {
        String alias=EmfModelUtils.computeTextElementValue("String_Node_Str",node);
        if (!"String_Node_Str".equals(alias)) {
          aliases.add(alias);
        }
      }
    }
  }
  Set<JobInfo> subjobInfos=ProcessorUtilities.getChildrenJobInfo(processItem);
  for (  JobInfo subjobInfo : subjobInfos) {
    aliases.addAll(getAliases(subjobInfo.getProcessItem(),jobNameVersionChecked));
  }
  return aliases;
}
Program: 121536
Project: 121536
Buggy source:
public abstract void updateTitleImage();

Fixed version (ground truth):
protected void updateTitleImage(){
  if (getProcess() == null) {
    return;
  }
  Property property=getProcess().getProperty();
  updateTitleImage(property);
}
Program: 121537
Project: 121537
Buggy source:
@Override public void partClosed(IWorkbenchPart part){
  if (part == AbstractMultiPageTalendEditor.this) {
    restorePropertyInformation();
    IProject currentProject;
    try {
      currentProject=ResourceModelUtils.getProject(ProjectManager.getInstance().getCurrentProject());
      String jobScriptVersion="String_Node_Str";
      if (getEditorInput() != null && getEditorInput() instanceof RepositoryEditorInput) {
        Item item=((RepositoryEditorInput)getEditorInput()).getItem();
        if (item != null) {
          Property property=item.getProperty();
          if (property != null) {
            jobScriptVersion="String_Node_Str" + property.getVersion();
          }
        }
      }
      IFile file=currentProject.getFolder("String_Node_Str").getFile(getEditorInput().getName() + jobScriptVersion + "String_Node_Str"+ "String_Node_Str");
      if (file.exists()) {
        file.delete(true,null);
      }
    }
 catch (    PersistenceException e) {
      ExceptionHandler.process(e);
    }
catch (    CoreException e) {
      ExceptionHandler.process(e);
    }
    changeContextsViewStatus(true);
  }
}

Fixed version (ground truth):
@Override public void partClosed(IWorkbenchPart part){
  if (part == AbstractMultiPageTalendEditor.this) {
    savePropertyIfNeededForErrorStatus();
    IProject currentProject;
    try {
      currentProject=ResourceModelUtils.getProject(ProjectManager.getInstance().getCurrentProject());
      String jobScriptVersion="String_Node_Str";
      if (getEditorInput() != null && getEditorInput() instanceof RepositoryEditorInput) {
        Item item=((RepositoryEditorInput)getEditorInput()).getItem();
        if (item != null) {
          Property property=item.getProperty();
          if (property != null) {
            jobScriptVersion="String_Node_Str" + property.getVersion();
          }
        }
      }
      IFile file=currentProject.getFolder("String_Node_Str").getFile(getEditorInput().getName() + jobScriptVersion + "String_Node_Str"+ "String_Node_Str");
      if (file.exists()) {
        file.delete(true,null);
      }
    }
 catch (    PersistenceException e) {
      ExceptionHandler.process(e);
    }
catch (    CoreException e) {
      ExceptionHandler.process(e);
    }
    changeContextsViewStatus(true);
  }
}
Program: 121538
Project: 121538
Buggy source:
@Override public void notifyChanged(Notification notification){
  if (notification.getEventType() != Notification.REMOVING_ADAPTER) {
    int featureID=notification.getFeatureID(Properties.class);
    if (featureID == PropertiesPackage.PROPERTY__INFORMATIONS) {
      return;
    }
 else     if (featureID == PropertiesPackage.PROPERTY__MAX_INFORMATION_LEVEL) {
      updateTitleImage();
      return;
    }
    if (Display.getCurrent() != null) {
      propertyIsDirty=true;
      firePropertyChange(IEditorPart.PROP_DIRTY);
    }
  }
}

Fixed version (ground truth):
@Override public void notifyChanged(Notification notification){
  if (notification.getEventType() != Notification.REMOVING_ADAPTER) {
    int featureID=notification.getFeatureID(Properties.class);
    if (featureID == PropertiesPackage.PROPERTY__INFORMATIONS) {
      return;
    }
 else     if (featureID == PropertiesPackage.PROPERTY__MAX_INFORMATION_LEVEL) {
      if (notification.getOldValue() != null && notification.getOldValue().equals(notification.getNewValue())) {
        return;
      }
      Display.getDefault().syncExec(new Runnable(){
        @Override public void run(){
          updateTitleImage();
        }
      }
);
      return;
    }
    if (Display.getCurrent() != null) {
      propertyIsDirty=true;
      firePropertyChange(IEditorPart.PROP_DIRTY);
    }
  }
}
Program: 121540
Project: 121540
Buggy source:
/** 
 * Closes all project files on project close.
 */
@Override public void resourceChanged(final IResourceChangeEvent event){
  if (event.getType() == IResourceChangeEvent.PRE_CLOSE) {
    Display.getDefault().asyncExec(new Runnable(){
      @Override public void run(){
        IWorkbenchPage[] pages=getSite().getWorkbenchWindow().getPages();
        for (        IWorkbenchPage page : pages) {
          if (((FileEditorInput)designerEditor.getEditorInput()).getFile().getProject().equals(event.getResource())) {
            IEditorPart editorPart=page.findEditor(designerEditor.getEditorInput());
            page.closeEditor(editorPart,true);
          }
        }
      }
    }
);
  }
 else   if (event.getType() == IResourceChangeEvent.POST_CHANGE) {
    updateTitleImage();
  }
}

Fixed version (ground truth):
/** 
 * Closes all project files on project close.
 */
@Override public void resourceChanged(final IResourceChangeEvent event){
  if (event.getType() == IResourceChangeEvent.PRE_CLOSE) {
    Display.getDefault().asyncExec(new Runnable(){
      @Override public void run(){
        IWorkbenchPage[] pages=getSite().getWorkbenchWindow().getPages();
        for (        IWorkbenchPage page : pages) {
          if (((FileEditorInput)designerEditor.getEditorInput()).getFile().getProject().equals(event.getResource())) {
            IEditorPart editorPart=page.findEditor(designerEditor.getEditorInput());
            page.closeEditor(editorPart,true);
          }
        }
      }
    }
);
  }
}
Program: 121542
Project: 121542
Buggy source:
@Override protected void doRun(){
  ISelection selection=getSelectedObject();
  if (selection == null) {
    return;
  }
  Object obj=((IStructuredSelection)selection).getFirstElement();
  if (obj == null) {
    return;
  }
  RepositoryNode node=(RepositoryNode)obj;
  Property property=node.getObject().getProperty();
  ProcessItem processItem=null;
  if (property != null) {
    ItemCacheManager.clearCache();
    Assert.isTrue(property.getItem() instanceof ProcessItem);
    processItem=(ProcessItem)property.getItem();
    IWorkbenchPage page=getActivePage();
    try {
      final ProcessEditorInput fileEditorInput=new ProcessEditorInput(processItem,true,true);
      checkUnLoadedNodeForProcess(fileEditorInput);
      IEditorPart editorPart=page.findEditor(fileEditorInput);
      if (editorPart == null) {
        fileEditorInput.setRepositoryNode(node);
        editorPart=page.openEditor(fileEditorInput,MultiPageTalendEditor.ID,true);
      }
 else {
        ((MultiPageTalendEditor)editorPart).setReadOnly(fileEditorInput.setForceReadOnly(false));
        page.activate(editorPart);
      }
      if (editorPart instanceof AbstractMultiPageTalendEditor) {
        ((AbstractMultiPageTalendEditor)editorPart).updateTitleImage();
      }
    }
 catch (    PartInitException e) {
      MessageBoxExceptionHandler.process(e);
    }
catch (    PersistenceException e) {
      MessageBoxExceptionHandler.process(e);
    }
  }
}

Fixed version (ground truth):
@Override protected void doRun(){
  ISelection selection=getSelectedObject();
  if (selection == null) {
    return;
  }
  Object obj=((IStructuredSelection)selection).getFirstElement();
  if (obj == null) {
    return;
  }
  RepositoryNode node=(RepositoryNode)obj;
  Property property=node.getObject().getProperty();
  ProcessItem processItem=null;
  if (property != null) {
    ItemCacheManager.clearCache();
    Assert.isTrue(property.getItem() instanceof ProcessItem);
    processItem=(ProcessItem)property.getItem();
    IWorkbenchPage page=getActivePage();
    try {
      final ProcessEditorInput fileEditorInput=new ProcessEditorInput(processItem,true,true);
      checkUnLoadedNodeForProcess(fileEditorInput);
      IEditorPart editorPart=page.findEditor(fileEditorInput);
      if (editorPart == null) {
        fileEditorInput.setRepositoryNode(node);
        editorPart=page.openEditor(fileEditorInput,MultiPageTalendEditor.ID,true);
      }
 else {
        ((MultiPageTalendEditor)editorPart).setReadOnly(fileEditorInput.setForceReadOnly(false));
        page.activate(editorPart);
      }
    }
 catch (    PartInitException e) {
      MessageBoxExceptionHandler.process(e);
    }
catch (    PersistenceException e) {
      MessageBoxExceptionHandler.process(e);
    }
  }
}
Program: 121545
Project: 121545
Buggy source:
@Override protected boolean calculateEnabled(){
  List parts=getSelectedObjects();
  if (parts.isEmpty()) {
    return false;
  }
  if (parts.size() == 1) {
    Object o=parts.get(0);
    if (o instanceof SubjobContainerPart) {
      SubjobContainerPart part=(SubjobContainerPart)o;
      SubjobContainer subjob=(SubjobContainer)part.getModel();
      if (subjob.isDisplayed()) {
        return true;
      }
 else {
        return false;
      }
    }
 else     if (o instanceof NodePart) {
      NodePart part=(NodePart)o;
      Node node=(Node)part.getModel();
      if (node.isStart()) {
        return true;
      }
 else {
        return false;
      }
    }
 else {
      return false;
    }
  }
  return false;
}

Fixed version (ground truth):
@Override protected boolean calculateEnabled(){
  List parts=getSelectedObjects();
  if (parts.isEmpty()) {
    return false;
  }
  if (parts.size() == 1) {
    Object o=parts.get(0);
    if (o instanceof SubjobContainerPart) {
      SubjobContainerPart part=(SubjobContainerPart)o;
      SubjobContainer subjob=(SubjobContainer)part.getModel();
      if (subjob.getProcess().getComponentsType().equals(ComponentCategory.CATEGORY_4_DI.getName())) {
        if (subjob.isDisplayed()) {
          return true;
        }
 else {
          return false;
        }
      }
 else {
        return false;
      }
    }
 else     if (o instanceof NodePart) {
      NodePart part=(NodePart)o;
      Node node=(Node)part.getModel();
      if (node.getProcess().getComponentsType().equals(ComponentCategory.CATEGORY_4_DI.getName())) {
        if (node.isStart()) {
          return true;
        }
 else {
          return false;
        }
      }
 else {
        return false;
      }
    }
 else {
      return false;
    }
  }
  return false;
}
Program: 121548
Project: 121548
Buggy source:
private void setDeparallelization(INode node){
  for (  IConnection con : node.getIncomingConnections()) {
    EConnectionType lineStyle=con.getLineStyle();
    if (lineStyle.hasConnectionCategory(IConnectionCategory.MAIN) || lineStyle.hasConnectionCategory(IConnectionCategory.MERGE)) {
      IElementParameter parElem=con.getElementParameter(EParameterName.PARTITIONER.getName());
      parElem.setValue(Boolean.FALSE);
      con.getElementParameter(EParameterName.REPARTITIONER.getName()).setValue(Boolean.FALSE);
      con.getElementParameter(EParameterName.NONE.getName()).setValue(Boolean.FALSE);
      con.setPropertyValue(EParameterName.DEPARTITIONER.getName(),Boolean.TRUE);
      if (node.getOutgoingConnections().size() < 0) {
        parElem.setShow(false);
      }
    }
  }
  if (node.getOutgoingConnections().size() > 0) {
    setParallelization(node);
  }
}

Fixed version (ground truth):
private void setDeparallelization(INode node){
  for (  IConnection con : node.getIncomingConnections()) {
    EConnectionType lineStyle=con.getLineStyle();
    if (lineStyle.hasConnectionCategory(IConnectionCategory.MAIN) || lineStyle.hasConnectionCategory(IConnectionCategory.MERGE)) {
      IElementParameter parElem=con.getElementParameter(EParameterName.PARTITIONER.getName());
      parElem.setValue(Boolean.FALSE);
      con.getElementParameter(EParameterName.REPARTITIONER.getName()).setValue(Boolean.FALSE);
      con.getElementParameter(EParameterName.NONE.getName()).setValue(Boolean.FALSE);
      con.setPropertyValue(EParameterName.DEPARTITIONER.getName(),Boolean.TRUE);
    }
  }
  if (node.getOutgoingConnections().size() > 0) {
    setParallelization(node);
  }
}
Program: 121553
Project: 121553
Buggy source:
/** 
 * Remove a connection input.
 * @param connection
 */
@Override public void removeInput(final IConnection connection){
  this.inputs.remove(connection);
  INodeConnector mainConnector;
  if (isELTComponent()) {
    mainConnector=this.getConnectorFromType(EConnectionType.TABLE);
  }
 else {
    mainConnector=this.getConnectorFromType(EConnectionType.FLOW_MAIN);
  }
  if (!mainConnector.isMultiSchema() && component.isSchemaAutoPropagated() && (connection.getLineStyle() == EConnectionType.FLOW_MAIN)) {
    for (    INodeConnector connector : getListConnector()) {
      if (mainConnector.getName().equals(connector.getBaseSchema())) {
        IElementParameter schemaParam=getSchemaParameterFromConnector(connector.getName());
        IMetadataTable originTable=getMetadataFromConnector(connector.getName());
        if ((schemaParam == null || !schemaParam.isReadOnly()) && originTable != null && originTable.isReadOnly()) {
          List<IMetadataColumn> columnToSave=new ArrayList<IMetadataColumn>();
          for (          IMetadataColumn column : originTable.getListColumns()) {
            columnToSave.add(column);
          }
          if (!originTable.getTableName().equals("String_Node_Str")) {
            originTable.getListColumns().clear();
            originTable.getListColumns().addAll(columnToSave);
          }
          originTable.sortCustomColumns();
        }
      }
    }
  }
  removeTargetMetaData(connection);
  calculateSubtreeStart();
  fireStructureChange(INPUTS,connection);
}

Fixed version (ground truth):
/** 
 * Remove a connection input.
 * @param connection
 */
@Override public void removeInput(final IConnection connection){
  this.inputs.remove(connection);
  INodeConnector mainConnector;
  if (isELTComponent()) {
    mainConnector=this.getConnectorFromType(EConnectionType.TABLE);
  }
 else {
    mainConnector=this.getConnectorFromType(EConnectionType.FLOW_MAIN);
  }
  if (!mainConnector.isMultiSchema() && component.isSchemaAutoPropagated() && (connection.getLineStyle() == EConnectionType.FLOW_MAIN)) {
    for (    INodeConnector connector : getListConnector()) {
      if (mainConnector.getName().equals(connector.getBaseSchema())) {
        IElementParameter schemaParam=getSchemaParameterFromConnector(connector.getName());
        IMetadataTable originTable=getMetadataFromConnector(connector.getName());
        if ((schemaParam == null || !schemaParam.isReadOnly()) && originTable != null && originTable.isReadOnly()) {
          List<IMetadataColumn> columnToSave=new ArrayList<IMetadataColumn>();
          for (          IMetadataColumn column : originTable.getListColumns()) {
            columnToSave.add(column);
          }
          if (!originTable.getTableName().equals("String_Node_Str")) {
            originTable.getListColumns().clear();
            originTable.getListColumns().addAll(columnToSave);
          }
          originTable.sortCustomColumns();
        }
      }
    }
  }
  removeTargetMetaData(connection);
  calculateSubtreeStartAndEnd();
  fireStructureChange(INPUTS,connection);
}
Program: 121554
Project: 121554
Buggy source:
/** 
 * Remove a connection output.
 * @param connection
 */
@Override public void removeOutput(final IConnection connection){
  if (connection instanceof Connection) {
    int order=getOrder(connection);
    if (order != -1) {
      ((Connection)connection).setOrder(order);
    }
  }
  this.outputs.remove(connection);
  ((Connection)connection).updateAllId();
  removeSourceMatadata(connection);
  removeTargetMetaData(connection);
  calculateSubtreeStart();
  fireStructureChange(OUTPUTS,connection);
}

Fixed version (ground truth):
/** 
 * Remove a connection output.
 * @param connection
 */
@Override public void removeOutput(final IConnection connection){
  if (connection instanceof Connection) {
    int order=getOrder(connection);
    if (order != -1) {
      ((Connection)connection).setOrder(order);
    }
  }
  this.outputs.remove(connection);
  ((Connection)connection).updateAllId();
  removeSourceMatadata(connection);
  removeTargetMetaData(connection);
  calculateSubtreeStartAndEnd();
  fireStructureChange(OUTPUTS,connection);
}
Program: 121555
Project: 121555
Buggy source:
protected List<String> getRelatedJobFolderNames(ProcessItem process,boolean includeSelf){
  List<String> jobFolderNames=new ArrayList<String>();
  if (includeSelf) {
    String jobName=process.getProperty().getLabel();
    String jobVersion=process.getProperty().getVersion();
    String jobFolderName=JavaResourcesHelper.getJobFolderName(jobName,jobVersion);
    jobFolderNames.add(jobFolderName);
  }
  Set<JobInfo> subjobInfos=ProcessorUtilities.getChildrenJobInfo(process);
  for (  JobInfo subjobInfo : subjobInfos) {
    jobFolderNames.addAll(getRelatedJobFolderNames(subjobInfo.getProcessItem(),true));
  }
  return jobFolderNames;
}

Fixed version (ground truth):
protected List<String> getRelatedJobFolderNames(ProcessItem process,Set<String> jobNameVersionChecked){
  List<String> jobFolderNames=new ArrayList<String>();
  String jobName=process.getProperty().getLabel();
  String jobVersion=process.getProperty().getVersion();
  String id=jobName + "String_Node_Str" + jobVersion;
  if (jobNameVersionChecked.contains(id)) {
    return jobFolderNames;
  }
  jobNameVersionChecked.add(id);
  String jobFolderName=JavaResourcesHelper.getJobFolderName(jobName,jobVersion);
  jobFolderNames.add(jobFolderName);
  Set<JobInfo> subjobInfos=ProcessorUtilities.getChildrenJobInfo(process);
  for (  JobInfo subjobInfo : subjobInfos) {
    jobFolderNames.addAll(getRelatedJobFolderNames(subjobInfo.getProcessItem(),jobNameVersionChecked));
  }
  return jobFolderNames;
}
Program: 121556
Project: 121556
Buggy source:
private static Set<String> getAliases(ProcessItem processItem){
  Set<String> aliases=new HashSet<String>();
  for (  Object o : processItem.getProcess().getNode()) {
    if (o instanceof NodeType) {
      NodeType node=(NodeType)o;
      if (EmfModelUtils.isComponentActive(node)) {
        String alias=EmfModelUtils.computeTextElementValue("String_Node_Str",node);
        if (!"String_Node_Str".equals(alias)) {
          aliases.add(alias);
        }
      }
    }
  }
  Set<JobInfo> subjobInfos=ProcessorUtilities.getChildrenJobInfo(processItem);
  for (  JobInfo subjobInfo : subjobInfos) {
    aliases.addAll(getAliases(subjobInfo.getProcessItem()));
  }
  return aliases;
}

Fixed version (ground truth):
private static Set<String> getAliases(ProcessItem processItem,Set<String> jobNameVersionChecked){
  Set<String> aliases=new HashSet<String>();
  String jobName=processItem.getProperty().getLabel();
  String jobVersion=processItem.getProperty().getVersion();
  String id=jobName + "String_Node_Str" + jobVersion;
  if (jobNameVersionChecked.contains(id)) {
    return aliases;
  }
  jobNameVersionChecked.add(id);
  for (  Object o : processItem.getProcess().getNode()) {
    if (o instanceof NodeType) {
      NodeType node=(NodeType)o;
      if (EmfModelUtils.isComponentActive(node)) {
        String alias=EmfModelUtils.computeTextElementValue("String_Node_Str",node);
        if (!"String_Node_Str".equals(alias)) {
          aliases.add(alias);
        }
      }
    }
  }
  Set<JobInfo> subjobInfos=ProcessorUtilities.getChildrenJobInfo(processItem);
  for (  JobInfo subjobInfo : subjobInfos) {
    aliases.addAll(getAliases(subjobInfo.getProcessItem(),jobNameVersionChecked));
  }
  return aliases;
}
Program: 121557
Project: 121557
Buggy source:
/** 
 * create ProcessDescription and set it. WARNING ::field FieldSeparator, RowSeparator, EscapeChar and TextEnclosure are surround by double quote.
 * @return processDescription
 */
private ProcessDescription getProcessDescription(boolean defaultContext){
  JSONFileConnection connection2=JSONConnectionContextUtils.getJSONOriginalValueConnection(getConnection(),this.connectionItem,isContextMode(),defaultContext);
  ProcessDescription processDescription=JSONShadowProcessHelper.getProcessDescription(connection2,wizard.getTempJsonPath());
  return processDescription;
}

Fixed version (ground truth):
/** 
 * create ProcessDescription and set it. WARNING ::field FieldSeparator, RowSeparator, EscapeChar and TextEnclosure are surround by double quote.
 * @return processDescription
 */
private ProcessDescription getProcessDescription(boolean defaultContext){
  JSONFileConnection connection2=JSONConnectionContextUtils.getJSONOriginalValueConnection(getConnection(),this.connectionItem,isContextMode(),defaultContext);
  ProcessDescription processDescription=null;
  if (wizard != null) {
    processDescription=JSONShadowProcessHelper.getProcessDescription(connection2,wizard.getTempJsonPath());
  }
 else {
    processDescription=JSONShadowProcessHelper.getProcessDescription(connection2,JSONUtil.changeJsonToXml(connection2.getJSONFilePath()));
  }
  return processDescription;
}
Program: 121561
Project: 121561
Buggy source:
/** 
 * DOC ycbai Comment method "collectHadoopSubrecords". Collect all subitem records belong to a hadoop cluster.
 * @param totalItemRecords
 * @param itemRecord
 * @return
 */
public static Set<ItemRecord> collectHadoopSubrecords(ResourcesManager manager,List<ItemRecord> totalItemRecords,ItemRecord itemRecord){
  Set<ItemRecord> subnodes=new HashSet<ItemRecord>();
  Item item=itemRecord.getItem();
  if (item == null) {
    return subnodes;
  }
  new ImportItemUtil().resolveItem(manager,itemRecord);
  IHadoopClusterService hadoopClusterService=null;
  if (GlobalServiceRegister.getDefault().isServiceRegistered(IHadoopClusterService.class)) {
    hadoopClusterService=(IHadoopClusterService)GlobalServiceRegister.getDefault().getService(IHadoopClusterService.class);
  }
  if (hadoopClusterService != null && hadoopClusterService.isHadoopClusterItem(item)) {
    List<String> subitemIds=hadoopClusterService.getSubitemIdsOfHadoopCluster(item);
    if (subitemIds.size() == 0) {
      return subnodes;
    }
    for (    ItemRecord ir : totalItemRecords) {
      if (ir.getProperty() != null && subitemIds.contains(ir.getProperty().getId())) {
        subnodes.add(ir);
      }
    }
  }
  return subnodes;
}

Fixed version (ground truth):
/** 
 * DOC ycbai Comment method "collectHadoopSubrecords". Collect all subitem records belong to a hadoop cluster.
 * @param totalItemRecords
 * @param itemRecord
 * @return
 */
public static Set<ItemRecord> collectHadoopSubrecords(ResourcesManager manager,List<ItemRecord> totalItemRecords,ItemRecord itemRecord){
  Set<ItemRecord> subnodes=new HashSet<ItemRecord>();
  Item item=itemRecord.getItem();
  if (item == null) {
    return subnodes;
  }
  IHadoopClusterService hadoopClusterService=null;
  if (GlobalServiceRegister.getDefault().isServiceRegistered(IHadoopClusterService.class)) {
    hadoopClusterService=(IHadoopClusterService)GlobalServiceRegister.getDefault().getService(IHadoopClusterService.class);
  }
  if (hadoopClusterService != null && hadoopClusterService.isHadoopClusterItem(item)) {
    new ImportItemUtil().resolveItem(manager,itemRecord);
    List<String> subitemIds=hadoopClusterService.getSubitemIdsOfHadoopCluster(item);
    if (subitemIds.size() == 0) {
      return subnodes;
    }
    for (    ItemRecord ir : totalItemRecords) {
      if (ir.getProperty() != null && subitemIds.contains(ir.getProperty().getId())) {
        subnodes.add(ir);
      }
    }
  }
  return subnodes;
}
Program: 121562
Project: 121562
Buggy source:
/** 
 * DOC ycbai Comment method "checkHadoopSubitem". Check whether or not the itemRecord is a subitem record of a hadoop cluster item record.
 * @param itemRecord
 * @return
 */
public static boolean checkHadoopSubitem(ResourcesManager manager,ItemRecord itemRecord){
  Item item=itemRecord.getItem();
  if (item == null) {
    return false;
  }
  IHadoopClusterService hadoopClusterService=null;
  if (GlobalServiceRegister.getDefault().isServiceRegistered(IHadoopClusterService.class)) {
    hadoopClusterService=(IHadoopClusterService)GlobalServiceRegister.getDefault().getService(IHadoopClusterService.class);
  }
  if (hadoopClusterService != null) {
    new ImportItemUtil().resolveItem(manager,itemRecord);
    return hadoopClusterService.isHadoopSubItem(item);
  }
  return false;
}

Fixed version (ground truth):
/** 
 * DOC ycbai Comment method "checkHadoopSubitem". Check whether or not the itemRecord is a subitem record of a hadoop cluster item record.
 * @param itemRecord
 * @return
 */
public static boolean checkHadoopSubitem(ResourcesManager manager,ItemRecord itemRecord){
  Item item=itemRecord.getItem();
  if (item == null) {
    return false;
  }
  IHadoopClusterService hadoopClusterService=null;
  if (GlobalServiceRegister.getDefault().isServiceRegistered(IHadoopClusterService.class)) {
    hadoopClusterService=(IHadoopClusterService)GlobalServiceRegister.getDefault().getService(IHadoopClusterService.class);
  }
  if (hadoopClusterService != null && hadoopClusterService.isHadoopSubItem(item)) {
    new ImportItemUtil().resolveItem(manager,itemRecord);
    return hadoopClusterService.isValidHadoopSubItem(item);
  }
  return false;
}
Program: 121563
Project: 121563
Buggy source:
/** 
 * Getter for subtreeStart.
 * @return the subtreeStart
 */
public boolean isSubtreeStart(){
  return this.subtreeStart;
}

Fixed version (ground truth):
/** 
 * Getter for subtreeStart.
 * @return the subtreeStart
 */
@Override public boolean isSubtreeStart(){
  return this.subtreeStart;
}