Program: 35178
Project: 35178
Buggy source:
public void testSMGetHitAllWithOffsetExactCount(){
  try {
    keyList=new ArrayList<String>();
    for (int i=0; i < 10; i++) {
      mc.delete(KEY + i).get();
      keyList.add(KEY + i);
    }
    for (int i=0; i < 10; i++) {
      mc.asyncBopInsert(KEY + i,i,"String_Node_Str".getBytes(),"String_Node_Str" + i,new CollectionAttributes()).get();
    }
  }
 catch (  Exception e) {
    fail(e.getMessage());
  }
  SMGetMode smgetMode=SMGetMode.UNIQUE;
  SMGetFuture<List<SMGetElement<Object>>> oldFuture=mc.asyncBopSortMergeGet(keyList,0,10,ElementFlagFilter.DO_NOT_FILTER,1,10);
  try {
    List<SMGetElement<Object>> map=oldFuture.get(1000L,TimeUnit.SECONDS);
    Assert.assertEquals(9,map.size());
    Assert.assertTrue(oldFuture.getMissedKeyList().isEmpty());
    for (int i=0; i < map.size(); i++) {
      Assert.assertEquals(KEY + (i + 1),map.get(i).getKey());
      Assert.assertEquals(i + 1,map.get(i).getBkey());
      Assert.assertEquals("String_Node_Str" + (i + 1),map.get(i).getValue());
    }
  }
 catch (  Exception e) {
    oldFuture.cancel(true);
    e.printStackTrace();
    Assert.fail(e.getMessage());
  }
  SMGetFuture<List<SMGetElement<Object>>> future=mc.asyncBopSortMergeGet(keyList,0,10,ElementFlagFilter.DO_NOT_FILTER,10,smgetMode);
  try {
    List<SMGetElement<Object>> map=future.get(1000L,TimeUnit.SECONDS);
    Assert.assertEquals(9,map.size());
    Assert.assertTrue(future.getMissedKeyList().isEmpty());
    for (int i=0; i < map.size(); i++) {
      Assert.assertEquals(KEY + (i + 1),map.get(i).getKey());
      Assert.assertEquals(i + 1,map.get(i).getBkey());
      Assert.assertEquals("String_Node_Str" + (i + 1),map.get(i).getValue());
    }
  }
 catch (  Exception e) {
    future.cancel(true);
    e.printStackTrace();
    Assert.fail(e.getMessage());
  }
}

Fixed version (ground truth):
public void testSMGetHitAllWithOffsetExactCount(){
  try {
    keyList=new ArrayList<String>();
    for (int i=0; i < 10; i++) {
      mc.delete(KEY + i).get();
      keyList.add(KEY + i);
    }
    for (int i=0; i < 10; i++) {
      mc.asyncBopInsert(KEY + i,i,"String_Node_Str".getBytes(),"String_Node_Str" + i,new CollectionAttributes()).get();
    }
  }
 catch (  Exception e) {
    fail(e.getMessage());
  }
  SMGetMode smgetMode=SMGetMode.UNIQUE;
  SMGetFuture<List<SMGetElement<Object>>> oldFuture=mc.asyncBopSortMergeGet(keyList,0,10,ElementFlagFilter.DO_NOT_FILTER,1,10);
  try {
    List<SMGetElement<Object>> map=oldFuture.get(1000L,TimeUnit.SECONDS);
    Assert.assertEquals(9,map.size());
    Assert.assertTrue(oldFuture.getMissedKeyList().isEmpty());
    for (int i=0; i < map.size(); i++) {
      Assert.assertEquals(KEY + (i + 1),map.get(i).getKey());
      Assert.assertEquals(i + 1,map.get(i).getBkey());
      Assert.assertEquals("String_Node_Str" + (i + 1),map.get(i).getValue());
    }
  }
 catch (  Exception e) {
    oldFuture.cancel(true);
    e.printStackTrace();
    Assert.fail(e.getMessage());
  }
  SMGetFuture<List<SMGetElement<Object>>> future=mc.asyncBopSortMergeGet(keyList,0,10,ElementFlagFilter.DO_NOT_FILTER,10,smgetMode);
  try {
    List<SMGetElement<Object>> map=future.get(1000L,TimeUnit.SECONDS);
    Assert.assertEquals(10,map.size());
    Assert.assertTrue(future.getMissedKeys().isEmpty());
    for (int i=0; i < map.size(); i++) {
      Assert.assertEquals(KEY + i,map.get(i).getKey());
      Assert.assertEquals(i,map.get(i).getBkey());
      Assert.assertEquals("String_Node_Str" + i,map.get(i).getValue());
    }
  }
 catch (  Exception e) {
    future.cancel(true);
    e.printStackTrace();
    Assert.fail(e.getMessage());
  }
}