Program: 132311
Project: 132311
Buggy source:
@Test public void testInsDelGet() throws Exception {
  database=BabuDBFactory.createBabuDB(new BabuDBConfig(baseDir,baseDir,0,0,0,SyncMode.ASYNC,0,0,compression,maxNumRecs,maxBlockFileSize));
  Database db=database.getDatabaseManager().createDatabase("String_Node_Str",3);
  for (int i=0; i < 1000; i++) {
    DatabaseInsertGroup ir=db.createInsertGroup();
    ir.addInsert(0,(i + "String_Node_Str").getBytes(),"String_Node_Str".getBytes());
    ir.addInsert(1,(i + "String_Node_Str").getBytes(),"String_Node_Str".getBytes());
    ir.addInsert(2,(i + "String_Node_Str").getBytes(),"String_Node_Str".getBytes());
    db.insert(ir,null).get();
  }
  byte[] data=new byte[2048];
  for (int i=0; i < 1000; i++) {
    DatabaseInsertGroup ir=db.createInsertGroup();
    ir.addInsert(0,(i + "String_Node_Str").getBytes(),data);
    ir.addInsert(1,(i + "String_Node_Str").getBytes(),data);
    ir.addInsert(2,(i + "String_Node_Str").getBytes(),data);
    db.insert(ir,null).get();
  }
  database.getCheckpointer().checkpoint();
  for (int i=0; i < 1000; i++) {
    byte[] v0=db.lookup(0,(i + "String_Node_Str").getBytes(),null).get();
    byte[] v1=db.lookup(1,(i + "String_Node_Str").getBytes(),null).get();
    byte[] v2=db.lookup(2,(i + "String_Node_Str").getBytes(),null).get();
    assertNotNull(v0);
    assertNotNull(v1);
    assertNotNull(v2);
  }
  for (int i=0; i < 1000; i++) {
    DatabaseInsertGroup ir=db.createInsertGroup();
    ir.addDelete(0,(i + "String_Node_Str").getBytes());
    ir.addDelete(1,(i + "String_Node_Str").getBytes());
    ir.addDelete(2,(i + "String_Node_Str").getBytes());
    db.insert(ir,null).get();
  }
  for (int i=0; i < 1000; i++) {
    byte[] v0=db.lookup(0,(i + "String_Node_Str").getBytes(),null).get();
    byte[] v1=db.lookup(1,(i + "String_Node_Str").getBytes(),null).get();
    byte[] v2=db.lookup(2,(i + "String_Node_Str").getBytes(),null).get();
    assertNull(v0);
    assertNull(v1);
    assertNull(v2);
  }
}

Fixed version (ground truth):
@Test public void testInsDelGet() throws Exception {
  database=BabuDBFactory.createBabuDB(new BabuDBConfig(baseDir,baseDir,0,0,0,SyncMode.ASYNC,0,0,compression,maxNumRecs,maxBlockFileSize,true,0,Logging.LEVEL_DEBUG));
  Database db=database.getDatabaseManager().createDatabase("String_Node_Str",3);
  for (int i=0; i < 1000; i++) {
    DatabaseInsertGroup ir=db.createInsertGroup();
    ir.addInsert(0,(i + "String_Node_Str").getBytes(),"String_Node_Str".getBytes());
    ir.addInsert(1,(i + "String_Node_Str").getBytes(),"String_Node_Str".getBytes());
    ir.addInsert(2,(i + "String_Node_Str").getBytes(),"String_Node_Str".getBytes());
    db.insert(ir,null).get();
  }
  byte[] data=new byte[2048];
  for (int i=0; i < 1000; i++) {
    DatabaseInsertGroup ir=db.createInsertGroup();
    ir.addInsert(0,(i + "String_Node_Str").getBytes(),data);
    ir.addInsert(1,(i + "String_Node_Str").getBytes(),data);
    ir.addInsert(2,(i + "String_Node_Str").getBytes(),data);
    db.insert(ir,null).get();
  }
  database.getCheckpointer().checkpoint();
  for (int i=0; i < 1000; i++) {
    byte[] v0=db.lookup(0,(i + "String_Node_Str").getBytes(),null).get();
    byte[] v1=db.lookup(1,(i + "String_Node_Str").getBytes(),null).get();
    byte[] v2=db.lookup(2,(i + "String_Node_Str").getBytes(),null).get();
    assertNotNull(v0);
    assertNotNull(v1);
    assertNotNull(v2);
  }
  for (int i=0; i < 1000; i++) {
    DatabaseInsertGroup ir=db.createInsertGroup();
    ir.addDelete(0,(i + "String_Node_Str").getBytes());
    ir.addDelete(1,(i + "String_Node_Str").getBytes());
    ir.addDelete(2,(i + "String_Node_Str").getBytes());
    db.insert(ir,null).get();
  }
  for (int i=0; i < 1000; i++) {
    byte[] v0=db.lookup(0,(i + "String_Node_Str").getBytes(),null).get();
    byte[] v1=db.lookup(1,(i + "String_Node_Str").getBytes(),null).get();
    byte[] v2=db.lookup(2,(i + "String_Node_Str").getBytes(),null).get();
    assertNull(v0);
    assertNull(v1);
    assertNull(v2);
  }
  database.shutdown();
}