Program: 52682
Project: 52682
Buggy source:
private List<StemTransition> handleSpecialRoots(DictionaryItem item){
  String id=item.getId();
  AttributeSet<PhoneticAttribute> originalAttrs=calculateAttributes(item.pronunciation);
  StemTransition original, modified;
  MorphemeState unmodifiedRootState=morphotactics.getRootState(item,originalAttrs);
switch (id) {
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
    original=new StemTransition(item.root,item,originalAttrs,unmodifiedRootState);
  String m=item.root.substring(0,item.root.length() - 1);
modified=new StemTransition(m,item,calculateAttributes(m),unmodifiedRootState);
modified.getPhoneticAttributes().add(PhoneticAttribute.ExpectsConsonant);
modified.getPhoneticAttributes().add(PhoneticAttribute.CannotTerminate);
return Lists.newArrayList(original,modified);
case "String_Node_Str":
case "String_Node_Str":
original=new StemTransition(item.root,item,originalAttrs,unmodifiedRootState);
if (item.lemma.equals("String_Node_Str")) {
modified=new StemTransition("String_Node_Str",item,calculateAttributes("String_Node_Str"),morphotactics.pronPers_Mod_S);
}
 else {
modified=new StemTransition("String_Node_Str",item,calculateAttributes("String_Node_Str"),morphotactics.pronPers_Mod_S);
}
original.getPhoneticAttributes().add(PhoneticAttribute.UnModifiedPronoun);
modified.getPhoneticAttributes().add(PhoneticAttribute.ModifiedPronoun);
return Lists.newArrayList(original,modified);
case "String_Node_Str":
case "String_Node_Str":
original=new StemTransition(item.root,item,originalAttrs,morphotactics.vDeYeRoot_S);
switch (item.lemma) {
case "String_Node_Str":
modified=new StemTransition("String_Node_Str",item,calculateAttributes("String_Node_Str"),morphotactics.vDeYeRoot_S);
break;
default :
modified=new StemTransition("String_Node_Str",item,calculateAttributes("String_Node_Str"),morphotactics.vDeYeRoot_S);
}
return Lists.newArrayList(original,modified);
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
original=new StemTransition(item.root,item,originalAttrs,morphotactics.pronQuant_S);
switch (item.lemma) {
case "String_Node_Str":
modified=new StemTransition("String_Node_Str",item,calculateAttributes("String_Node_Str"),morphotactics.pronQuantModified_S);
break;
case "String_Node_Str":
modified=new StemTransition("String_Node_Str",item,calculateAttributes("String_Node_Str"),morphotactics.pronQuantModified_S);
break;
case "String_Node_Str":
modified=new StemTransition("String_Node_Str",item,calculateAttributes("String_Node_Str"),morphotactics.pronQuantModified_S);
break;
default :
modified=new StemTransition("String_Node_Str",item,calculateAttributes("String_Node_Str"),morphotactics.pronQuantModified_S);
break;
}
original.getPhoneticAttributes().add(PhoneticAttribute.UnModifiedPronoun);
modified.getPhoneticAttributes().add(PhoneticAttribute.ModifiedPronoun);
return Lists.newArrayList(original,modified);
default :
throw new IllegalArgumentException("String_Node_Str" + item);
}
}

Fixed version (ground truth):
private List<StemTransition> handleSpecialRoots(DictionaryItem item){
  String id=item.getId();
  AttributeSet<PhoneticAttribute> originalAttrs=calculateAttributes(item.pronunciation);
  StemTransition original, modified;
  MorphemeState unmodifiedRootState=morphotactics.getRootState(item,originalAttrs);
switch (id) {
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
    original=new StemTransition(item.root,item,originalAttrs,unmodifiedRootState);
  String m=item.root.substring(0,item.root.length() - 1);
modified=new StemTransition(m,item,calculateAttributes(m),unmodifiedRootState);
modified.getPhoneticAttributes().add(PhoneticAttribute.ExpectsConsonant);
modified.getPhoneticAttributes().add(PhoneticAttribute.CannotTerminate);
return Lists.newArrayList(original,modified);
case "String_Node_Str":
case "String_Node_Str":
original=new StemTransition(item.root,item,originalAttrs,unmodifiedRootState);
if (item.lemma.equals("String_Node_Str")) {
modified=new StemTransition("String_Node_Str",item,calculateAttributes("String_Node_Str"),morphotactics.pronPers_Mod_S);
}
 else {
modified=new StemTransition("String_Node_Str",item,calculateAttributes("String_Node_Str"),morphotactics.pronPers_Mod_S);
}
original.getPhoneticAttributes().add(PhoneticAttribute.UnModifiedPronoun);
modified.getPhoneticAttributes().add(PhoneticAttribute.ModifiedPronoun);
return Lists.newArrayList(original,modified);
case "String_Node_Str":
case "String_Node_Str":
original=new StemTransition(item.root,item,originalAttrs,morphotactics.vDeYeRoot_S);
switch (item.lemma) {
case "String_Node_Str":
modified=new StemTransition("String_Node_Str",item,calculateAttributes("String_Node_Str"),morphotactics.vDeYeRoot_S);
break;
default :
modified=new StemTransition("String_Node_Str",item,calculateAttributes("String_Node_Str"),morphotactics.vDeYeRoot_S);
}
return Lists.newArrayList(original,modified);
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
case "String_Node_Str":
original=new StemTransition(item.root,item,originalAttrs,morphotactics.pronQuant_S);
switch (item.lemma) {
case "String_Node_Str":
modified=new StemTransition("String_Node_Str",item,calculateAttributes("String_Node_Str"),morphotactics.pronQuantModified_S);
break;
case "String_Node_Str":
modified=new StemTransition("String_Node_Str",item,calculateAttributes("String_Node_Str"),morphotactics.pronQuantModified_S);
break;
case "String_Node_Str":
modified=new StemTransition("String_Node_Str",item,calculateAttributes("String_Node_Str"),morphotactics.pronQuantModified_S);
break;
default :
modified=new StemTransition("String_Node_Str",item,calculateAttributes("String_Node_Str"),morphotactics.pronQuantModified_S);
break;
}
original.getPhoneticAttributes().add(PhoneticAttribute.UnModifiedPronoun);
modified.getPhoneticAttributes().add(PhoneticAttribute.ModifiedPronoun);
return Lists.newArrayList(original,modified);
default :
throw new IllegalArgumentException("String_Node_Str" + item);
}
}