Program: 12512
Project: 12512
Buggy source:
/** 
 * @throws SBOLValidationException an SBOL validation rule violation occurred in either of the following methods:<ul> <li> {@link URIcompliance#isTopLevelURIformCompliant(URI)}, or</li> <li>  {@link URIcompliance#isChildURIcompliant(Identified,Identified)}.</li> </ul>
 */
@Override void checkDescendantsURIcompliance() throws SBOLValidationException {
  isTopLevelURIformCompliant(this.getIdentity());
  if (!this.getSequenceConstraints().isEmpty()) {
    for (    SequenceConstraint sequenceConstraint : this.getSequenceConstraints()) {
      try {
        isChildURIcompliant(this,sequenceConstraint);
      }
 catch (      SBOLValidationException e) {
        throw new SBOLValidationException(e.getRule(),sequenceConstraint);
      }
    }
  }
  if (!this.getComponents().isEmpty()) {
    for (    Component component : this.getComponents()) {
      try {
        isChildURIcompliant(this,component);
      }
 catch (      SBOLValidationException e) {
        throw new SBOLValidationException(e.getRule(),component);
      }
      if (!component.getMapsTos().isEmpty()) {
        for (        MapsTo mapsTo : component.getMapsTos()) {
          try {
            isChildURIcompliant(component,mapsTo);
          }
 catch (          SBOLValidationException e) {
            throw new SBOLValidationException(e.getRule(),mapsTo);
          }
        }
      }
    }
  }
  if (!this.getSequenceAnnotations().isEmpty()) {
    for (    SequenceAnnotation sequenceAnnotation : this.getSequenceAnnotations()) {
      try {
        isChildURIcompliant(this,sequenceAnnotation);
      }
 catch (      SBOLValidationException e) {
        throw new SBOLValidationException(e.getRule(),sequenceAnnotation);
      }
      Set<Location> locations=sequenceAnnotation.getLocations();
      for (      Location location : locations) {
        if (location instanceof Range) {
          try {
            isChildURIcompliant(sequenceAnnotation,location);
          }
 catch (          SBOLValidationException e) {
            throw new SBOLValidationException(e.getRule(),location);
          }
        }
        if (location instanceof Cut) {
          try {
            isChildURIcompliant(sequenceAnnotation,location);
          }
 catch (          SBOLValidationException e) {
            throw new SBOLValidationException(e.getRule(),location);
          }
        }
        if (location instanceof GenericLocation) {
          try {
            isChildURIcompliant(sequenceAnnotation,location);
          }
 catch (          SBOLValidationException e) {
            throw new SBOLValidationException(e.getRule(),location);
          }
        }
      }
    }
  }
}

Fixed version (ground truth):
/** 
 * @throws SBOLValidationException an SBOL validation rule violation occurred in either of the following methods:<ul> <li> {@link URIcompliance#isTopLevelURIformCompliant(URI)}, or</li> <li>  {@link URIcompliance#isChildURIcompliant(Identified,Identified)}.</li> </ul>
 */
@Override void checkDescendantsURIcompliance() throws SBOLValidationException {
  if (!this.getSequenceConstraints().isEmpty()) {
    for (    SequenceConstraint sequenceConstraint : this.getSequenceConstraints()) {
      try {
        isChildURIcompliant(this,sequenceConstraint);
      }
 catch (      SBOLValidationException e) {
        throw new SBOLValidationException(e.getRule(),sequenceConstraint);
      }
    }
  }
  if (!this.getComponents().isEmpty()) {
    for (    Component component : this.getComponents()) {
      try {
        isChildURIcompliant(this,component);
      }
 catch (      SBOLValidationException e) {
        throw new SBOLValidationException(e.getRule(),component);
      }
      if (!component.getMapsTos().isEmpty()) {
        for (        MapsTo mapsTo : component.getMapsTos()) {
          try {
            isChildURIcompliant(component,mapsTo);
          }
 catch (          SBOLValidationException e) {
            throw new SBOLValidationException(e.getRule(),mapsTo);
          }
        }
      }
    }
  }
  if (!this.getSequenceAnnotations().isEmpty()) {
    for (    SequenceAnnotation sequenceAnnotation : this.getSequenceAnnotations()) {
      try {
        isChildURIcompliant(this,sequenceAnnotation);
      }
 catch (      SBOLValidationException e) {
        throw new SBOLValidationException(e.getRule(),sequenceAnnotation);
      }
      Set<Location> locations=sequenceAnnotation.getLocations();
      for (      Location location : locations) {
        if (location instanceof Range) {
          try {
            isChildURIcompliant(sequenceAnnotation,location);
          }
 catch (          SBOLValidationException e) {
            throw new SBOLValidationException(e.getRule(),location);
          }
        }
        if (location instanceof Cut) {
          try {
            isChildURIcompliant(sequenceAnnotation,location);
          }
 catch (          SBOLValidationException e) {
            throw new SBOLValidationException(e.getRule(),location);
          }
        }
        if (location instanceof GenericLocation) {
          try {
            isChildURIcompliant(sequenceAnnotation,location);
          }
 catch (          SBOLValidationException e) {
            throw new SBOLValidationException(e.getRule(),location);
          }
        }
      }
    }
  }
}