Program: 65182
Project: 65182
Buggy source:
/** 
 * Handle xml-inverse-reference.
 * @param xmlInverseReference
 * @param oldProperty
 * @return
 */
private Property processXmlInverseReference(XmlInverseReference xmlInverseReference,Property oldProperty){
  oldProperty.setInverseReference(true);
  oldProperty.setInverseReferencePropertyName(xmlInverseReference.getMappedBy());
  if (xmlInverseReference.getXmlAccessMethods() != null) {
    oldProperty.setInverseReferencePropertyGetMethodName(xmlInverseReference.getXmlAccessMethods().getGetMethod());
    oldProperty.setInverseReferencePropertySetMethodName(xmlInverseReference.getXmlAccessMethods().getSetMethod());
  }
  if (xmlInverseReference.getXmlProperties() != null && xmlInverseReference.getXmlProperties().getXmlProperty().size() > 0) {
    oldProperty.setUserProperties(createUserPropertyMap(xmlInverseReference.getXmlProperties().getXmlProperty()));
  }
  if (!xmlInverseReference.getContainerType().equals(DEFAULT)) {
    setContainerType(oldProperty,xmlInverseReference.getContainerType());
  }
  if (!xmlInverseReference.getType().equals(DEFAULT)) {
    JavaClass pType=jModelInput.getJavaModel().getClass(xmlInverseReference.getType());
    if (aProcessor.isCollectionType(oldProperty.getType())) {
      oldProperty.setGenericType(pType);
    }
 else {
      oldProperty.setType(pType);
    }
    oldProperty.setHasXmlElementType(true);
    if (aProcessor.shouldGenerateTypeInfo(pType) && aProcessor.getTypeInfo().get(pType.getQualifiedName()) == null) {
      aProcessor.buildNewTypeInfo(new JavaClass[]{pType});
    }
  }
  return oldProperty;
}

Fixed version (ground truth):
/** 
 * Handle xml-inverse-reference.
 * @param xmlInverseReference
 * @param oldProperty
 * @return
 */
private Property processXmlInverseReference(XmlInverseReference xmlInverseReference,Property oldProperty,TypeInfo info){
  resetProperty(oldProperty,info);
  oldProperty.setInverseReference(true);
  oldProperty.setInverseReferencePropertyName(xmlInverseReference.getMappedBy());
  if (xmlInverseReference.getXmlAccessMethods() != null) {
    oldProperty.setInverseReferencePropertyGetMethodName(xmlInverseReference.getXmlAccessMethods().getGetMethod());
    oldProperty.setInverseReferencePropertySetMethodName(xmlInverseReference.getXmlAccessMethods().getSetMethod());
  }
  if (xmlInverseReference.getXmlProperties() != null && xmlInverseReference.getXmlProperties().getXmlProperty().size() > 0) {
    oldProperty.setUserProperties(createUserPropertyMap(xmlInverseReference.getXmlProperties().getXmlProperty()));
  }
  if (!xmlInverseReference.getContainerType().equals(DEFAULT)) {
    setContainerType(oldProperty,xmlInverseReference.getContainerType());
  }
  if (!xmlInverseReference.getType().equals(DEFAULT)) {
    JavaClass pType=jModelInput.getJavaModel().getClass(xmlInverseReference.getType());
    if (aProcessor.isCollectionType(oldProperty.getType())) {
      oldProperty.setGenericType(pType);
    }
 else {
      oldProperty.setType(pType);
    }
    oldProperty.setHasXmlElementType(true);
    if (aProcessor.shouldGenerateTypeInfo(pType) && aProcessor.getTypeInfo().get(pType.getQualifiedName()) == null) {
      aProcessor.buildNewTypeInfo(new JavaClass[]{pType});
    }
  }
  return oldProperty;
}