Program: 67058
Project: 67058
Buggy source:
public XMLCompositeObjectMapping generateCompositeObjectMapping(Property property,XMLDescriptor descriptor,NamespaceInfo namespaceInfo,String referenceClassName){
  XMLCompositeObjectMapping mapping=new XMLCompositeObjectMapping();
  mapping.setAttributeName(property.getPropertyName());
  if (property.isMethodProperty()) {
    if (property.getGetMethodName() == null) {
      String paramTypeAsString=property.getType().getName();
      mapping.setAttributeAccessor(new JAXBSetMethodAttributeAccessor(paramTypeAsString,helper.getClassLoader()));
      mapping.setIsReadOnly(true);
      mapping.setSetMethodName(property.getSetMethodName());
    }
 else     if (property.getSetMethodName() == null) {
      mapping.setGetMethodName(property.getGetMethodName());
      mapping.setIsWriteOnly(true);
    }
 else {
      mapping.setSetMethodName(property.getSetMethodName());
      mapping.setGetMethodName(property.getGetMethodName());
    }
  }
  if (property.isNillable()) {
    mapping.getNullPolicy().setNullRepresentedByXsiNil(true);
  }
  mapping.setXPath(getXPathForField(property,namespaceInfo,false).getXPath());
  if (referenceClassName == null) {
    ((XMLField)mapping.getField()).setIsTypedTextField(true);
    ((XMLField)mapping.getField()).setSchemaType(XMLConstants.ANY_TYPE_QNAME);
    String defaultValue=property.getDefaultValue();
    if (null != defaultValue) {
      mapping.setConverter(new DefaultElementConverter(defaultValue));
    }
  }
 else {
    mapping.setReferenceClassName(referenceClassName);
  }
  if (helper.isAnnotationPresent(property.getElement(),XmlContainerProperty.class)) {
    XmlContainerProperty containerProp=(XmlContainerProperty)helper.getAnnotation(property.getElement(),XmlContainerProperty.class);
    String name=containerProp.value();
    mapping.setContainerAttributeName(name);
    if (!containerProp.getMethodName().equals("String_Node_Str") && !containerProp.setMethodName().equals("String_Node_Str")) {
      mapping.setContainerGetMethodName(containerProp.getMethodName());
      mapping.setContainerSetMethodName(containerProp.setMethodName());
    }
  }
  descriptor.addMapping(mapping);
  return mapping;
}

Fixed version (ground truth):
public XMLCompositeObjectMapping generateCompositeObjectMapping(Property property,XMLDescriptor descriptor,NamespaceInfo namespaceInfo,String referenceClassName){
  XMLCompositeObjectMapping mapping=new XMLCompositeObjectMapping();
  mapping.setAttributeName(property.getPropertyName());
  if (property.isMethodProperty()) {
    if (property.getGetMethodName() == null) {
      String paramTypeAsString=property.getType().getName();
      mapping.setAttributeAccessor(new JAXBSetMethodAttributeAccessor(paramTypeAsString,helper.getClassLoader()));
      mapping.setIsReadOnly(true);
      mapping.setSetMethodName(property.getSetMethodName());
    }
 else     if (property.getSetMethodName() == null) {
      mapping.setGetMethodName(property.getGetMethodName());
      mapping.setIsWriteOnly(true);
    }
 else {
      mapping.setSetMethodName(property.getSetMethodName());
      mapping.setGetMethodName(property.getGetMethodName());
    }
  }
  if (property.isNillable()) {
    mapping.getNullPolicy().setNullRepresentedByXsiNil(true);
  }
  mapping.setXPath(getXPathForField(property,namespaceInfo,false).getXPath());
  if (referenceClassName == null) {
    ((XMLField)mapping.getField()).setIsTypedTextField(true);
    ((XMLField)mapping.getField()).setSchemaType(XMLConstants.ANY_TYPE_QNAME);
    String defaultValue=property.getDefaultValue();
    if (null != defaultValue) {
      mapping.setConverter(new DefaultElementConverter(defaultValue));
    }
  }
 else {
    mapping.setReferenceClassName(referenceClassName);
  }
  if (helper.isAnnotationPresent(property.getElement(),XmlContainerProperty.class)) {
    XmlContainerProperty containerProp=(XmlContainerProperty)helper.getAnnotation(property.getElement(),XmlContainerProperty.class);
    String name=containerProp.value();
    mapping.setContainerAttributeName(name);
    if (!containerProp.getMethodName().equals("String_Node_Str") && !containerProp.setMethodName().equals("String_Node_Str")) {
      mapping.setContainerGetMethodName(containerProp.getMethodName());
      mapping.setContainerSetMethodName(containerProp.setMethodName());
    }
  }
  if (property.isRequired()) {
    ((XMLField)mapping.getField()).setRequired(true);
  }
  descriptor.addMapping(mapping);
  return mapping;
}