Program: 171042
Project: 171042
Buggy source:
@Override public Void visitSelectExpr(SelectExprContext ctx){
  if (LOG.isDebugEnabled()) {
    LOG.debug("String_Node_Str",ctx);
  }
  if (!(ctx.getParent() instanceof GroupByExpressionContext)) {
    String[] items=new String[ctx.selectExpression().size()];
    String[] labels=new String[ctx.selectExpression().size()];
    GremlinQueryComposer.SelectExprMetadata selectExprMetadata=new GremlinQueryComposer.SelectExprMetadata();
    for (int i=0; i < ctx.selectExpression().size(); i++) {
      SelectExpressionContext selectExpression=ctx.selectExpression(i);
      CountClauseContext countClause=selectExpression.expr().compE().countClause();
      SumClauseContext sumClause=selectExpression.expr().compE().sumClause();
      MinClauseContext minClause=selectExpression.expr().compE().minClause();
      MaxClauseContext maxClause=selectExpression.expr().compE().maxClause();
      IdentifierContext identifier=selectExpression.identifier();
      labels[i]=identifier != null ? identifier.getText() : selectExpression.getText();
      if (Objects.nonNull(countClause)) {
        items[i]="String_Node_Str";
        selectExprMetadata.setCountIdx(i);
      }
 else       if (Objects.nonNull(sumClause)) {
        items[i]=sumClause.expr().getText();
        selectExprMetadata.setSumIdx(i);
      }
 else       if (Objects.nonNull(minClause)) {
        items[i]=minClause.expr().getText();
        selectExprMetadata.setMinIdx(i);
      }
 else       if (Objects.nonNull(maxClause)) {
        items[i]=maxClause.expr().getText();
        selectExprMetadata.setMaxIdx(i);
      }
 else {
        items[i]=selectExpression.expr().getText();
      }
    }
    selectExprMetadata.setItems(items);
    selectExprMetadata.setLabels(labels);
    gremlinQueryComposer.addSelect(selectExprMetadata);
  }
  return super.visitSelectExpr(ctx);
}

Fixed version (ground truth):
@Override public Void visitSelectExpr(SelectExprContext ctx){
  if (LOG.isDebugEnabled()) {
    LOG.debug("String_Node_Str",ctx);
  }
  if (!(ctx.getParent() instanceof GroupByExpressionContext)) {
    String[] items=new String[ctx.selectExpression().size()];
    String[] labels=new String[ctx.selectExpression().size()];
    SelectClauseComposer selectClauseComposer=new SelectClauseComposer();
    for (int i=0; i < ctx.selectExpression().size(); i++) {
      SelectExpressionContext selectExpression=ctx.selectExpression(i);
      CountClauseContext countClause=selectExpression.expr().compE().countClause();
      SumClauseContext sumClause=selectExpression.expr().compE().sumClause();
      MinClauseContext minClause=selectExpression.expr().compE().minClause();
      MaxClauseContext maxClause=selectExpression.expr().compE().maxClause();
      IdentifierContext identifier=selectExpression.identifier();
      labels[i]=identifier != null ? identifier.getText() : selectExpression.getText();
      if (Objects.nonNull(countClause)) {
        items[i]="String_Node_Str";
        selectClauseComposer.setCountIdx(i);
      }
 else       if (Objects.nonNull(sumClause)) {
        items[i]=sumClause.expr().getText();
        selectClauseComposer.setSumIdx(i);
      }
 else       if (Objects.nonNull(minClause)) {
        items[i]=minClause.expr().getText();
        selectClauseComposer.setMinIdx(i);
      }
 else       if (Objects.nonNull(maxClause)) {
        items[i]=maxClause.expr().getText();
        selectClauseComposer.setMaxIdx(i);
      }
 else {
        items[i]=selectExpression.expr().getText();
      }
    }
    selectClauseComposer.setItems(items);
    selectClauseComposer.setLabels(labels);
    gremlinQueryComposer.addSelect(selectClauseComposer);
  }
  return super.visitSelectExpr(ctx);
}