Program: 113530
Project: 113530
Buggy source:
public void testImplicitVersionCreation() throws Exception {
  final long timeoutSpan=61000;
  final long t0=System.currentTimeMillis();
  FileCredentials wCred=getFileCredentials(1,true);
  FileCredentials rCred=getFileCredentials(1,false);
  ObjectData objdata=new ObjectData(0,false,0,SetupUtils.generateData(OBJ_SIZE,(byte)'x'));
  RPCResponse<OSDWriteResponse> r=client.write(osdId.getAddress(),FILE_ID,wCred,0,0,0,0,objdata);
  r.get();
  r.freeBuffers();
  objdata=new ObjectData(0,false,0,SetupUtils.generateData(OBJ_SIZE,(byte)'y'));
  r=client.write(osdId.getAddress(),FILE_ID,wCred,1,0,0,0,objdata);
  r.get();
  r.freeBuffers();
  Thread.sleep(timeoutSpan);
  objdata=new ObjectData(0,false,0,SetupUtils.generateData(OBJ_SIZE,(byte)'z'));
  r=client.write(osdId.getAddress(),FILE_ID,wCred,0,0,0,0,objdata);
  r.get();
  r.freeBuffers();
  final long t1=System.currentTimeMillis();
  FileCredentials rCredV=getFileCredentials(0,t1);
  RPCResponse<ObjectData> r2=client.read(osdId.getAddress(),FILE_ID,rCredV,0,0,0,OBJ_SIZE);
  ObjectData result=r2.get();
  checkData(result,OBJ_SIZE,(byte)'x');
  r2.freeBuffers();
  r2=client.read(osdId.getAddress(),FILE_ID,rCredV,1,0,0,OBJ_SIZE);
  result=r2.get();
  checkData(result,OBJ_SIZE,(byte)'y');
  r2.freeBuffers();
  r2=client.read(osdId.getAddress(),FILE_ID,rCred,0,0,0,OBJ_SIZE);
  result=r2.get();
  checkData(result,OBJ_SIZE,(byte)'z');
  r2.freeBuffers();
  r2=client.read(osdId.getAddress(),FILE_ID,rCred,1,0,0,OBJ_SIZE);
  result=r2.get();
  checkData(result,OBJ_SIZE,(byte)'y');
  r2.freeBuffers();
  rCredV=getFileCredentials(0,t0 - 999999);
  r2=client.read(osdId.getAddress(),FILE_ID,rCredV,0,0,0,OBJ_SIZE);
  result=r2.get();
  checkData(result,0,(byte)0);
  r2.freeBuffers();
  r2=client.read(osdId.getAddress(),FILE_ID,rCredV,1,0,0,OBJ_SIZE);
  result=r2.get();
  checkData(result,0,(byte)0);
  r2.freeBuffers();
  FileCredentials tCred=getFileCredentials(1,true);
  r=client.truncate(osdId.getAddress(),FILE_ID,tCred,0);
  r.get();
  r.freeBuffers();
  Thread.sleep(timeoutSpan);
  objdata=new ObjectData(0,false,0,SetupUtils.generateData(OBJ_SIZE,(byte)'w'));
  r=client.write(osdId.getAddress(),FILE_ID,wCred,2,0,0,0,objdata);
  r.get();
  r.freeBuffers();
  final long t2=System.currentTimeMillis();
  r2=client.read(osdId.getAddress(),FILE_ID,rCred,0,0,0,OBJ_SIZE);
  result=r2.get();
  checkData(result,OBJ_SIZE,(byte)0);
  r2.freeBuffers();
  r2=client.read(osdId.getAddress(),FILE_ID,rCred,1,0,0,OBJ_SIZE);
  result=r2.get();
  checkData(result,OBJ_SIZE,(byte)0);
  r2.freeBuffers();
  r2=client.read(osdId.getAddress(),FILE_ID,rCred,2,0,0,OBJ_SIZE);
  result=r2.get();
  checkData(result,OBJ_SIZE,(byte)'w');
  r2.freeBuffers();
  rCredV=getFileCredentials(0,t1);
  r2=client.read(osdId.getAddress(),FILE_ID,rCredV,0,0,0,OBJ_SIZE);
  result=r2.get();
  checkData(result,OBJ_SIZE,(byte)'x');
  r2.freeBuffers();
  r2=client.read(osdId.getAddress(),FILE_ID,rCredV,1,0,0,OBJ_SIZE);
  result=r2.get();
  checkData(result,OBJ_SIZE,(byte)'y');
  r2.freeBuffers();
  r2=client.read(osdId.getAddress(),FILE_ID,rCredV,2,0,0,OBJ_SIZE);
  result=r2.get();
  checkData(result,0,(byte)0);
  r2.freeBuffers();
  rCredV=getFileCredentials(0,t2);
  r2=client.read(osdId.getAddress(),FILE_ID,rCredV,0,0,0,OBJ_SIZE);
  result=r2.get();
  checkData(result,0,(byte)0);
  r2.freeBuffers();
  r2=client.read(osdId.getAddress(),FILE_ID,rCredV,1,0,0,OBJ_SIZE);
  result=r2.get();
  checkData(result,0,(byte)0);
  r2.freeBuffers();
  r2=client.read(osdId.getAddress(),FILE_ID,rCredV,2,0,0,OBJ_SIZE);
  result=r2.get();
  checkData(result,0,(byte)0);
  r2.freeBuffers();
}

