Program: 84429
Project: 84429
Buggy source:
/** 
 * @param args [0] (traces dir) - the traces in the directory must have the name &lt;trace type&gt;-&lt;machine name&gt;,  where &lt;trace type&gt; could be either fs or idleness. All traces must come in pairs of fs and idleness. Single traces will be ignored. Ex.: fs-cherne, idleness-cherne
 * @param args [1] (data placement police) - random, co-random or co-balance
 * @param args [2] time before sleep (secs)
 * @param args [3] replication level
 * @param args [4] time before update replicas' data (secs)
 * @param args [5] time before delete replicas' data (secs)
 */
public static void main(String[] args) throws IOException {
  if (args.length != 6) {
    System.out.println("String_Node_Str" + "String_Node_Str" + "String_Node_Str");
    System.exit(1);
  }
  System.out.println(Arrays.toString(args));
  final EventScheduler scheduler=new EventScheduler();
  File tracesDir=new File(args[0]);
  if (!tracesDir.exists() || !tracesDir.isDirectory())   throw new IllegalArgumentException(args[0] + "String_Node_Str");
  String placementPoliceName=args[1];
  Long timeBeforeSleep=Long.valueOf(args[2]);
  Integer replicationLevel=Integer.valueOf(args[3]);
  Long timeBeforeUpdateData=Long.valueOf(args[4]);
  Long timeBeforeDeleteData=Long.valueOf(args[5]);
  Set<Machine> machines=createMachines(scheduler,tracesDir,timeBeforeSleep);
  Set<DataServer> dataServers=createDataServers(scheduler,machines);
  DataPlacementAlgorithm placement=createPlacementPolice(placementPoliceName,dataServers);
  MetadataServer metadataServer=new MetadataServer(scheduler,placement,replicationLevel,timeBeforeDeleteData,timeBeforeUpdateData);
  Set<FileSystemClient> clients=createClients(scheduler,machines,metadataServer);
  MultipleEventSource multipleEventSource=createMultipleEventParser(clients,machines,tracesDir);
  EventInjector eventInjector=new EventInjector(scheduler,multipleEventSource);
  scheduler.registerObserver(eventInjector);
  eventInjector.injectNext();
  scheduler.start();
  System.out.println(Aggregator.getInstance().summarize());
}

Fixed version (ground truth):
/** 
 * @param args [0] (traces dir) - the traces in the directory must have the name &lt;trace type&gt;-&lt;machine name&gt;,  where &lt;trace type&gt; could be either fs or idleness. All traces must come in pairs of fs and idleness. Single traces will be ignored. Ex.: fs-cherne, idleness-cherne
 * @param args [1] (data placement police) - random, co-random or co-balance
 * @param args [2] time before sleep (secs)
 * @param args [3] replication level
 * @param args [4] time before update replicas' data (secs)
 * @param args [5] time before delete replicas' data (secs)
 */
public static void main(String[] args) throws IOException {
  if (args.length != 6) {
    System.out.println("String_Node_Str" + "String_Node_Str" + "String_Node_Str");
    System.exit(1);
  }
  System.out.println(Arrays.toString(args));
  File tracesDir=new File(args[0]);
  if (!tracesDir.exists() || !tracesDir.isDirectory())   throw new IllegalArgumentException(args[0] + "String_Node_Str");
  String placementPoliceName=args[1];
  Long timeBeforeSleep=Long.valueOf(args[2]);
  Integer replicationLevel=Integer.valueOf(args[3]);
  Long timeBeforeUpdateData=Long.valueOf(args[4]);
  Long timeBeforeDeleteData=Long.valueOf(args[5]);
  EventsGeneratedBySimulationQueue eventsGeneratedBySimulationQueue=new EventsGeneratedBySimulationQueue();
  Set<Machine> machines=createMachines(eventsGeneratedBySimulationQueue,tracesDir,timeBeforeSleep);
  Set<DataServer> dataServers=createDataServers(machines);
  DataPlacementAlgorithm placement=createPlacementPolice(placementPoliceName,dataServers);
  MetadataServer metadataServer=new MetadataServer(eventsGeneratedBySimulationQueue,placement,replicationLevel,timeBeforeDeleteData,timeBeforeUpdateData);
  Set<FileSystemClient> clients=createClients(eventsGeneratedBySimulationQueue,machines,metadataServer);
  MultipleEventSource multipleEventSource=createMultipleEventParser(clients,machines,tracesDir,eventsGeneratedBySimulationQueue);
  new EventScheduler(multipleEventSource).start();
  System.out.println(Aggregator.getInstance().summarize());
}