Program: 116961
Project: 116961
Buggy source:
@SuppressWarnings("String_Node_Str") public void execute(Tuple tuple){
  LOG.trace("String_Node_Str");
  byte[] original_message=null;
  try {
    original_message=tuple.getBinary(0);
    LOG.trace("String_Node_Str");
  }
 catch (  Exception e) {
    LOG.error("String_Node_Str");
    e.printStackTrace();
    _collector.fail(tuple);
    if (metricConfiguration != null)     failCounter.inc();
  }
  try {
    LOG.trace("String_Node_Str");
    if (original_message == null || original_message.length == 0) {
      LOG.error("String_Node_Str");
      throw new Exception("String_Node_Str");
    }
    LOG.trace("String_Node_Str");
    JSONObject transformed_message=_parser.parse(original_message);
    LOG.debug("String_Node_Str" + transformed_message);
    if (transformed_message == null || transformed_message.isEmpty())     throw new Exception("String_Node_Str");
    JSONObject new_message=new JSONObject();
    LOG.trace("String_Node_Str");
    if (!checkForSchemaCorrectness(transformed_message)) {
      _collector.fail(tuple);
      if (metricConfiguration != null)       failCounter.inc();
      throw new Exception("String_Node_Str" + transformed_message);
    }
    LOG.trace("String_Node_Str");
    new_message.put("String_Node_Str",transformed_message);
    _collector.ack(tuple);
    if (metricConfiguration != null)     ackCounter.inc();
    if (_filter != null) {
      if (_filter.emitTuple(transformed_message)) {
        LOG.debug("String_Node_Str" + transformed_message);
        _collector.emit(new Values(new_message));
        if (metricConfiguration != null)         emitCounter.inc();
      }
 else {
        LOG.debug("String_Node_Str" + transformed_message);
      }
    }
  }
 catch (  Exception e) {
    e.printStackTrace();
    LOG.error("String_Node_Str" + original_message);
    _collector.fail(tuple);
    if (metricConfiguration != null)     failCounter.inc();
    JSONObject error=ErrorGenerator.generateErrorMessage("String_Node_Str" + new String(original_message),e.toString());
    _collector.emit("String_Node_Str",new Values(error));
  }
}

Fixed version (ground truth):
@SuppressWarnings("String_Node_Str") public void execute(Tuple tuple){
  LOG.trace("String_Node_Str");
  byte[] original_message=null;
  try {
    original_message=tuple.getBinary(0);
    LOG.trace("String_Node_Str");
    if (original_message == null || original_message.length == 0) {
      LOG.error("String_Node_Str");
      throw new Exception("String_Node_Str");
    }
    LOG.trace("String_Node_Str");
    JSONObject transformed_message=_parser.parse(original_message);
    LOG.debug("String_Node_Str" + transformed_message);
    if (transformed_message == null || transformed_message.isEmpty())     throw new Exception("String_Node_Str");
    LOG.trace("String_Node_Str");
    if (!checkForSchemaCorrectness(transformed_message)) {
      throw new Exception("String_Node_Str" + transformed_message);
    }
 else {
      LOG.trace("String_Node_Str");
      boolean filtered=false;
      if (_filter != null) {
        if (!_filter.emitTuple(transformed_message)) {
          filtered=true;
        }
      }
      if (!filtered) {
        String ip1=null;
        if (transformed_message.containsKey("String_Node_Str"))         ip1=transformed_message.get("String_Node_Str").toString();
        String ip2=null;
        if (transformed_message.containsKey("String_Node_Str"))         ip2=transformed_message.get("String_Node_Str").toString();
        String key=generateTopologyKey(ip1,ip2);
        JSONObject new_message=new JSONObject();
        new_message.put("String_Node_Str",transformed_message);
        _collector.emit("String_Node_Str",new Values(key,new_message));
      }
      _collector.ack(tuple);
      if (metricConfiguration != null)       ackCounter.inc();
    }
  }
 catch (  Exception e) {
    e.printStackTrace();
    LOG.error("String_Node_Str" + original_message);
    _collector.fail(tuple);
    if (metricConfiguration != null)     failCounter.inc();
    JSONObject error=ErrorGenerator.generateErrorMessage("String_Node_Str" + new String(original_message),e.toString());
    _collector.emit("String_Node_Str",new Values(error));
  }
}