Program: 113540
Project: 113540
Buggy source:
/** 
 * @param args
 * @throws Exception 
 */
public static void main(String[] args) throws Exception {
  System.out.println("String_Node_Str");
  Logging.start(Logging.LEVEL_ERROR);
  try {
    TimeSync.initialize(null,60000,50);
  }
 catch (  Exception ex) {
    ex.printStackTrace();
    System.exit(1);
  }
  StringSet gids=new StringSet();
  gids.add("String_Node_Str");
  creds=new UserCredentials("String_Node_Str",gids,"String_Node_Str");
  RPCNIOSocketClient rpcClient=new RPCNIOSocketClient(null,2 * 60 * 1000,5 * 60 * 1000);
  rpcClient.start();
  if (args.length != 1)   usage();
  if (args[0].indexOf("String_Node_Str") == -1) {
    error("String_Node_Str");
  }
 else {
    for (    String adr : args[0].split("String_Node_Str")) {
      participants.add(new DIRClient(rpcClient,parseAddress(adr)));
    }
  }
  setupRandomMasterDIR();
  assert(LOOKUP_PERCENTAGE + DELETE_PERCENTAGE + INSERT_PERCENTAGE == 100);
  long start=System.currentTimeMillis();
  long operationCount=0;
  long s=start;
  System.out.println("String_Node_Str");
  try {
    while (true) {
      long now=System.currentTimeMillis();
      if ((start + CHECK_INTERVAL) < now) {
        long diff=(System.currentTimeMillis() - s) / 1000;
        System.out.println("String_Node_Str" + (diff - diff % 60 - ((diff - diff % 60) / 60) % 60) / 3600 + "String_Node_Str" + ((diff - diff % 60) / 60) % 60 + "String_Node_Str" + diff % 60 + "String_Node_Str");
        System.out.println("String_Node_Str" + ((double)(operationCount / (CHECK_INTERVAL / 1000))) + "String_Node_Str");
        operationCount=0;
        System.out.println("String_Node_Str" + masterChanges + "String_Node_Str");
        masterChanges=0;
        performConsistencyCheck();
        start=System.currentTimeMillis();
        setupRandomMasterDIR();
      }
 else {
        try {
          if (random.nextBoolean())           performAddressMappingOperation();
 else           performServiceOperation();
          operationCount++;
        }
 catch (        RedirectException e) {
          System.out.println("String_Node_Str" + viewID + "String_Node_Str"+ actSeq+ "String_Node_Str");
          setupRandomMasterDIR();
        }
catch (        IOException e) {
          if (e.getMessage().equals("String_Node_Str")) {
            System.err.println("String_Node_Str" + kind + "String_Node_Str"+ uuid+ "String_Node_Str");
            for (            DIRClient c : participants) {
switch (kind) {
case 0:
                try {
                  performAddressMappingLookup(uuid,c);
                  System.err.println("String_Node_Str" + c.getDefaultServerAddress());
                }
 catch (                Exception e1) {
                  System.err.println("String_Node_Str" + c.getDefaultServerAddress());
                }
              break;
case 1:
            try {
              performServiceLookup(uuid,c);
              System.err.println("String_Node_Str" + c.getDefaultServerAddress());
            }
 catch (            Exception e1) {
              System.err.println("String_Node_Str" + c.getDefaultServerAddress());
            }
          break;
case 2:
        try {
          performAddressMappingLookup(uuid,c);
          System.err.println("String_Node_Str" + c.getDefaultServerAddress());
        }
 catch (        Exception e1) {
          System.err.println("String_Node_Str" + c.getDefaultServerAddress());
        }
      break;
case 3:
    try {
      performServiceLookup(uuid,c);
      System.err.println("String_Node_Str" + c.getDefaultServerAddress());
    }
 catch (    Exception e1) {
      System.err.println("String_Node_Str" + c.getDefaultServerAddress());
    }
  break;
default :
throw e;
}
}
}
 else throw e;
}
}
}
}
 catch (FailureException e) {
System.err.println("String_Node_Str" + e.kind + "String_Node_Str"+ t.get(e.getMessage())+ "String_Node_Str"+ (viewID - 1)+ "String_Node_Str"+ (t.get(e.getMessage()) - (time - lastSeq))+ "String_Node_Str"+ time+ "String_Node_Str"+ e.getMessage());
String data=(e.kind == 0) ? availableAddressMappings.get(e.getMessage()).toString() : availableServices.get(e.getMessage()).toString();
System.err.println("String_Node_Str" + data);
for (DIRClient c : participants) {
try {
switch (e.kind) {
case 0:
performAddressMappingLookup(e.getMessage(),c);
break;
case 1:
performServiceLookup(e.getMessage(),c);
break;
default :
assert(false);
}
System.err.println("String_Node_Str" + c.getDefaultServerAddress());
}
 catch (Exception e2) {
System.err.println("String_Node_Str" + c.getDefaultServerAddress());
}
}
}
}

