Program: 49392
Project: 49392
Buggy source:
@Test public void testEvictionSpeedTest(){
  final int k=3;
  final int size=10000;
  final CountDownLatch latch=new CountDownLatch(k);
  final String mapName="String_Node_Str";
  Config cfg=new Config();
  MapConfig mc=cfg.getMapConfig(mapName);
  mc.setEvictionPolicy(MapConfig.EvictionPolicy.LRU);
  mc.setEvictionPercentage(25);
  MaxSizeConfig msc=new MaxSizeConfig();
  msc.setMaxSizePolicy(MaxSizeConfig.MaxSizePolicy.PER_NODE);
  msc.setSize(size);
  mc.setMaxSizeConfig(msc);
  Hazelcast.shutdownAll();
  final HazelcastInstance[] instances=StaticNodeFactory.newInstances(cfg,k);
  new Thread(){
    final IMap map=instances[0].getMap(mapName);
    public void run(){
      try {
        Thread.sleep(1000);
        while (latch.getCount() != 0) {
          try {
            System.out.println("String_Node_Str" + map.size() + "String_Node_Str"+ (size * k));
            Thread.sleep(1000);
          }
 catch (          InterruptedException e) {
            e.printStackTrace();
          }
        }
      }
 catch (      InterruptedException e) {
        e.printStackTrace();
      }
    }
  }
.start();
  for (int i=0; i < k; i++) {
    final IMap map=instances[i].getMap(mapName);
    new Thread(){
      public void run(){
        for (int j=0; j < 100000; j++) {
          map.put("String_Node_Str" + j,j);
        }
        latch.countDown();
      }
    }
.start();
  }
  try {
    Assert.assertEquals(latch.await(10,TimeUnit.MINUTES),true);
  }
 catch (  InterruptedException e) {
    e.printStackTrace();
    Assert.fail(e.getMessage());
  }
}

Fixed version (ground truth):
@Test public void testEvictionSpeedTest(){
  final int k=3;
  final int size=10000;
  final CountDownLatch latch=new CountDownLatch(k);
  final String mapName="String_Node_Str";
  Config cfg=new Config();
  final MapConfig mc=cfg.getMapConfig(mapName);
  mc.setEvictionPolicy(MapConfig.EvictionPolicy.LRU);
  mc.setEvictionPercentage(25);
  final MaxSizeConfig msc=new MaxSizeConfig();
  msc.setMaxSizePolicy(MaxSizeConfig.MaxSizePolicy.PER_NODE);
  msc.setSize(size);
  mc.setMaxSizeConfig(msc);
  Hazelcast.shutdownAll();
  final HazelcastInstance[] instances=StaticNodeFactory.newInstances(cfg,k);
  new Thread(){
    final IMap map=instances[0].getMap(mapName);
    public void run(){
      try {
        Thread.sleep(1000);
        while (latch.getCount() != 0) {
          try {
            int msize=map.size();
            assertTrue(msize <= (size * k + size * k * 10 / 100));
            Thread.sleep(1000);
          }
 catch (          InterruptedException e) {
            e.printStackTrace();
          }
        }
      }
 catch (      InterruptedException e) {
        e.printStackTrace();
      }
    }
  }
.start();
  for (int i=0; i < k; i++) {
    final IMap map=instances[i].getMap(mapName);
    new Thread(){
      public void run(){
        for (int j=0; j < 100000; j++) {
          map.put(k + "String_Node_Str" + j,j);
        }
        latch.countDown();
      }
    }
.start();
  }
  try {
    Assert.assertEquals(latch.await(10,TimeUnit.MINUTES),true);
  }
 catch (  InterruptedException e) {
    e.printStackTrace();
    Assert.fail(e.getMessage());
  }
}