Program: 80467
Project: 80467
Buggy source:
@Test public void replayQuery_01(){
  String qCypher;
  Locking lockingStrategy=Locking.OPTIMISTIC;
  IDomainAccess da1=DomainAccessFactory.createDomainAccess(dbAccess,domainName).setLockingStrategy(lockingStrategy);
  Person a_smith=ConcurrencyTest.findPerson(da1,"String_Node_Str","String_Node_Str");
  Person j_smith1=ConcurrencyTest.findPerson(da1,"String_Node_Str","String_Node_Str");
  IDomainAccess da2=DomainAccessFactory.createDomainAccess(dbAccess,domainName).setLockingStrategy(lockingStrategy);
  Person j_smith2=ConcurrencyTest.findPerson(da2,"String_Node_Str","String_Node_Str");
  PoBox poBox=new PoBox();
  poBox.setNumber(12345);
  List<PointOfContact> pocs=j_smith2.getPointsOfContact();
  pocs.add(poBox);
  List<JcError> errors=da2.store(j_smith2);
  assertTrue(errors.isEmpty());
  if (errors.size() > 0) {
    printErrors(errors);
  }
  String domModel2=((IIntDomainAccess)da2).getInternalDomainAccess().domainModelAsString();
  String domModel1=((IIntDomainAccess)da1).getInternalDomainAccess().domainModelAsString();
  assertFalse(domModel2.equals(domModel1));
  Person j_smith=ConcurrencyTest.findPerson(da1,"String_Node_Str","String_Node_Str");
  String domModel11=((IIntDomainAccess)da1).getInternalDomainAccess().domainModelAsString();
  assertEquals(domModel2,domModel11);
  return;
}

Fixed version (ground truth):
@Test public void replayQuery_01(){
  String qCypher;
  Locking lockingStrategy=Locking.OPTIMISTIC;
  IDomainAccess da1=DomainAccessFactory.createDomainAccess(dbAccess,domainName).setLockingStrategy(lockingStrategy);
  Person a_smith=ConcurrencyTest.findPerson(da1,"String_Node_Str","String_Node_Str");
  Person j_smith1=ConcurrencyTest.findPerson(da1,"String_Node_Str","String_Node_Str");
  IDomainAccess da2=DomainAccessFactory.createDomainAccess(dbAccess,domainName).setLockingStrategy(lockingStrategy);
  Person j_smith2=ConcurrencyTest.findPerson(da2,"String_Node_Str","String_Node_Str");
  PoBox poBox=new PoBox();
  poBox.setNumber(12345);
  List<PointOfContact> pocs=j_smith2.getPointsOfContact();
  pocs.add(poBox);
  List<JcError> errors=da2.store(j_smith2);
  assertTrue(errors.isEmpty());
  if (errors.size() > 0) {
    printErrors(errors);
  }
  String domModel2=((IIntDomainAccess)da2).getInternalDomainAccess().domainModelAsString();
  String domModel1=((IIntDomainAccess)da1).getInternalDomainAccess().domainModelAsString();
  assertFalse(domModel2.equals(domModel1));
  IDomainAccess da3=DomainAccessFactory.createDomainAccess(dbAccess,domainName).setLockingStrategy(lockingStrategy);
  Person j_smithTemp=ConcurrencyTest.findPerson(da3,"String_Node_Str","String_Node_Str");
  assertTrue(j_smith1.getPointsOfContact().size() == 4);
  assertTrue(j_smithTemp.getPointsOfContact().size() == 5);
  assertTrue(j_smithTemp.getPointsOfContact().get(4) instanceof PoBox);
  assertTrue(((PoBox)j_smithTemp.getPointsOfContact().get(4)).getNumber() == 12345);
  Person j_smith=ConcurrencyTest.findPerson(da1,"String_Node_Str","String_Node_Str");
  String domModel11=((IIntDomainAccess)da1).getInternalDomainAccess().domainModelAsString();
  assertEquals(domModel2,domModel11);
  assertTrue(j_smith1 == j_smith);
  assertTrue(j_smith.getPointsOfContact().size() == 5);
  assertTrue(j_smith.getPointsOfContact().get(4) instanceof PoBox);
  assertTrue(((PoBox)j_smith.getPointsOfContact().get(4)).getNumber() == 12345);
  return;
}