Program: 31585
Project: 31585
Buggy source:
public Tuple exec(Tuple input) throws IOException {
  if (input == null || input.size() == 0) {
    return null;
  }
  Object tag=input.get(tagColumnNum);
  if (tag == null) {
    log.warn("String_Node_Str");
    if (isPigEnabled(Constants.SHIFU_GROUP_COUNTER,"String_Node_Str")) {
      PigStatusReporter.getInstance().getCounter(Constants.SHIFU_GROUP_COUNTER,"String_Node_Str").increment(1);
    }
    return null;
  }
  final String rawTag=CommonUtils.trimTag(tag.toString());
  boolean isNotSampled=DataSampler.isNotSampled(posTags,negTags,modelConfig.getNormalizeSampleRate(),modelConfig.isNormalizeSampleNegOnly(),rawTag);
  if (isNotSampled) {
    return null;
  }
  Tuple tuple=TupleFactory.getInstance().newTuple();
  final NormType normType=modelConfig.getNormalizeType();
  for (int i=0; i < input.size(); i++) {
    ColumnConfig config=columnConfigList.get(i);
    String val=(input.get(i) == null) ? "String_Node_Str" : input.get(i).toString();
    if (weightExpr != null) {
      weightContext.set(config.getColumnName(),val);
    }
    if (tagColumnNum == i) {
      String tagType=tagTypeCheck(posTags,negTags,rawTag);
      if (tagType == null) {
        log.error("String_Node_Str" + rawTag);
        return null;
      }
      tuple.append(Integer.parseInt(tagType));
      continue;
    }
    if (!CommonUtils.isGoodCandidate(config,super.hasCandidates)) {
      tuple.append((Double)null);
    }
 else {
      if (CommonUtils.isTreeModel(this.alg)) {
        Double normVal=0d;
        if (config.isCategorical()) {
          tuple.append(val);
        }
 else {
          try {
            normVal=Double.parseDouble(val);
          }
 catch (          Exception e) {
            log.debug("String_Node_Str" + val + "String_Node_Str");
            normVal=Normalizer.defaultMissingValue(config);
          }
        }
        tuple.append(normVal);
      }
 else {
        List<Double> normVals=Normalizer.normalize(config,val,cutoff,normType);
        for (        Double normVal : normVals) {
          tuple.append(normVal);
        }
      }
    }
  }
  double weight=evaluateWeight(weightExpr,weightContext);
  tuple.append(weight);
  return tuple;
}

Fixed version (ground truth):
@SuppressWarnings("String_Node_Str") public Tuple exec(Tuple input) throws IOException {
  if (input == null || input.size() == 0) {
    return null;
  }
  Object tag=input.get(tagColumnNum);
  if (tag == null) {
    log.warn("String_Node_Str");
    if (isPigEnabled(Constants.SHIFU_GROUP_COUNTER,"String_Node_Str")) {
      PigStatusReporter.getInstance().getCounter(Constants.SHIFU_GROUP_COUNTER,"String_Node_Str").increment(1);
    }
    return null;
  }
  final String rawTag=CommonUtils.trimTag(tag.toString());
  boolean isNotSampled=DataSampler.isNotSampled(posTags,negTags,modelConfig.getNormalizeSampleRate(),modelConfig.isNormalizeSampleNegOnly(),rawTag);
  if (isNotSampled) {
    return null;
  }
  Tuple tuple=TupleFactory.getInstance().newTuple();
  final NormType normType=modelConfig.getNormalizeType();
  for (int i=0; i < input.size(); i++) {
    ColumnConfig config=columnConfigList.get(i);
    String val=(input.get(i) == null) ? "String_Node_Str" : input.get(i).toString();
    if (weightExpr != null) {
      weightContext.set(config.getColumnName(),val);
    }
    if (tagColumnNum == i) {
      String tagType=tagTypeCheck(posTags,negTags,rawTag);
      if (tagType == null) {
        log.error("String_Node_Str" + rawTag);
        return null;
      }
      tuple.append(Integer.parseInt(tagType));
      continue;
    }
    if (!CommonUtils.isGoodCandidate(config,super.hasCandidates)) {
      tuple.append((Double)null);
    }
 else {
      if (CommonUtils.isTreeModel(this.alg)) {
        Double normVal=0d;
        if (config.isCategorical()) {
          tuple.append(val);
        }
 else {
          try {
            normVal=Double.parseDouble(val);
          }
 catch (          Exception e) {
            log.debug("String_Node_Str" + val + "String_Node_Str");
            normVal=Normalizer.defaultMissingValue(config);
          }
        }
        tuple.append(normVal);
      }
 else {
        List<Double> normVals=Normalizer.normalize(config,val,cutoff,normType);
        for (        Double normVal : normVals) {
          tuple.append(normVal);
        }
      }
    }
  }
  double weight=evaluateWeight(weightExpr,weightContext);
  tuple.append(weight);
  return tuple;
}