Program: 136220
Project: 136220
Buggy source:
public void check(ChoiceObjectNode choice,boolean validate){
  assertTrue(choice instanceof ChoiceObjectNode);
  assertTrue(choice.getTLModelObject() instanceof TLChoiceObject);
  assertNotNull(choice.getTLModelObject().getListeners());
  TLChoiceObject tlChoice=(TLChoiceObject)choice.getTLModelObject();
  if (tlChoice.getOwningLibrary() != null)   Assert.assertNotNull(choice.getLibrary());
  String s=tlChoice.getName();
  assertNotNull(choice.getSharedFacet());
  s=((FacetNode)choice.getSharedFacet()).getName();
  s=((FacetNode)choice.getSharedFacet()).getLabel();
  List<PropertyOwnerInterface> choices=choice.getChoiceFacets();
  for (  PropertyOwnerInterface poi : choice.getChoiceFacets()) {
    assertTrue(poi instanceof FacetNode);
    FacetNode f=(FacetNode)poi;
    String name=f.getName();
    assertFalse(name.isEmpty());
    String label=f.getLabel();
    assertFalse(f.getLabel().isEmpty());
    assertTrue(((Node)poi).getParent() == choice);
  }
  boolean hasBaseClass=choice.getExtensionBase() != null;
  if (hasBaseClass) {
    Node baseClass=choice.getExtensionBase();
    if (choice.getName().equals("String_Node_Str")) {
      for (      Node n : choice.getChildren())       if (n instanceof FacetNode) {
        assertTrue(((Node)n).getParent() != null);
        List<TLAttribute> tlAttrs=PropertyCodegenUtils.getInheritedFacetAttributes((TLFacet)n.getTLModelObject());
        List<Node> inheritedList=n.getInheritedChildren();
        if (inheritedList.isEmpty()) {
          List<Node> x=n.getInheritedChildren();
        }
      }
    }
    assertNotNull(baseClass);
  }
  for (  Node n : choice.getChildren()) {
    ml.check(n,validate);
    assertTrue(!(n instanceof VersionNode));
    if (!OTM16Upgrade.otm16Enabled)     assertTrue("String_Node_Str",!(n instanceof ContributedFacetNode));
  }
  assertNotNull(choice.getAliases());
}

Fixed version (ground truth):
public void check(ChoiceObjectNode choice,boolean validate){
  assertTrue(choice instanceof ChoiceObjectNode);
  assertTrue(choice.getTLModelObject() instanceof TLChoiceObject);
  assertNotNull(choice.getTLModelObject().getListeners());
  TLChoiceObject tlChoice=(TLChoiceObject)choice.getTLModelObject();
  if (tlChoice.getOwningLibrary() != null)   Assert.assertNotNull(choice.getLibrary());
  String s=tlChoice.getName();
  assertNotNull(choice.getSharedFacet());
  s=((FacetNode)choice.getSharedFacet()).getName();
  s=((FacetNode)choice.getSharedFacet()).getLabel();
  List<PropertyOwnerInterface> choices=choice.getChoiceFacets();
  for (  PropertyOwnerInterface poi : choice.getChoiceFacets()) {
    assertTrue(poi instanceof FacetNode);
    FacetNode f=(FacetNode)poi;
    String name=f.getName();
    assertFalse(name.isEmpty());
    String label=f.getLabel();
    assertFalse(f.getLabel().isEmpty());
    if (poi instanceof ContributedFacetNode)     assertTrue(((Node)poi).getParent() == choice);
  }
  boolean hasBaseClass=choice.getExtensionBase() != null;
  if (hasBaseClass) {
    Node baseClass=choice.getExtensionBase();
    if (choice.getName().equals("String_Node_Str")) {
      for (      Node n : choice.getChildren())       if (n instanceof FacetNode) {
        assertTrue(((Node)n).getParent() != null);
        List<TLAttribute> tlAttrs=PropertyCodegenUtils.getInheritedFacetAttributes((TLFacet)n.getTLModelObject());
        List<Node> inheritedList=n.getInheritedChildren();
        if (inheritedList.isEmpty()) {
          List<Node> x=n.getInheritedChildren();
        }
      }
    }
    assertNotNull(baseClass);
  }
  for (  Node n : choice.getChildren()) {
    ml.check(n,validate);
    assertTrue(!(n instanceof VersionNode));
    if (!OTM16Upgrade.otm16Enabled)     assertTrue("String_Node_Str",!(n instanceof ContributedFacetNode));
  }
  assertNotNull(choice.getAliases());
}