Program: 45344
Project: 45344
Buggy source:
private void doSimulation(){
  List<TaskDistributor> nodeList=new ArrayList<TaskDistributor>();
  int nodeCount=10;
  for (int i=0; i < nodeCount; i++) {
    String host="String_Node_Str" + i;
    String conf_file="String_Node_Str";
    TaskDistributor distributor=new TaskDistributor(host,conf_file,"String_Node_Str");
    nodeList.add(distributor);
  }
  try {
    Thread.sleep(5000);
  }
 catch (  InterruptedException e) {
    e.printStackTrace();
  }
  Random randomGenerator=new Random();
  int totalLoad=0;
  for (int loop=0; loop < 50; loop++) {
    int from=0;
    int load=randomGenerator.nextInt(40);
    load+=20;
    totalLoad+=load;
    System.out.println("String_Node_Str" + load + "String_Node_Str"+ from);
    nodeList.get(from).distribute("String_Node_Str",load);
    int wait=randomGenerator.nextInt(200);
    wait+=50;
    try {
      Thread.sleep(wait);
    }
 catch (    InterruptedException e) {
      e.printStackTrace();
    }
  }
  for (int i=0; i < nodeCount; i++) {
    System.out.println(nodeList.get(i).getNodes().get("String_Node_Str" + i).getBatteryLevel());
  }
  System.out.println("String_Node_Str");
  System.out.println("String_Node_Str" + totalLoad);
  System.out.println("String_Node_Str");
}

Fixed version (ground truth):
private void doSimulation(){
  List<TaskDistributor> nodeList=new ArrayList<TaskDistributor>();
  int nodeCount=3;
  for (int i=0; i < nodeCount; i++) {
    String host="String_Node_Str" + i;
    String conf_file="String_Node_Str";
    TaskDistributor distributor=new TaskDistributor(host,conf_file,"String_Node_Str");
    nodeList.add(distributor);
  }
  try {
    Thread.sleep(4000);
  }
 catch (  InterruptedException e) {
    e.printStackTrace();
  }
  Random randomGenerator=new Random();
  int totalLoad=0;
  for (int loop=0; loop < 3; loop++) {
    int from=0;
    int load;
    load=1000;
    totalLoad+=load;
    System.out.println("String_Node_Str" + load + "String_Node_Str"+ from);
    nodeList.get(from).distribute("String_Node_Str",load);
    int wait=randomGenerator.nextInt(200);
    wait+=50;
    try {
      Thread.sleep(wait);
    }
 catch (    InterruptedException e) {
      e.printStackTrace();
    }
  }
  try {
    Thread.sleep(7000);
  }
 catch (  InterruptedException e) {
    e.printStackTrace();
  }
  List<Integer> leftBattreyList=new ArrayList<Integer>(nodeCount);
  int sum=0;
  List<Integer> notReceiverNodes=new ArrayList<Integer>();
  notReceiverNodes.add(0);
  for (int i=0; i < nodeCount; i++) {
    if (notReceiverNodes.contains(i))     continue;
    int battrey=nodeList.get(i).getNodes().get("String_Node_Str" + i).getBatteryLevel();
    leftBattreyList.add(battrey);
    sum+=battrey;
    System.out.println(battrey);
  }
  double avgBattrey=sum / leftBattreyList.size();
  double variance=0;
  for (  int battrey : leftBattreyList) {
    variance+=Math.pow((battrey - avgBattrey),2);
  }
  double std_dev=Math.sqrt(variance / leftBattreyList.size());
  System.out.println("String_Node_Str");
  System.out.println("String_Node_Str" + totalLoad);
  System.out.println("String_Node_Str" + avgBattrey + "String_Node_Str"+ std_dev);
  System.out.println("String_Node_Str");
}