Program: 154764
Project: 154764
Buggy source:
private void deleteRel1(int rel,int prop1,int prop2,int prop3,int firstNode,int secondNode,int relType) throws IOException {
  ArrayMap<Integer,PropertyData> props=rStore.getProperties(rel,false);
  int count=0;
  for (  int keyId : props.keySet()) {
    int id=props.get(keyId).getId();
    PropertyRecord record=pStore.getRecord(id);
    PropertyData data=new PropertyData(id,getValue(record));
    if (data.getId() == prop1) {
      assertEquals("String_Node_Str",MyPropertyIndex.getIndexFor(keyId).getKey());
      assertEquals("String_Node_Str",data.getValue());
    }
 else     if (data.getId() == prop2) {
      assertEquals("String_Node_Str",MyPropertyIndex.getIndexFor(keyId).getKey());
      assertEquals(new Integer(-1),data.getValue());
    }
 else     if (data.getId() == prop3) {
      assertEquals("String_Node_Str",MyPropertyIndex.getIndexFor(keyId).getKey());
      assertEquals(new Boolean(false),data.getValue());
      rStore.removeProperty(rel,prop3);
    }
 else {
      throw new IOException();
    }
    count++;
  }
  assertEquals(3,count);
  assertEquals(2,rStore.getProperties(rel,false).size());
  RelationshipData relData=rStore.getRelationship(rel);
  assertEquals(firstNode,relData.firstNode());
  assertEquals(secondNode,relData.secondNode());
  assertEquals(relType,relData.relationshipType());
  rStore.deleteRelationship(rel);
  RelationshipChainPosition firstPos=rStore.getRelationshipChainPosition(firstNode);
  Iterator<RelationshipData> first=rStore.getMoreRelationships(firstNode,firstPos).iterator();
  first.next();
  RelationshipChainPosition secondPos=rStore.getRelationshipChainPosition(secondNode);
  Iterator<RelationshipData> second=rStore.getMoreRelationships(secondNode,secondPos).iterator();
  second.next();
  assertTrue(!first.hasNext());
  assertTrue(!second.hasNext());
}

Fixed version (ground truth):
private void deleteRel1(int rel,int prop1,int prop2,int prop3,int firstNode,int secondNode,int relType) throws IOException {
  ArrayMap<Integer,PropertyData> props=rStore.getProperties(rel,false);
  int count=0;
  for (  int keyId : props.keySet()) {
    int id=props.get(keyId).getId();
    PropertyRecord record=pStore.getRecord(id);
    PropertyData data=new PropertyData(id,getValue(record));
    if (data.getId() == prop1) {
      assertEquals("String_Node_Str",MyPropertyIndex.getIndexFor(keyId).getKey());
      assertEquals("String_Node_Str",data.getValue());
    }
 else     if (data.getId() == prop2) {
      assertEquals("String_Node_Str",MyPropertyIndex.getIndexFor(keyId).getKey());
      assertEquals(new Integer(-1),data.getValue());
    }
 else     if (data.getId() == prop3) {
      assertEquals("String_Node_Str",MyPropertyIndex.getIndexFor(keyId).getKey());
      assertEquals(new Boolean(false),data.getValue());
      rStore.removeProperty(rel,prop3);
    }
 else {
      throw new IOException();
    }
    count++;
  }
  assertEquals(3,count);
  assertEquals(3,rStore.getProperties(rel,false).size());
  RelationshipData relData=rStore.getRelationship(rel);
  assertEquals(firstNode,relData.firstNode());
  assertEquals(secondNode,relData.secondNode());
  assertEquals(relType,relData.relationshipType());
  rStore.deleteRelationship(rel);
  RelationshipChainPosition firstPos=rStore.getRelationshipChainPosition(firstNode);
  Iterator<RelationshipData> first=rStore.getMoreRelationships(firstNode,firstPos).iterator();
  first.next();
  RelationshipChainPosition secondPos=rStore.getRelationshipChainPosition(secondNode);
  Iterator<RelationshipData> second=rStore.getMoreRelationships(secondNode,secondPos).iterator();
  second.next();
  assertTrue(first.hasNext());
  assertTrue(second.hasNext());
}