Program: 152405
Project: 152405
Buggy source:
public void testDataInsertAndUpdate_WithHashId(){
  long rawContactId=RawContactUtil.createRawContactWithName(mResolver,"String_Node_Str","String_Node_Str");
  ContentValues values=new ContentValues();
  putDataValues(values,rawContactId);
  Uri dataUri=mResolver.insert(Data.CONTENT_URI,values);
  final ContactsProvider2 cp=(ContactsProvider2)getProvider();
  final ContactsDatabaseHelper helper=cp.getDatabaseHelper(mContext);
  String data1=values.getAsString(Data.DATA1);
  String data2=values.getAsString(Data.DATA2);
  String combineString=data1 + data2;
  String hashId=helper.generateHashIdForData(combineString.getBytes());
  assertStoredValue(dataUri,Data.HASH_ID,hashId);
  String newData1="String_Node_Str";
  values.put(Data.DATA1,newData1);
  mResolver.update(dataUri,values,null,null);
  combineString=newData1 + data2;
  String newHashId=helper.generateHashIdForData(combineString.getBytes());
  assertStoredValue(dataUri,Data.HASH_ID,newHashId);
  values.remove(Data.DATA1);
  values.put(Data.DATA2,"String_Node_Str");
  combineString="String_Node_Str";
  String testHashId=helper.generateHashIdForData(combineString.getBytes());
  mResolver.update(dataUri,values,null,null);
  assertStoredValue(dataUri,Data.HASH_ID,testHashId);
  values.put(Data.DATA1,"String_Node_Str");
  combineString="String_Node_Str";
  testHashId=helper.generateHashIdForData(combineString.getBytes());
  mResolver.update(dataUri,values,null,null);
  assertStoredValue(dataUri,Data.HASH_ID,testHashId);
  values.putNull(Data.DATA1);
  values.putNull(Data.DATA2);
  byte[] data15=values.getAsByteArray(Data.DATA15);
  testHashId=helper.generateHashIdForData(data15);
  mResolver.update(dataUri,values,null,null);
  assertStoredValue(dataUri,Data.HASH_ID,testHashId);
  putDataValues(values,rawContactId);
  values.remove(Data.DATA1);
  values.remove(Data.DATA2);
  values.remove(Data.DATA15);
  Uri dataUri2=mResolver.insert(Data.CONTENT_URI,values);
  assertStoredValue(dataUri2,Data.HASH_ID,null);
}

Fixed version (ground truth):
public void testDataInsertAndUpdate_WithHashId(){
  long rawContactId=RawContactUtil.createRawContactWithName(mResolver,"String_Node_Str","String_Node_Str");
  ContentValues values=new ContentValues();
  putDataValues(values,rawContactId);
  Uri dataUri=mResolver.insert(Data.CONTENT_URI,values);
  final ContactsProvider2 cp=(ContactsProvider2)getProvider();
  final ContactsDatabaseHelper helper=cp.getDatabaseHelper(mContext);
  String data1=values.getAsString(Data.DATA1);
  String data2=values.getAsString(Data.DATA2);
  String combineString=data1 + data2;
  String hashId=helper.generateHashIdForData(combineString.getBytes());
  assertStoredValue(dataUri,Data.HASH_ID,hashId);
  values.remove(Data.DATA1);
  values.remove(Data.DATA2);
  values.remove(Data.DATA15);
  values.put(Data.IS_PRIMARY,"String_Node_Str");
  mResolver.update(dataUri,values,null,null);
  assertStoredValue(dataUri,Data.IS_PRIMARY,"String_Node_Str");
  assertStoredValue(dataUri,Data.HASH_ID,hashId);
  values=new ContentValues();
  putDataValues(values,rawContactId);
  String newData1="String_Node_Str";
  values.put(Data.DATA1,newData1);
  mResolver.update(dataUri,values,null,null);
  combineString=newData1 + data2;
  String newHashId=helper.generateHashIdForData(combineString.getBytes());
  assertStoredValue(dataUri,Data.HASH_ID,newHashId);
  values.remove(Data.DATA1);
  values.put(Data.DATA2,"String_Node_Str");
  combineString="String_Node_Str";
  String testHashId=helper.generateHashIdForData(combineString.getBytes());
  mResolver.update(dataUri,values,null,null);
  assertStoredValue(dataUri,Data.HASH_ID,testHashId);
  values.put(Data.DATA1,"String_Node_Str");
  combineString="String_Node_Str";
  testHashId=helper.generateHashIdForData(combineString.getBytes());
  mResolver.update(dataUri,values,null,null);
  assertStoredValue(dataUri,Data.HASH_ID,testHashId);
  values.putNull(Data.DATA1);
  values.putNull(Data.DATA2);
  byte[] data15=values.getAsByteArray(Data.DATA15);
  testHashId=helper.generateHashIdForData(data15);
  mResolver.update(dataUri,values,null,null);
  assertStoredValue(dataUri,Data.HASH_ID,testHashId);
  putDataValues(values,rawContactId);
  values.remove(Data.DATA1);
  values.remove(Data.DATA2);
  values.remove(Data.DATA15);
  Uri dataUri2=mResolver.insert(Data.CONTENT_URI,values);
  assertStoredValue(dataUri2,Data.HASH_ID,null);
}