Program: 174021
Project: 174021
Buggy source:
public boolean clusterLoadConfig(){
  String file=managers.configuration.getClusterConfigFile();
  try (BufferedReader r=new BufferedReader(new FileReader(new File(file)))){
    String line;
    while ((line=r.readLine()) != null) {
      List<String> args=parseLine(line);
      if (args.isEmpty())       continue;
      if (args.get(0).equals("String_Node_Str")) {
        for (int i=1; i < args.size(); i+=2) {
          if (args.get(i).equals("String_Node_Str")) {
            server.cluster.currentEpoch=parseInt(args.get(i + 1));
          }
 else           if (args.get(i).equals("String_Node_Str")) {
            server.cluster.lastVoteEpoch=parseInt(args.get(i + 1));
          }
 else {
            logger.warn("String_Node_Str" + args.get(i) + "String_Node_Str");
          }
        }
      }
 else       if (args.size() < 8) {
        throw new UnsupportedOperationException("String_Node_Str");
      }
 else {
        ClusterNode node=managers.nodes.clusterLookupNode(args.get(0));
        if (node == null) {
          node=managers.nodes.createClusterNode(args.get(0),0);
          managers.nodes.clusterAddNode(node);
        }
        String hostAndPort=args.get(1);
        if (!hostAndPort.contains("String_Node_Str")) {
          throw new UnsupportedOperationException("String_Node_Str");
        }
        int colonIdx=hostAndPort.indexOf("String_Node_Str");
        int atIdx=hostAndPort.indexOf("String_Node_Str");
        node.ip=hostAndPort.substring(0,colonIdx);
        node.port=parseInt(hostAndPort.substring(colonIdx + 1,atIdx == -1 ? hostAndPort.length() : atIdx));
        node.busPort=atIdx == -1 ? node.port + CLUSTER_PORT_INCR : parseInt(hostAndPort.substring(atIdx + 1));
        String[] roles=args.get(2).split("String_Node_Str");
        long now=System.currentTimeMillis();
        for (        String role : roles) {
switch (role) {
case "String_Node_Str":
            server.myself=server.cluster.myself=node;
          node.flags|=CLUSTER_NODE_MYSELF;
        break;
case "String_Node_Str":
      node.flags|=CLUSTER_NODE_MASTER;
    break;
case "String_Node_Str":
  node.flags|=CLUSTER_NODE_SLAVE;
break;
case "String_Node_Str":
node.flags|=CLUSTER_NODE_PFAIL;
break;
case "String_Node_Str":
node.flags|=CLUSTER_NODE_FAIL;
node.failTime=now;
break;
case "String_Node_Str":
node.flags|=CLUSTER_NODE_HANDSHAKE;
break;
case "String_Node_Str":
node.flags|=CLUSTER_NODE_NOADDR;
break;
case "String_Node_Str":
break;
default :
throw new UnsupportedOperationException("String_Node_Str");
}
}
ClusterNode master;
if (!args.get(3).equals("String_Node_Str")) {
master=managers.nodes.clusterLookupNode(args.get(3));
if (master == null) {
master=managers.nodes.createClusterNode(args.get(3),0);
managers.nodes.clusterAddNode(master);
}
node.master=master;
managers.nodes.clusterNodeAddSlave(master,node);
}
if (parseLong(args.get(4)) > 0) node.pingTime=now;
if (parseLong(args.get(5)) > 0) node.pongTime=now;
node.configEpoch=parseInt(args.get(6));
for (int i=8; i < args.size(); i++) {
int st, ed;
String arg=args.get(i);
if (arg.startsWith("String_Node_Str")) {
int idx=arg.indexOf("String_Node_Str");
char direction=arg.charAt(idx + 1);
int slot=parseInt(arg.substring(1,idx));
String name=arg.substring(idx + 3,idx + 3 + CLUSTER_NAME_LEN);
ClusterNode n=managers.nodes.clusterLookupNode(name);
if (n == null) {
n=managers.nodes.createClusterNode(name,0);
managers.nodes.clusterAddNode(n);
}
if (direction == '>') {
server.cluster.migrating[slot]=n;
}
 else {
server.cluster.importing[slot]=n;
}
continue;
}
 else if (arg.contains("String_Node_Str")) {
int idx=arg.indexOf("String_Node_Str");
st=parseInt(arg.substring(0,idx));
ed=parseInt(arg.substring(idx + 1));
}
 else {
st=ed=parseInt(arg);
}
while (st <= ed) managers.slots.clusterAddSlot(node,st++);
}
}
}
if (server.cluster.myself == null) {
throw new UnsupportedOperationException("String_Node_Str");
}
logger.info("String_Node_Str" + server.myself.name);
long maxEpoch=managers.nodes.clusterGetMaxEpoch();
if (maxEpoch > server.cluster.currentEpoch) {
server.cluster.currentEpoch=maxEpoch;
}
for (ClusterNode node : server.cluster.nodes.values()) {
ClusterNodeInfo info=ClusterNodeInfo.valueOf(node,server.myself);
managers.notifyNodeAdded(info);
if ((node.flags & CLUSTER_NODE_PFAIL) != 0) {
managers.notifyNodePFailed(info);
}
if ((node.flags & CLUSTER_NODE_FAIL) != 0) {
managers.notifyNodeFailed(info);
}
}
managers.notifyConfigChanged(ClusterConfigInfo.valueOf(server.cluster));
return true;
}
 catch (Throwable e) {
return false;
}
}

