Program: 109489
Project: 109489
Buggy source:
@Override public Configuration getConfiguration(GraphContext context){
  ConditionBuilder fileWhen=Query.fromType(XmlFileModel.class).withProperty(FileModel.FILE_NAME,"String_Node_Str");
  AbstractIterationOperation<XmlFileModel> evaluatePomFiles=new AbstractIterationOperation<XmlFileModel>(){
    @Override public void perform(    GraphRewrite event,    EvaluationContext context,    XmlFileModel payload){
      String defaultName=payload.getParentArchive() == null ? payload.asFile().getParentFile().getName() : payload.getParentArchive().getFileName();
      MavenProjectModel mavenProjectModel=extractMavenProjectModel(event,defaultName,payload);
      if (mavenProjectModel != null) {
        ArchiveModel archiveModel=payload.getParentArchive();
        if (archiveModel != null && !isAlreadyMavenProject(archiveModel)) {
          archiveModel.setProjectModel(mavenProjectModel);
          mavenProjectModel.setRootFileModel(archiveModel);
          for (          FileModel f : archiveModel.getContainedFileModels()) {
            if (!(f instanceof ArchiveModel) && f.getProjectModel() == null) {
              f.setProjectModel(mavenProjectModel);
              mavenProjectModel.addFileModel(f);
            }
          }
        }
 else {
          File parentFile=payload.asFile().getParentFile();
          FileModel parentFileModel=new FileService(event.getGraphContext()).findByPath(parentFile.getAbsolutePath());
          if (parentFileModel != null && !isAlreadyMavenProject(parentFileModel)) {
            parentFileModel.setProjectModel(mavenProjectModel);
            mavenProjectModel.addFileModel(parentFileModel);
            mavenProjectModel.setRootFileModel(parentFileModel);
            for (            FileModel childFile : parentFileModel.getFilesInDirectory()) {
              addFilesToModel(mavenProjectModel,childFile);
            }
          }
        }
      }
    }
    @Override public String toString(){
      return "String_Node_Str";
    }
  }
;
  return ConfigurationBuilder.begin().addRule().when(fileWhen).perform(evaluatePomFiles);
}

Fixed version (ground truth):
@Override public Configuration getConfiguration(GraphContext context){
  ConditionBuilder fileWhen=Query.fromType(XmlFileModel.class).withProperty(FileModel.FILE_NAME,"String_Node_Str");
  AbstractIterationOperation<XmlFileModel> evaluatePomFiles=new AbstractIterationOperation<XmlFileModel>(){
    @Override public void perform(    GraphRewrite event,    EvaluationContext context,    XmlFileModel payload){
      if (payload.getProjectModel() != null)       return;
      String defaultName=payload.getParentArchive() == null ? payload.asFile().getParentFile().getName() : payload.getParentArchive().getFileName();
      MavenProjectModel mavenProjectModel=extractMavenProjectModel(event,defaultName,payload);
      if (mavenProjectModel != null) {
        ArchiveModel archiveModel=payload.getParentArchive();
        if (archiveModel != null && !isAlreadyMavenProject(archiveModel)) {
          archiveModel.setProjectModel(mavenProjectModel);
          mavenProjectModel.setRootFileModel(archiveModel);
          for (          FileModel f : archiveModel.getContainedFileModels()) {
            if (!(f instanceof ArchiveModel) && f.getProjectModel() == null) {
              f.setProjectModel(mavenProjectModel);
              mavenProjectModel.addFileModel(f);
            }
          }
        }
 else {
          File parentFile=payload.asFile().getParentFile();
          FileModel parentFileModel=new FileService(event.getGraphContext()).findByPath(parentFile.getAbsolutePath());
          if (parentFileModel != null && !isAlreadyMavenProject(parentFileModel)) {
            parentFileModel.setProjectModel(mavenProjectModel);
            mavenProjectModel.addFileModel(parentFileModel);
            mavenProjectModel.setRootFileModel(parentFileModel);
            for (            FileModel childFile : parentFileModel.getFilesInDirectory()) {
              addFilesToModel(mavenProjectModel,childFile);
            }
          }
        }
      }
    }
    @Override public String toString(){
      return "String_Node_Str";
    }
  }
;
  return ConfigurationBuilder.begin().addRule().when(fileWhen).perform(evaluatePomFiles);
}