Program: 189070
Project: 189070
Buggy source:
@Test public void testVersioningAndFeatureSets(){
  CreateUpdateManager mManager=SWQEFactory.getModelManager();
  FeatureSet aSet=mManager.buildFeatureSet().setReference(mManager.buildReference().setName("String_Node_Str").build()).build();
  mManager.flush();
  aSet.add(mManager.buildFeature().setSeqid("String_Node_Str").setStart(1000000).setStop(1000100).build());
  aSet.add(mManager.buildFeature().setSeqid("String_Node_Str").setStart(1000200).setStop(1000300).build());
  aSet.add(mManager.buildFeature().setSeqid("String_Node_Str").setStart(1000400).setStop(1000500).build());
  mManager.flush();
  aSet.add(mManager.buildFeature().setSeqid("String_Node_Str").setStart(1000600).setStop(1000610).build());
  aSet.add(mManager.buildFeature().setSeqid("String_Node_Str").setStart(1000700).setStop(1000710).build());
  aSet.add(mManager.buildFeature().setSeqid("String_Node_Str").setStart(1000800).setStop(1000810).build());
  mManager.flush();
  List<Feature> killList=new ArrayList<Feature>();
  for (  Feature f : aSet) {
    killList.add(f);
  }
  for (  Feature f : killList) {
    aSet.remove(f);
  }
  mManager.flush();
  FeatureSet testSet=(FeatureSet)SWQEFactory.getQueryInterface().getAtomBySGID(FeatureSet.class,aSet.getSGID());
  Assert.assertTrue("String_Node_Str" + testSet.getVersion(),testSet.getVersion() == 4);
  Assert.assertTrue("String_Node_Str",testSet.getPrecedingVersion().getVersion() == 3);
  Assert.assertTrue("String_Node_Str",testSet.getPrecedingVersion().getPrecedingVersion().getVersion() == 2);
  Assert.assertTrue("String_Node_Str",testSet.getPrecedingVersion().getPrecedingVersion().getPrecedingVersion().getVersion() == 1);
  Assert.assertTrue("String_Node_Str" + testSet.getCount(),testSet.getCount() == 0);
  Assert.assertTrue("String_Node_Str" + testSet.getPrecedingVersion().getCount(),testSet.getPrecedingVersion().getCount() == 6);
  Assert.assertTrue("String_Node_Str",testSet.getPrecedingVersion().getPrecedingVersion().getCount() == 3);
  Assert.assertTrue("String_Node_Str",testSet.getPrecedingVersion().getPrecedingVersion().getPrecedingVersion().getCount() == 0);
  Assert.assertTrue("String_Node_Str",aSet.getVersion() == 4);
  Assert.assertTrue("String_Node_Str",aSet.getPrecedingVersion().getVersion() == 3);
  Assert.assertTrue("String_Node_Str",aSet.getPrecedingVersion().getPrecedingVersion().getVersion() == 2);
  Assert.assertTrue("String_Node_Str",aSet.getPrecedingVersion().getPrecedingVersion().getPrecedingVersion().getVersion() == 1);
  Assert.assertTrue("String_Node_Str",aSet.getCount() == 0);
  Assert.assertTrue("String_Node_Str",aSet.getPrecedingVersion().getCount() == 6);
  Assert.assertTrue("String_Node_Str",aSet.getPrecedingVersion().getPrecedingVersion().getCount() == 3);
  Assert.assertTrue("String_Node_Str",aSet.getPrecedingVersion().getPrecedingVersion().getPrecedingVersion().getCount() == 0);
}

Fixed version (ground truth):
@Test public void testVersioningAndFeatureSets(){
  CreateUpdateManager mManager=SWQEFactory.getModelManager();
  FeatureSet aSet=mManager.buildFeatureSet().setReference(mManager.buildReference().setName("String_Node_Str").build()).build();
  mManager.flush();
  aSet.add(mManager.buildFeature().setSeqid("String_Node_Str").setStart(1000000).setStop(1000100).build());
  aSet.add(mManager.buildFeature().setSeqid("String_Node_Str").setStart(1000200).setStop(1000300).build());
  aSet.add(mManager.buildFeature().setSeqid("String_Node_Str").setStart(1000400).setStop(1000500).build());
  mManager.flush();
  aSet.add(mManager.buildFeature().setSeqid("String_Node_Str").setStart(1000600).setStop(1000610).build());
  aSet.add(mManager.buildFeature().setSeqid("String_Node_Str").setStart(1000700).setStop(1000710).build());
  aSet.add(mManager.buildFeature().setSeqid("String_Node_Str").setStart(1000800).setStop(1000810).build());
  mManager.flush();
  List<Feature> killList=new ArrayList<Feature>();
  for (  Feature f : aSet) {
    killList.add(f);
  }
  for (  Feature f : killList) {
    aSet.remove(f);
  }
  mManager.flush();
  FeatureSet testSet=SWQEFactory.getQueryInterface().getAtomBySGID(FeatureSet.class,aSet.getSGID());
  Assert.assertTrue("String_Node_Str" + testSet.getVersion(),testSet.getVersion() == 4);
  Assert.assertTrue("String_Node_Str",testSet.getPrecedingVersion().getVersion() == 3);
  Assert.assertTrue("String_Node_Str",testSet.getPrecedingVersion().getPrecedingVersion().getVersion() == 2);
  Assert.assertTrue("String_Node_Str",testSet.getPrecedingVersion().getPrecedingVersion().getPrecedingVersion().getVersion() == 1);
  Assert.assertTrue("String_Node_Str" + testSet.getCount(),testSet.getCount() == 0);
  Assert.assertTrue("String_Node_Str" + testSet.getPrecedingVersion().getCount(),testSet.getPrecedingVersion().getCount() == 6);
  Assert.assertTrue("String_Node_Str",testSet.getPrecedingVersion().getPrecedingVersion().getCount() == 3);
  Assert.assertTrue("String_Node_Str",testSet.getPrecedingVersion().getPrecedingVersion().getPrecedingVersion().getCount() == 0);
  Assert.assertTrue("String_Node_Str",aSet.getVersion() == 4);
  Assert.assertTrue("String_Node_Str",aSet.getPrecedingVersion().getVersion() == 3);
  Assert.assertTrue("String_Node_Str",aSet.getPrecedingVersion().getPrecedingVersion().getVersion() == 2);
  Assert.assertTrue("String_Node_Str",aSet.getPrecedingVersion().getPrecedingVersion().getPrecedingVersion().getVersion() == 1);
  Assert.assertTrue("String_Node_Str",aSet.getCount() == 0);
  Assert.assertTrue("String_Node_Str",aSet.getPrecedingVersion().getCount() == 6);
  Assert.assertTrue("String_Node_Str",aSet.getPrecedingVersion().getPrecedingVersion().getCount() == 3);
  Assert.assertTrue("String_Node_Str",aSet.getPrecedingVersion().getPrecedingVersion().getPrecedingVersion().getCount() == 0);
}