Fixed version (ground truth):
public boolean clusterLoadConfig(){
  String file=managers.configuration.getClusterConfigFile();
  try (BufferedReader r=new BufferedReader(new FileReader(new File(file)))){
    String line;
    while ((line=r.readLine()) != null) {
      List<String> args=parseLine(line);
      if (args.isEmpty())       continue;
      if (args.get(0).equals("String_Node_Str")) {
        for (int i=1; i < args.size(); i+=2) {
          if (args.get(i).equals("String_Node_Str")) {
            server.cluster.currentEpoch=parseInt(args.get(i + 1));
          }
 else           if (args.get(i).equals("String_Node_Str")) {
            server.cluster.lastVoteEpoch=parseInt(args.get(i + 1));
          }
 else {
            logger.warn("String_Node_Str" + args.get(i) + "String_Node_Str");
          }
        }
      }
 else       if (args.size() < 8) {
        throw new UnsupportedOperationException("String_Node_Str");
      }
 else {
        ClusterNode node=managers.nodes.clusterLookupNode(args.get(0));
        if (node == null) {
          node=managers.nodes.createClusterNode(args.get(0),0);
          managers.nodes.clusterAddNode(node);
        }
        String hostAndPort=args.get(1);
        if (!hostAndPort.contains("String_Node_Str")) {
          throw new UnsupportedOperationException("String_Node_Str");
        }
        int colonIdx=hostAndPort.indexOf("String_Node_Str");
        int atIdx=hostAndPort.indexOf("String_Node_Str");
        String ip=hostAndPort.substring(0,colonIdx);
        node.ip=ip.equalsIgnoreCase("String_Node_Str") ? null : ip;
        node.port=parseInt(hostAndPort.substring(colonIdx + 1,atIdx == -1 ? hostAndPort.length() : atIdx));
        node.busPort=atIdx == -1 ? node.port + CLUSTER_PORT_INCR : parseInt(hostAndPort.substring(atIdx + 1));
        String[] roles=args.get(2).split("String_Node_Str");
        long now=System.currentTimeMillis();
        for (        String role : roles) {
switch (role) {
case "String_Node_Str":
            server.myself=server.cluster.myself=node;
          node.flags|=CLUSTER_NODE_MYSELF;
        break;
case "String_Node_Str":
      node.flags|=CLUSTER_NODE_MASTER;
    break;
case "String_Node_Str":
  node.flags|=CLUSTER_NODE_SLAVE;
break;
case "String_Node_Str":
node.flags|=CLUSTER_NODE_PFAIL;
break;
case "String_Node_Str":
node.flags|=CLUSTER_NODE_FAIL;
node.failTime=now;
break;
case "String_Node_Str":
node.flags|=CLUSTER_NODE_HANDSHAKE;
break;
case "String_Node_Str":
node.flags|=CLUSTER_NODE_NOADDR;
break;
case "String_Node_Str":
break;
default :
throw new UnsupportedOperationException("String_Node_Str");
}
}
ClusterNode master;
if (!args.get(3).equals("String_Node_Str")) {
master=managers.nodes.clusterLookupNode(args.get(3));
if (master == null) {
master=managers.nodes.createClusterNode(args.get(3),0);
managers.nodes.clusterAddNode(master);
}
node.master=master;
managers.nodes.clusterNodeAddSlave(master,node);
}
if (parseLong(args.get(4)) > 0) node.pingTime=now;
if (parseLong(args.get(5)) > 0) node.pongTime=now;
node.configEpoch=parseInt(args.get(6));
for (int i=8; i < args.size(); i++) {
int st, ed;
String arg=args.get(i);
if (arg.startsWith("String_Node_Str")) {
int idx=arg.indexOf("String_Node_Str");
char direction=arg.charAt(idx + 1);
int slot=parseInt(arg.substring(1,idx));
String name=arg.substring(idx + 3,idx + 3 + CLUSTER_NAME_LEN);
ClusterNode n=managers.nodes.clusterLookupNode(name);
if (n == null) {
n=managers.nodes.createClusterNode(name,0);
managers.nodes.clusterAddNode(n);
}
if (direction == '>') {
server.cluster.migrating[slot]=n;
}
 else {
server.cluster.importing[slot]=n;
}
continue;
}
 else if (arg.contains("String_Node_Str")) {
int idx=arg.indexOf("String_Node_Str");
st=parseInt(arg.substring(0,idx));
ed=parseInt(arg.substring(idx + 1));
}
 else {
st=ed=parseInt(arg);
}
while (st <= ed) managers.slots.clusterAddSlot(node,st++);
}
}
}
if (server.cluster.myself == null) {
throw new UnsupportedOperationException("String_Node_Str");
}
logger.info("String_Node_Str" + server.myself.name);
long maxEpoch=managers.nodes.clusterGetMaxEpoch();
if (maxEpoch > server.cluster.currentEpoch) {
server.cluster.currentEpoch=maxEpoch;
}
for (ClusterNode node : server.cluster.nodes.values()) {
ClusterNodeInfo info=ClusterNodeInfo.valueOf(node,server.myself);
managers.notifyNodeAdded(info);
if ((node.flags & CLUSTER_NODE_PFAIL) != 0) {
managers.notifyNodePFailed(info);
}
if ((node.flags & CLUSTER_NODE_FAIL) != 0) {
managers.notifyNodeFailed(info);
}
}
managers.notifyConfigChanged(ClusterConfigInfo.valueOf(server.cluster));
return true;
}
 catch (Throwable e) {
return false;
}
}