Program: 54239
Project: 54239
Buggy source:
public static Node parse(String fullPath){
  Node node=new Node();
  node.setPath(fullPath);
  String nodeType=getMatcher(getBasePath() + "String_Node_Str",fullPath);
  node.setNodeType(NodeType.valueOf(nodeType));
  String url=getMatcher(getBasePath() + "String_Node_Str" + nodeType+ "String_Node_Str"+ nodeType+ "String_Node_Str",fullPath);
  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.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)) {
      String[] nodeTypes=value.split("String_Node_Str");
      for (      String type : nodeTypes) {
        node.addListenNodeType(NodeType.valueOf(type));
      }
    }
  }
  return node;
}

Fixed version (ground truth):
public static Node parse(String fullPath){
  Node node=new Node();
  node.setPath(fullPath);
  String nodeType=getMatcher(getBasePath() + "String_Node_Str",fullPath);
  node.setNodeType(NodeType.valueOf(nodeType));
  String url=getMatcher(getBasePath() + "String_Node_Str" + nodeType+ "String_Node_Str"+ nodeType+ "String_Node_Str",fullPath);
  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.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)) {
      String[] nodeTypes=value.split("String_Node_Str");
      for (      String type : nodeTypes) {
        node.addListenNodeType(NodeType.valueOf(type));
      }
    }
  }
  return node;
}