Program: 46085
Project: 46085
Buggy source:
public static void main(String[] args){
  final ClientConfig clientConfig=new ClientConfig();
  final HazelcastInstance instance1=Hazelcast.newHazelcastInstance();
  final HazelcastInstance instance2=Hazelcast.newHazelcastInstance();
  final HazelcastInstance client=HazelcastClient.newHazelcastClient(clientConfig);
  final Stats stats=new Stats();
  if (args != null && args.length > 0) {
    for (    String arg : args) {
      arg=arg.trim();
      if (arg.startsWith("String_Node_Str")) {
        THREAD_COUNT=Integer.parseInt(arg.substring(1));
      }
 else       if (arg.startsWith("String_Node_Str")) {
        ENTRY_COUNT=Integer.parseInt(arg.substring(1));
      }
 else       if (arg.startsWith("String_Node_Str")) {
        VALUE_SIZE=Integer.parseInt(arg.substring(1));
      }
 else       if (arg.startsWith("String_Node_Str")) {
        GET_PERCENTAGE=Integer.parseInt(arg.substring(1));
      }
 else       if (arg.startsWith("String_Node_Str")) {
        PUT_PERCENTAGE=Integer.parseInt(arg.substring(1));
      }
    }
  }
 else {
    System.out.println("String_Node_Str");
    System.out.println("String_Node_Str");
    System.out.println("String_Node_Str");
  }
  System.out.println("String_Node_Str");
  System.out.println("String_Node_Str" + THREAD_COUNT);
  System.out.println("String_Node_Str" + ENTRY_COUNT);
  System.out.println("String_Node_Str" + VALUE_SIZE);
  System.out.println("String_Node_Str" + GET_PERCENTAGE);
  System.out.println("String_Node_Str" + PUT_PERCENTAGE);
  System.out.println("String_Node_Str" + (100 - (PUT_PERCENTAGE + GET_PERCENTAGE)));
  ExecutorService es=Executors.newFixedThreadPool(THREAD_COUNT);
  for (int i=0; i < THREAD_COUNT; i++) {
    es.submit(new Runnable(){
      public void run(){
        IMap<String,Object> map=client.getMap("String_Node_Str");
        while (true) {
          int key=(int)(Math.random() * ENTRY_COUNT);
          int operation=((int)(Math.random() * 100));
          if (operation < GET_PERCENTAGE) {
            map.get(String.valueOf(key));
            stats.gets.incrementAndGet();
          }
 else           if (operation < GET_PERCENTAGE + PUT_PERCENTAGE) {
            map.put(String.valueOf(key),new byte[VALUE_SIZE]);
            stats.puts.incrementAndGet();
          }
 else {
            map.remove(String.valueOf(key));
            stats.removes.incrementAndGet();
          }
        }
      }
    }
);
  }
  Executors.newSingleThreadExecutor().submit(new Runnable(){
    public void run(){
      while (true) {
        try {
          Thread.sleep(STATS_SECONDS * 1000);
          System.out.println("String_Node_Str" + client.getCluster().getMembers().size());
          Stats currentStats=stats.getAndReset();
          System.out.println(currentStats);
          System.out.println("String_Node_Str" + currentStats.total() / STATS_SECONDS);
        }
 catch (        Exception e) {
          e.printStackTrace();
        }
      }
    }
  }
);
}

Fixed version (ground truth):
public static void main(String[] args){
  final ClientConfig clientConfig=new ClientConfig();
  Hazelcast.newHazelcastInstance();
  Hazelcast.newHazelcastInstance();
  final HazelcastInstance client=HazelcastClient.newHazelcastClient(clientConfig);
  final Stats stats=new Stats();
  if (args != null && args.length > 0) {
    for (    String arg : args) {
      arg=arg.trim();
      if (arg.startsWith("String_Node_Str")) {
        THREAD_COUNT=Integer.parseInt(arg.substring(1));
      }
 else       if (arg.startsWith("String_Node_Str")) {
        ENTRY_COUNT=Integer.parseInt(arg.substring(1));
      }
 else       if (arg.startsWith("String_Node_Str")) {
        VALUE_SIZE=Integer.parseInt(arg.substring(1));
      }
 else       if (arg.startsWith("String_Node_Str")) {
        GET_PERCENTAGE=Integer.parseInt(arg.substring(1));
      }
 else       if (arg.startsWith("String_Node_Str")) {
        PUT_PERCENTAGE=Integer.parseInt(arg.substring(1));
      }
    }
  }
 else {
    System.out.println("String_Node_Str");
    System.out.println("String_Node_Str");
    System.out.println("String_Node_Str");
  }
  System.out.println("String_Node_Str");
  System.out.println("String_Node_Str" + THREAD_COUNT);
  System.out.println("String_Node_Str" + ENTRY_COUNT);
  System.out.println("String_Node_Str" + VALUE_SIZE);
  System.out.println("String_Node_Str" + GET_PERCENTAGE);
  System.out.println("String_Node_Str" + PUT_PERCENTAGE);
  System.out.println("String_Node_Str" + (100 - (PUT_PERCENTAGE + GET_PERCENTAGE)));
  ExecutorService es=Executors.newFixedThreadPool(THREAD_COUNT);
  for (int i=0; i < THREAD_COUNT; i++) {
    es.submit(new Runnable(){
      public void run(){
        IMap<String,Object> map=client.getMap("String_Node_Str");
        while (true) {
          int key=(int)(Math.random() * ENTRY_COUNT);
          int operation=((int)(Math.random() * 100));
          if (operation < GET_PERCENTAGE) {
            map.get(String.valueOf(key));
            stats.gets.incrementAndGet();
          }
 else           if (operation < GET_PERCENTAGE + PUT_PERCENTAGE) {
            map.put(String.valueOf(key),new byte[VALUE_SIZE]);
            stats.puts.incrementAndGet();
          }
 else {
            map.remove(String.valueOf(key));
            stats.removes.incrementAndGet();
          }
        }
      }
    }
);
  }
  Executors.newSingleThreadExecutor().submit(new Runnable(){
    public void run(){
      while (true) {
        try {
          Thread.sleep(STATS_SECONDS * 1000);
          System.out.println("String_Node_Str" + client.getCluster().getMembers().size());
          Stats currentStats=stats.getAndReset();
          System.out.println(currentStats);
          System.out.println("String_Node_Str" + currentStats.total() / STATS_SECONDS);
        }
 catch (        Exception e) {
          e.printStackTrace();
        }
      }
    }
  }
);
}