Program: 102520
Project: 102520
Buggy source:
@MaxQueryNumber(500) public void testFindIdentityByFirstChar() throws Exception {
  addIdentity("String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str");
  addIdentity("String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str");
  addIdentity("String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str");
  addIdentity("String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str");
  addIdentity("String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str");
  Identity b2=addIdentity("String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str");
  addIdentity("String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str");
  addIdentity("String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str");
  Profile profile=storage.loadProfile(new Profile(b2));
  Map<String,String> xp=new HashMap<String,String>();
  List<Map<String,String>> xps=new ArrayList<Map<String,String>>();
  xp.put(Profile.EXPERIENCES_SKILLS,"String_Node_Str");
  xps.add(xp);
  profile.setProperty(Profile.EXPERIENCES,xps);
  storage.saveProfile(profile);
  ProfileFilter filterA=createFilter('a',"String_Node_Str","String_Node_Str","String_Node_Str",null);
  ProfileFilter filterB=createFilter('b',"String_Node_Str","String_Node_Str","String_Node_Str",null);
  ProfileFilter filterC=createFilter('c',"String_Node_Str","String_Node_Str","String_Node_Str",null);
  ProfileFilter filterZ=createFilter('z',"String_Node_Str","String_Node_Str","String_Node_Str",null);
  ProfileFilter filterB2=createFilter('b',"String_Node_Str","String_Node_Str","String_Node_Str",b2);
  ProfileFilter filterB2Skills=new ProfileFilter();
  filterB2Skills.setSkills("String_Node_Str");
  assertEquals(4,storage.getIdentitiesByFirstCharacterOfName("String_Node_Str",filterA,0,-1,false).size());
  assertEquals(4,storage.getIdentitiesByFirstCharacterOfName("String_Node_Str",filterA,0,4,false).size());
  assertEquals(4,storage.getIdentitiesByFirstCharacterOfName("String_Node_Str",filterA,0,4,false).size());
  assertEquals(3,storage.getIdentitiesByFirstCharacterOfName("String_Node_Str",filterA,0,3,false).size());
  assertEquals(4,storage.getIdentitiesByFirstCharacterOfName("String_Node_Str",filterA,0,10,false).size());
  assertEquals(3,storage.getIdentitiesByFirstCharacterOfName("String_Node_Str",filterB,0,10,false).size());
  assertEquals(0,storage.getIdentitiesByFirstCharacterOfName("String_Node_Str",filterC,0,10,false).size());
  assertEquals(1,storage.getIdentitiesByFirstCharacterOfName("String_Node_Str",filterZ,0,10,false).size());
  assertEquals(2,storage.getIdentitiesByFirstCharacterOfName("String_Node_Str",filterB2,0,10,false).size());
  assertEquals(1,storage.getIdentitiesByFirstCharacterOfName("String_Node_Str",filterB2Skills,0,10,false).size());
  assertEquals("String_Node_Str",storage.getIdentitiesByFirstCharacterOfName("String_Node_Str",filterB2Skills,0,10,false).get(0).getRemoteId());
}

Fixed version (ground truth):
@MaxQueryNumber(510) public void testFindIdentityByFirstChar() throws Exception {
  addIdentity("String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str");
  addIdentity("String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str");
  addIdentity("String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str");
  addIdentity("String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str");
  addIdentity("String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str");
  Identity b2=addIdentity("String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str");
  addIdentity("String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str");
  addIdentity("String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str");
  Profile profile=storage.loadProfile(new Profile(b2));
  Map<String,String> xp=new HashMap<String,String>();
  List<Map<String,String>> xps=new ArrayList<Map<String,String>>();
  xp.put(Profile.EXPERIENCES_SKILLS,"String_Node_Str");
  xps.add(xp);
  profile.setProperty(Profile.EXPERIENCES,xps);
  storage.saveProfile(profile);
  ProfileFilter filterA=createFilter('a',"String_Node_Str","String_Node_Str","String_Node_Str",null);
  ProfileFilter filterB=createFilter('b',"String_Node_Str","String_Node_Str","String_Node_Str",null);
  ProfileFilter filterC=createFilter('c',"String_Node_Str","String_Node_Str","String_Node_Str",null);
  ProfileFilter filterZ=createFilter('z',"String_Node_Str","String_Node_Str","String_Node_Str",null);
  ProfileFilter filterB2=createFilter('b',"String_Node_Str","String_Node_Str","String_Node_Str",b2);
  ProfileFilter filterB2Skills=new ProfileFilter();
  filterB2Skills.setSkills("String_Node_Str");
  assertEquals(4,storage.getIdentitiesByFirstCharacterOfName("String_Node_Str",filterA,0,-1,false).size());
  assertEquals(4,storage.getIdentitiesByFirstCharacterOfName("String_Node_Str",filterA,0,4,false).size());
  assertEquals(4,storage.getIdentitiesByFirstCharacterOfName("String_Node_Str",filterA,0,4,false).size());
  assertEquals(3,storage.getIdentitiesByFirstCharacterOfName("String_Node_Str",filterA,0,3,false).size());
  assertEquals(4,storage.getIdentitiesByFirstCharacterOfName("String_Node_Str",filterA,0,10,false).size());
  assertEquals(3,storage.getIdentitiesByFirstCharacterOfName("String_Node_Str",filterB,0,10,false).size());
  assertEquals(0,storage.getIdentitiesByFirstCharacterOfName("String_Node_Str",filterC,0,10,false).size());
  assertEquals(1,storage.getIdentitiesByFirstCharacterOfName("String_Node_Str",filterZ,0,10,false).size());
  assertEquals(2,storage.getIdentitiesByFirstCharacterOfName("String_Node_Str",filterB2,0,10,false).size());
  assertEquals(1,storage.getIdentitiesByFirstCharacterOfName("String_Node_Str",filterB2Skills,0,10,false).size());
  assertEquals("String_Node_Str",storage.getIdentitiesByFirstCharacterOfName("String_Node_Str",filterB2Skills,0,10,false).get(0).getRemoteId());
}