Program: 68825
Project: 68825
Buggy source:
public void processChild(XPathFragment xPathFragment,UnmarshalRecord unmarshalRecord,Attributes atts,XMLDescriptor xmlDescriptor) throws SAXException {
  if (xmlDescriptor.hasInheritance()) {
    unmarshalRecord.setAttributes(atts);
    Class classValue=xmlDescriptor.getInheritancePolicy().classFromRow(unmarshalRecord,(org.eclipse.persistence.internal.sessions.AbstractSession)unmarshalRecord.getSession());
    if (classValue == null) {
      QName leafElementType=unmarshalRecord.getLeafElementType();
      if (leafElementType != null) {
        Object indicator=xmlDescriptor.getInheritancePolicy().getClassIndicatorMapping().get(leafElementType);
        if (indicator == null) {
          throw DescriptorException.missingClassForIndicatorFieldValue(leafElementType,xmlDescriptor.getInheritancePolicy().getDescriptor());
        }
        classValue=(Class)indicator;
      }
    }
    if (classValue != null) {
      xmlDescriptor=(XMLDescriptor)unmarshalRecord.getSession().getDescriptor(classValue);
    }
 else {
      if (Modifier.isAbstract(xmlDescriptor.getJavaClass().getModifiers())) {
        throw DescriptorException.missingClassIndicatorField(unmarshalRecord,xmlDescriptor.getInheritancePolicy().getDescriptor());
      }
    }
  }
  TreeObjectBuilder targetObjectBuilder=(TreeObjectBuilder)xmlDescriptor.getObjectBuilder();
  unmarshalRecord.setChildRecord((UnmarshalRecord)targetObjectBuilder.createRecord());
  unmarshalRecord.getChildRecord().setUnmarshaller(unmarshalRecord.getUnmarshaller());
  unmarshalRecord.getChildRecord().startDocument();
  unmarshalRecord.getChildRecord().startElement(xPathFragment.getNamespaceURI(),xPathFragment.getLocalName(),xPathFragment.getShortName(),atts);
  unmarshalRecord.getXMLReader().setContentHandler(unmarshalRecord.getChildRecord());
  try {
    unmarshalRecord.getXMLReader().setProperty("String_Node_Str",unmarshalRecord.getChildRecord());
  }
 catch (  SAXNotRecognizedException ex) {
  }
catch (  SAXNotSupportedException ex) {
  }
  unmarshalRecord.getChildRecord().setXMLReader(unmarshalRecord.getXMLReader());
}

Fixed version (ground truth):
public void processChild(XPathFragment xPathFragment,UnmarshalRecord unmarshalRecord,Attributes atts,XMLDescriptor xmlDescriptor) throws SAXException {
  if (xmlDescriptor.hasInheritance()) {
    unmarshalRecord.setAttributes(atts);
    Class classValue=xmlDescriptor.getInheritancePolicy().classFromRow(unmarshalRecord,(org.eclipse.persistence.internal.sessions.AbstractSession)unmarshalRecord.getSession());
    if (classValue == null) {
      QName leafElementType=unmarshalRecord.getLeafElementType();
      if (leafElementType != null) {
        Object indicator=xmlDescriptor.getInheritancePolicy().getClassIndicatorMapping().get(leafElementType);
        if (indicator == null) {
          throw DescriptorException.missingClassForIndicatorFieldValue(leafElementType,xmlDescriptor.getInheritancePolicy().getDescriptor());
        }
        classValue=(Class)indicator;
      }
    }
    if (classValue != null) {
      xmlDescriptor=(XMLDescriptor)unmarshalRecord.getSession().getDescriptor(classValue);
    }
 else {
      if (Modifier.isAbstract(xmlDescriptor.getJavaClass().getModifiers())) {
        throw DescriptorException.missingClassIndicatorField(unmarshalRecord,xmlDescriptor.getInheritancePolicy().getDescriptor());
      }
    }
  }
  TreeObjectBuilder targetObjectBuilder=(TreeObjectBuilder)xmlDescriptor.getObjectBuilder();
  unmarshalRecord.setChildRecord((UnmarshalRecord)targetObjectBuilder.createRecord());
  unmarshalRecord.getChildRecord().setAttributes(atts);
  unmarshalRecord.getChildRecord().setUnmarshaller(unmarshalRecord.getUnmarshaller());
  unmarshalRecord.getChildRecord().startDocument();
  unmarshalRecord.getChildRecord().startElement(xPathFragment.getNamespaceURI(),xPathFragment.getLocalName(),xPathFragment.getShortName(),atts);
  unmarshalRecord.getXMLReader().setContentHandler(unmarshalRecord.getChildRecord());
  try {
    unmarshalRecord.getXMLReader().setProperty("String_Node_Str",unmarshalRecord.getChildRecord());
  }
 catch (  SAXNotRecognizedException ex) {
  }
catch (  SAXNotSupportedException ex) {
  }
  unmarshalRecord.getChildRecord().setXMLReader(unmarshalRecord.getXMLReader());
}