Program: 54200
Project: 54200
Buggy source:
public static Node parse(String fullPath){
  Node node=new Node();
  String[] nodeDir=fullPath.split("String_Node_Str");
  NodeType nodeType=NodeType.valueOf(nodeDir[4]);
  node.setNodeType(nodeType);
  String url=nodeDir[5];
  url=url.substring(nodeType.name().length() + 3);
  String address=url.split("String_Node_Str")[0];
  String ip=address.split("String_Node_Str")[0];
  node.setIp(ip);
  if (address.contains("String_Node_Str")) {
    String port=address.split("String_Node_Str")[1];
    if (port != null && !"String_Node_Str".equals(port.trim())) {
      node.setPort(Integer.valueOf(port));
    }
  }
  String params=url.split("String_Node_Str")[1];
  String[] paramArr=params.split("String_Node_Str");
  for (  String paramEntry : paramArr) {
    String key=paramEntry.split("String_Node_Str")[0];
    String value=paramEntry.split("String_Node_Str")[1];
    if ("String_Node_Str".equals(key)) {
      node.setClusterName(value);
    }
 else     if ("String_Node_Str".equals(key)) {
      node.setGroup(value);
    }
 else     if ("String_Node_Str".equals(key)) {
      node.setThreads(Integer.valueOf(value));
    }
 else     if ("String_Node_Str".equals(key)) {
      node.setIdentity(value);
    }
 else     if ("String_Node_Str".equals(key)) {
      node.setCreateTime(Long.valueOf(value));
    }
 else     if ("String_Node_Str".equals(key)) {
      node.setAvailable(Boolean.valueOf(value));
    }
 else     if ("String_Node_Str".equals(key)) {
      node.setHostName(value);
    }
 else     if ("String_Node_Str".equals(key)) {
      node.setHttpCmdPort(Integer.valueOf(value));
    }
  }
  return node;
}

Fixed version (ground truth):
public static Node parse(String fullPath){
  try {
    Node node=new Node();
    String[] nodeDir=fullPath.split("String_Node_Str");
    NodeType nodeType=NodeType.valueOf(nodeDir[4]);
    node.setNodeType(nodeType);
    String url=nodeDir[5];
    url=url.substring(nodeType.name().length() + 3);
    String address=url.split("String_Node_Str")[0];
    String ip=address.split("String_Node_Str")[0];
    node.setIp(ip);
    if (address.contains("String_Node_Str")) {
      String port=address.split("String_Node_Str")[1];
      if (port != null && !"String_Node_Str".equals(port.trim())) {
        node.setPort(Integer.valueOf(port));
      }
    }
    String params=url.split("String_Node_Str")[1];
    String[] paramArr=params.split("String_Node_Str");
    for (    String paramEntry : paramArr) {
      if (StringUtils.isEmpty(paramEntry)) {
        continue;
      }
      String key=paramEntry.split("String_Node_Str")[0];
      String value=paramEntry.split("String_Node_Str")[1];
      if ("String_Node_Str".equals(key)) {
        node.setClusterName(value);
      }
 else       if ("String_Node_Str".equals(key)) {
        node.setGroup(value);
      }
 else       if ("String_Node_Str".equals(key)) {
        node.setThreads(Integer.valueOf(value));
      }
 else       if ("String_Node_Str".equals(key)) {
        node.setIdentity(value);
      }
 else       if ("String_Node_Str".equals(key)) {
        node.setCreateTime(Long.valueOf(value));
      }
 else       if ("String_Node_Str".equals(key)) {
        node.setAvailable(Boolean.valueOf(value));
      }
 else       if ("String_Node_Str".equals(key)) {
        node.setHostName(value);
      }
 else       if ("String_Node_Str".equals(key)) {
        node.setHttpCmdPort(Integer.valueOf(value));
      }
    }
    return node;
  }
 catch (  RuntimeException e) {
    LOGGER.error("String_Node_Str" + fullPath);
    throw e;
  }
}