Program: 48553
Project: 48553
Buggy source:
public static void main(String[] args){
  int threadCount=40;
  final Stats stats=new Stats();
  final HazelcastInstance hazelcast=Hazelcast.newHazelcastInstance(null);
  ExecutorService es=Executors.newFixedThreadPool(threadCount);
  for (int i=0; i < threadCount; i++) {
    es.submit(new Runnable(){
      public void run(){
        IMap map=hazelcast.getMap("String_Node_Str");
        while (true) {
          int keyInt=(int)(Math.random() * ENTRY_COUNT);
          int operation=((int)(Math.random() * 1000)) % 20;
          Object key=String.valueOf(keyInt);
          if (operation < 1) {
            map.size();
            stats.increment("String_Node_Str");
          }
 else           if (operation < 2) {
            map.get(key);
            stats.increment("String_Node_Str");
          }
 else           if (operation < 3) {
            map.remove(key);
            stats.increment("String_Node_Str");
          }
 else           if (operation < 4) {
            map.containsKey(key);
            stats.increment("String_Node_Str");
          }
 else           if (operation < 5) {
            Object value=new String(String.valueOf(key));
            map.containsValue(value);
            stats.increment("String_Node_Str");
          }
 else           if (operation < 6) {
            map.putIfAbsent(key,createValue());
            stats.increment("String_Node_Str");
          }
 else           if (operation < 7) {
            Collection col=map.values();
            for (            Object o : col) {
            }
            stats.increment("String_Node_Str");
          }
 else           if (operation < 8) {
            Collection col=map.keySet();
            for (            Object o : col) {
            }
            stats.increment("String_Node_Str");
          }
 else           if (operation < 9) {
            Collection col=map.entrySet();
            for (            Object o : col) {
            }
            stats.increment("String_Node_Str");
          }
 else {
            map.put(key,createValue());
            stats.increment("String_Node_Str");
          }
        }
      }
    }
);
  }
  Executors.newSingleThreadExecutor().submit(new Runnable(){
    public void run(){
      while (true) {
        try {
          Thread.sleep(STATS_SECONDS * 1000);
          System.out.println("String_Node_Str" + hazelcast.getCluster().getMembers().size());
          Stats currentStats=stats.getAndReset();
          System.out.println(currentStats);
        }
 catch (        Exception e) {
          e.printStackTrace();
        }
      }
    }
  }
);
}

Fixed version (ground truth):
public static void main(String[] args){
  int threadCount=40;
  final Stats stats=new Stats();
  final HazelcastInstance hazelcast=Hazelcast.newHazelcastInstance(null);
  ExecutorService es=Executors.newFixedThreadPool(threadCount);
  for (int i=0; i < threadCount; i++) {
    es.submit(new Runnable(){
      public void run(){
        IMap map=hazelcast.getMap("String_Node_Str");
        while (true) {
          int keyInt=(int)(Math.random() * ENTRY_COUNT);
          int operation=((int)(Math.random() * 1000)) % 20;
          Object key=String.valueOf(keyInt);
          if (operation < 1) {
            map.size();
            stats.increment("String_Node_Str");
          }
 else           if (operation < 2) {
            map.get(key);
            stats.increment("String_Node_Str");
          }
 else           if (operation < 3) {
            map.remove(key);
            stats.increment("String_Node_Str");
          }
 else           if (operation < 4) {
            map.containsKey(key);
            stats.increment("String_Node_Str");
          }
 else           if (operation < 5) {
            Object value=String.valueOf(key);
            map.containsValue(value);
            stats.increment("String_Node_Str");
          }
 else           if (operation < 6) {
            map.putIfAbsent(key,createValue());
            stats.increment("String_Node_Str");
          }
 else           if (operation < 7) {
            Collection col=map.values();
            for (            Object o : col) {
            }
            stats.increment("String_Node_Str");
          }
 else           if (operation < 8) {
            Collection col=map.keySet();
            for (            Object o : col) {
            }
            stats.increment("String_Node_Str");
          }
 else           if (operation < 9) {
            Collection col=map.entrySet();
            for (            Object o : col) {
            }
            stats.increment("String_Node_Str");
          }
 else {
            map.put(key,createValue());
            stats.increment("String_Node_Str");
          }
        }
      }
    }
);
  }
  Executors.newSingleThreadExecutor().submit(new Runnable(){
    public void run(){
      while (true) {
        try {
          Thread.sleep(STATS_SECONDS * 1000);
          System.out.println("String_Node_Str" + hazelcast.getCluster().getMembers().size());
          Stats currentStats=stats.getAndReset();
          System.out.println(currentStats);
        }
 catch (        Exception e) {
          e.printStackTrace();
        }
      }
    }
  }
);
}