Program: 109404
Project: 109404
Buggy source:
private void getMigrationEffortDetails(ProjectModelTraversal traversal,Set<String> includeTags,Set<String> excludeTags,boolean recursive,boolean includeZero,EffortAccumulatorFunction accumulatorFunction){
  LOG.log(Level.INFO,String.format("String_Node_Str",traversal,recursive ? "String_Node_Str" : "String_Node_Str",includeZero ? "String_Node_Str" : "String_Node_Str",accumulatorFunction,includeTags,excludeTags));
  final Set<Vertex> initialVertices=traversal.getAllProjectsAsVertices(recursive);
  GremlinPipeline<Vertex,Vertex> pipeline=new GremlinPipeline<>(this.getGraphContext().getGraph());
  pipeline.V();
  if (!includeZero) {
    pipeline.has(EffortReportModel.EFFORT,Compare.GREATER_THAN,0);
    pipeline.has(WindupVertexFrame.TYPE_PROP,Text.CONTAINS,ClassificationModel.TYPE);
  }
 else {
    pipeline.has(WindupVertexFrame.TYPE_PROP,ClassificationModel.TYPE);
  }
  pipeline.as("String_Node_Str");
  pipeline.out(ClassificationModel.FILE_MODEL);
  pipeline.in(ProjectModel.PROJECT_MODEL_TO_FILE);
  pipeline.filter(new SetMembersFilter(initialVertices));
  pipeline.back("String_Node_Str");
  boolean checkTags=!includeTags.isEmpty() || !excludeTags.isEmpty();
  FileService fileService=new FileService(getGraphContext());
  for (  Vertex v : pipeline) {
    LOG.info("String_Node_Str" + frame(v));
    if (checkTags && !frame(v).matchesTags(includeTags,excludeTags))     continue;
    for (    Vertex fileVertex : v.getVertices(Direction.OUT,ClassificationModel.FILE_MODEL)) {
      FileModel fileModel=fileService.frame(fileVertex);
      if (initialVertices.contains(fileModel.getProjectModel().asVertex()))       accumulatorFunction.accumulate(v);
    }
    LOG.info("String_Node_Str" + ((MapSumEffortAccumulatorFunction)accumulatorFunction).getResults());
  }
}

Fixed version (ground truth):
private void getMigrationEffortDetails(ProjectModelTraversal traversal,Set<String> includeTags,Set<String> excludeTags,boolean recursive,boolean includeZero,EffortAccumulatorFunction accumulatorFunction){
  LOG.log(Level.INFO,String.format("String_Node_Str",traversal,recursive ? "String_Node_Str" : "String_Node_Str",includeZero ? "String_Node_Str" : "String_Node_Str",accumulatorFunction,includeTags,excludeTags));
  final Set<Vertex> initialVertices=traversal.getAllProjectsAsVertices(recursive);
  GremlinPipeline<Vertex,Vertex> pipeline=new GremlinPipeline<>(this.getGraphContext().getGraph());
  pipeline.V();
  if (!includeZero) {
    pipeline.has(EffortReportModel.EFFORT,Compare.GREATER_THAN,0);
    pipeline.has(WindupVertexFrame.TYPE_PROP,Text.CONTAINS,ClassificationModel.TYPE);
  }
 else {
    pipeline.has(WindupVertexFrame.TYPE_PROP,ClassificationModel.TYPE);
  }
  pipeline.as("String_Node_Str");
  pipeline.out(ClassificationModel.FILE_MODEL);
  pipeline.in(ProjectModel.PROJECT_MODEL_TO_FILE);
  pipeline.filter(new SetMembersFilter(initialVertices));
  pipeline.back("String_Node_Str");
  boolean checkTags=!includeTags.isEmpty() || !excludeTags.isEmpty();
  FileService fileService=new FileService(getGraphContext());
  for (  Vertex v : pipeline) {
    if (checkTags && !frame(v).matchesTags(includeTags,excludeTags))     continue;
    for (    Vertex fileVertex : v.getVertices(Direction.OUT,ClassificationModel.FILE_MODEL)) {
      FileModel fileModel=fileService.frame(fileVertex);
      if (initialVertices.contains(fileModel.getProjectModel().asVertex()))       accumulatorFunction.accumulate(v);
    }
  }
}