Fixed version (ground truth):
/** 
 * @param args
 * @throws Exception 
 */
public static void main(String[] args) throws Exception {
  System.out.println("String_Node_Str");
  Logging.start(Logging.LEVEL_ERROR);
  try {
    TimeSync.initializeLocal(60000,50);
  }
 catch (  Exception ex) {
    ex.printStackTrace();
    System.exit(1);
  }
  StringSet gids=new StringSet();
  gids.add("String_Node_Str");
  creds=new UserCredentials("String_Node_Str",gids,"String_Node_Str");
  RPCNIOSocketClient rpcClient=new RPCNIOSocketClient(null,2 * 60 * 1000,5 * 60 * 1000);
  rpcClient.start();
  if (args.length != 1)   usage();
  if (args[0].indexOf("String_Node_Str") == -1) {
    error("String_Node_Str");
  }
 else {
    for (    String adr : args[0].split("String_Node_Str")) {
      participants.add(new DIRClient(rpcClient,parseAddress(adr)));
    }
  }
  setupRandomMasterDIR();
  assert(LOOKUP_PERCENTAGE + DELETE_PERCENTAGE + INSERT_PERCENTAGE == 100);
  long start=System.currentTimeMillis();
  long operationCount=0;
  long s=start;
  System.out.println("String_Node_Str");
  try {
    while (true) {
      long now=System.currentTimeMillis();
      if ((start + CHECK_INTERVAL) < now) {
        long diff=(System.currentTimeMillis() - s) / 1000;
        System.out.println("String_Node_Str" + (diff - diff % 60 - ((diff - diff % 60) / 60) % 60) / 3600 + "String_Node_Str" + ((diff - diff % 60) / 60) % 60 + "String_Node_Str" + diff % 60 + "String_Node_Str");
        System.out.println("String_Node_Str" + ((double)(operationCount / (CHECK_INTERVAL / 1000))) + "String_Node_Str");
        operationCount=0;
        System.out.println("String_Node_Str" + masterChanges + "String_Node_Str");
        masterChanges=0;
        performConsistencyCheck();
        start=System.currentTimeMillis();
        setupRandomMasterDIR();
      }
 else {
        try {
          if (random.nextBoolean())           performAddressMappingOperation();
 else           performServiceOperation();
          operationCount++;
        }
 catch (        RedirectException e) {
          System.out.println("String_Node_Str" + viewID + "String_Node_Str"+ actSeq+ "String_Node_Str");
          setupRandomMasterDIR();
        }
catch (        IOException e) {
          if (e.getMessage().equals("String_Node_Str")) {
            System.err.println("String_Node_Str" + kind + "String_Node_Str"+ uuid+ "String_Node_Str");
            for (            DIRClient c : participants) {
switch (kind) {
case 0:
                try {
                  performAddressMappingLookup(uuid,c);
                  System.err.println("String_Node_Str" + c.getDefaultServerAddress());
                }
 catch (                Exception e1) {
                  System.err.println("String_Node_Str" + c.getDefaultServerAddress());
                }
              break;
case 1:
            try {
              performServiceLookup(uuid,c);
              System.err.println("String_Node_Str" + c.getDefaultServerAddress());
            }
 catch (            Exception e1) {
              System.err.println("String_Node_Str" + c.getDefaultServerAddress());
            }
          break;
case 2:
        try {
          performAddressMappingLookup(uuid,c);
          System.err.println("String_Node_Str" + c.getDefaultServerAddress());
        }
 catch (        Exception e1) {
          System.err.println("String_Node_Str" + c.getDefaultServerAddress());
        }
      break;
case 3:
    try {
      performServiceLookup(uuid,c);
      System.err.println("String_Node_Str" + c.getDefaultServerAddress());
    }
 catch (    Exception e1) {
      System.err.println("String_Node_Str" + c.getDefaultServerAddress());
    }
  break;
default :
throw e;
}
}
}
 else throw e;
}
}
}
}
 catch (FailureException e) {
System.err.println("String_Node_Str" + e.kind + "String_Node_Str"+ t.get(e.getMessage())+ "String_Node_Str"+ (viewID - 1)+ "String_Node_Str"+ (t.get(e.getMessage()) - (time - lastSeq))+ "String_Node_Str"+ time+ "String_Node_Str"+ e.getMessage());
String data=(e.kind == 0) ? availableAddressMappings.get(e.getMessage()).toString() : availableServices.get(e.getMessage()).toString();
System.err.println("String_Node_Str" + data);
for (DIRClient c : participants) {
try {
switch (e.kind) {
case 0:
performAddressMappingLookup(e.getMessage(),c);
break;
case 1:
performServiceLookup(e.getMessage(),c);
break;
default :
assert(false);
}
System.err.println("String_Node_Str" + c.getDefaultServerAddress());
}
 catch (Exception e2) {
System.err.println("String_Node_Str" + c.getDefaultServerAddress());
}
}
}
}