Program: 109550
Project: 109550
Buggy source:
@Override public Configuration getConfiguration(GraphContext arg0){
  return ConfigurationBuilder.begin().addRule().when(Query.find(ArchiveModel.class)).perform(Iteration.over(ArchiveModel.class).when(new AbstractIterationFilter<ArchiveModel>(){
    @Override public boolean evaluate(    GraphRewrite event,    EvaluationContext context,    ArchiveModel payload){
      return payload.getProjectModel() == null;
    }
    @Override public String toString(){
      return "String_Node_Str";
    }
  }
).perform(new AbstractIterationOperation<ArchiveModel>(){
    @Override public void perform(    GraphRewrite event,    EvaluationContext context,    ArchiveModel payload){
      List<ArchiveModel> hierarchy=new ArrayList<>();
      ArchiveModel parentArchive=payload;
      while (parentArchive != null) {
        hierarchy.add(parentArchive);
        if (parentArchive.getProjectModel() != null) {
          break;
        }
        parentArchive=parentArchive.getParentArchive();
      }
      ProjectModel childProjectModel=null;
      ProjectModelService projectModelService=new ProjectModelService(event.getGraphContext());
      for (      ArchiveModel archiveModel : hierarchy) {
        ProjectModel projectModel=archiveModel.getProjectModel();
        if (projectModel == null) {
          projectModel=projectModelService.create();
          projectModel.setName(archiveModel.getArchiveName());
          projectModel.setRootFileModel(archiveModel);
          projectModel.setDescription("String_Node_Str");
          if (ZipUtil.endsWithZipExtension(archiveModel.getArchiveName())) {
            for (            String extension : ZipUtil.getZipExtensions()) {
              if (archiveModel.getArchiveName().endsWith(extension))               projectModel.setProjectType(extension);
            }
          }
          archiveModel.setProjectModel(projectModel);
          for (          FileModel f : archiveModel.getContainedFileModels()) {
            if (!(f instanceof ArchiveModel) && f.getProjectModel() == null) {
              f.setProjectModel(projectModel);
              projectModel.addFileModel(f);
            }
          }
        }
        if (childProjectModel != null) {
          childProjectModel.setParentProject(projectModel);
        }
        childProjectModel=projectModel;
      }
    }
    public String toString(){
      return "String_Node_Str";
    }
  }
).endIteration());
}

Fixed version (ground truth):
@Override public Configuration getConfiguration(GraphContext arg0){
  return ConfigurationBuilder.begin().addRule().when(Query.find(ArchiveModel.class)).perform(Iteration.over(ArchiveModel.class).when(new AbstractIterationFilter<ArchiveModel>(){
    @Override public boolean evaluate(    GraphRewrite event,    EvaluationContext context,    ArchiveModel payload){
      return payload.getProjectModel() == null;
    }
    @Override public String toString(){
      return "String_Node_Str";
    }
  }
).perform(new AbstractIterationOperation<ArchiveModel>(){
    @Override public void perform(    GraphRewrite event,    EvaluationContext context,    ArchiveModel payload){
      List<ArchiveModel> hierarchy=new ArrayList<>();
      ArchiveModel parentArchive=payload;
      while (parentArchive != null) {
        hierarchy.add(parentArchive);
        if (parentArchive.getProjectModel() != null) {
          break;
        }
        parentArchive=parentArchive.getParentArchive();
      }
      ProjectModel childProjectModel=null;
      ProjectModelService projectModelService=new ProjectModelService(event.getGraphContext());
      for (      ArchiveModel archiveModel : hierarchy) {
        ProjectModel projectModel=archiveModel.getProjectModel();
        if (projectModel == null) {
          projectModel=projectModelService.create();
          projectModel.setName(archiveModel.getArchiveName());
          projectModel.setRootFileModel(archiveModel);
          projectModel.setDescription("String_Node_Str");
          if (ZipUtil.endsWithZipExtension(archiveModel.getArchiveName())) {
            for (            String extension : ZipUtil.getZipExtensions()) {
              if (archiveModel.getArchiveName().endsWith(extension))               projectModel.setProjectType(extension);
            }
          }
          archiveModel.setProjectModel(projectModel);
          for (          FileModel f : archiveModel.getContainedFileModels()) {
            if (!(f instanceof ArchiveModel) && f.getProjectModel() == null) {
              f.setProjectModel(projectModel);
              projectModel.addFileModel(f);
            }
          }
        }
        if (childProjectModel != null) {
          childProjectModel.setParentProject(projectModel);
        }
        childProjectModel=projectModel;
      }
    }
    public String toString(){
      return "String_Node_Str";
    }
  }
.and(IterationProgress.monitoring("String_Node_Str",1))).endIteration());
}