Fixed version (ground truth):
public void testImplicitVersionCreation() throws Exception {
  final long timeoutSpan=61000;
  final long t0=System.currentTimeMillis();
  FileCredentials wCred=getFileCredentials(1,true);
  FileCredentials rCred=getFileCredentials(1,false);
  ObjectData objdata=new ObjectData(0,false,0,SetupUtils.generateData(OBJ_SIZE,(byte)'x'));
  RPCResponse<OSDWriteResponse> r=client.write(osdId.getAddress(),FILE_ID,wCred,0,0,0,0,objdata);
  r.get();
  r.freeBuffers();
  objdata=new ObjectData(0,false,0,SetupUtils.generateData(OBJ_SIZE,(byte)'y'));
  r=client.write(osdId.getAddress(),FILE_ID,wCred,1,0,0,0,objdata);
  r.get();
  r.freeBuffers();
  System.out.println("String_Node_Str" + timeoutSpan / 1000 + "String_Node_Str");
  Thread.sleep(timeoutSpan);
  objdata=new ObjectData(0,false,0,SetupUtils.generateData(OBJ_SIZE,(byte)'z'));
  r=client.write(osdId.getAddress(),FILE_ID,wCred,0,0,0,0,objdata);
  r.get();
  r.freeBuffers();
  final long t1=System.currentTimeMillis();
  FileCredentials rCredV=getFileCredentials(0,t1);
  RPCResponse<ObjectData> r2=client.read(osdId.getAddress(),FILE_ID,rCredV,0,0,0,OBJ_SIZE);
  ObjectData result=r2.get();
  checkData(result,OBJ_SIZE,(byte)'x');
  r2.freeBuffers();
  r2=client.read(osdId.getAddress(),FILE_ID,rCredV,1,0,0,OBJ_SIZE);
  result=r2.get();
  checkData(result,OBJ_SIZE,(byte)'y');
  r2.freeBuffers();
  r2=client.read(osdId.getAddress(),FILE_ID,rCred,0,0,0,OBJ_SIZE);
  result=r2.get();
  checkData(result,OBJ_SIZE,(byte)'z');
  r2.freeBuffers();
  r2=client.read(osdId.getAddress(),FILE_ID,rCred,1,0,0,OBJ_SIZE);
  result=r2.get();
  checkData(result,OBJ_SIZE,(byte)'y');
  r2.freeBuffers();
  rCredV=getFileCredentials(0,t0 - 999999);
  r2=client.read(osdId.getAddress(),FILE_ID,rCredV,0,0,0,OBJ_SIZE);
  result=r2.get();
  checkData(result,0,(byte)0);
  r2.freeBuffers();
  r2=client.read(osdId.getAddress(),FILE_ID,rCredV,1,0,0,OBJ_SIZE);
  result=r2.get();
  checkData(result,0,(byte)0);
  r2.freeBuffers();
  FileCredentials tCred=getFileCredentials(1,true);
  r=client.truncate(osdId.getAddress(),FILE_ID,tCred,0);
  r.get();
  r.freeBuffers();
  Thread.sleep(timeoutSpan);
  objdata=new ObjectData(0,false,0,SetupUtils.generateData(OBJ_SIZE,(byte)'w'));
  r=client.write(osdId.getAddress(),FILE_ID,wCred,2,0,0,0,objdata);
  r.get();
  r.freeBuffers();
  final long t2=System.currentTimeMillis();
  r2=client.read(osdId.getAddress(),FILE_ID,rCred,0,0,0,OBJ_SIZE);
  result=r2.get();
  checkData(result,OBJ_SIZE,(byte)0);
  r2.freeBuffers();
  r2=client.read(osdId.getAddress(),FILE_ID,rCred,1,0,0,OBJ_SIZE);
  result=r2.get();
  checkData(result,OBJ_SIZE,(byte)0);
  r2.freeBuffers();
  r2=client.read(osdId.getAddress(),FILE_ID,rCred,2,0,0,OBJ_SIZE);
  result=r2.get();
  checkData(result,OBJ_SIZE,(byte)'w');
  r2.freeBuffers();
  rCredV=getFileCredentials(0,t1);
  r2=client.read(osdId.getAddress(),FILE_ID,rCredV,0,0,0,OBJ_SIZE);
  result=r2.get();
  checkData(result,OBJ_SIZE,(byte)'x');
  r2.freeBuffers();
  r2=client.read(osdId.getAddress(),FILE_ID,rCredV,1,0,0,OBJ_SIZE);
  result=r2.get();
  checkData(result,OBJ_SIZE,(byte)'y');
  r2.freeBuffers();
  r2=client.read(osdId.getAddress(),FILE_ID,rCredV,2,0,0,OBJ_SIZE);
  result=r2.get();
  checkData(result,0,(byte)0);
  r2.freeBuffers();
  rCredV=getFileCredentials(0,t2);
  r2=client.read(osdId.getAddress(),FILE_ID,rCredV,0,0,0,OBJ_SIZE);
  result=r2.get();
  checkData(result,0,(byte)0);
  r2.freeBuffers();
  r2=client.read(osdId.getAddress(),FILE_ID,rCredV,1,0,0,OBJ_SIZE);
  result=r2.get();
  checkData(result,0,(byte)0);
  r2.freeBuffers();
  r2=client.read(osdId.getAddress(),FILE_ID,rCredV,2,0,0,OBJ_SIZE);
  result=r2.get();
  checkData(result,0,(byte)0);
  r2.freeBuffers();
}