Program: 66269
Project: 66269
Buggy source:
private void processPropertyAnnotations(TypeInfo info,JavaClass cls,JavaHasAnnotations javaHasAnnotations,Property property){
  if (helper.isAnnotationPresent(javaHasAnnotations,XmlMixed.class)) {
    info.setMixed(true);
    property.setMixedContent(true);
  }
  if (helper.isAnnotationPresent(javaHasAnnotations,XmlContainerProperty.class)) {
    XmlContainerProperty container=(XmlContainerProperty)helper.getAnnotation(javaHasAnnotations,XmlContainerProperty.class);
    property.setInverseReferencePropertyName(container.value());
    property.setInverseReferencePropertyGetMethodName(container.getMethodName());
    property.setInverseReferencePropertySetMethodName(container.setMethodName());
  }
 else   if (helper.isAnnotationPresent(javaHasAnnotations,XmlInverseReference.class)) {
    XmlInverseReference inverseReference=(XmlInverseReference)helper.getAnnotation(javaHasAnnotations,XmlInverseReference.class);
    property.setInverseReferencePropertyName(inverseReference.mappedBy());
    TypeInfo targetInfo=this.getTypeInfo().get(property.getActualType().getName());
    if (targetInfo != null && targetInfo.getXmlAccessType() == XmlAccessType.PROPERTY) {
      String propName=property.getPropertyName();
      propName=Character.toUpperCase(propName.charAt(0)) + propName.substring(1);
      property.setInverseReferencePropertyGetMethodName("String_Node_Str" + propName);
      property.setInverseReferencePropertySetMethodName("String_Node_Str" + propName);
    }
    property.setInverseReference(true);
  }
  processXmlJavaTypeAdapter(property,info,cls);
  processXmlElement(property,info);
  JavaClass ptype=property.getActualType();
  if (helper.isAnnotationPresent(property.getElement(),XmlAttachmentRef.class) && areEquals(ptype,JAVAX_ACTIVATION_DATAHANDLER)) {
    property.setIsSwaAttachmentRef(true);
    property.setSchemaType(XMLConstants.SWA_REF_QNAME);
  }
 else   if (areEquals(ptype,JAVAX_ACTIVATION_DATAHANDLER) || areEquals(ptype,byte[].class) || areEquals(ptype,Byte[].class)|| areEquals(ptype,Image.class)|| areEquals(ptype,Source.class)|| areEquals(ptype,JAVAX_MAIL_INTERNET_MIMEMULTIPART)) {
    property.setIsMtomAttachment(true);
    property.setSchemaType(XMLConstants.BASE_64_BINARY_QNAME);
  }
  if (helper.isAnnotationPresent(property.getElement(),XmlMimeType.class)) {
    property.setMimeType(((XmlMimeType)helper.getAnnotation(property.getElement(),XmlMimeType.class)).value());
  }
  if (helper.isAnnotationPresent(property.getElement(),XmlInlineBinaryData.class) || info.isBinaryDataToBeInlined()) {
    property.setisInlineBinaryData(true);
  }
  if (helper.isAnnotationPresent(property.getElement(),XmlSchemaType.class)) {
    XmlSchemaType schemaType=(XmlSchemaType)helper.getAnnotation(property.getElement(),XmlSchemaType.class);
    QName schemaTypeQname=new QName(schemaType.namespace(),schemaType.name());
    property.setSchemaType(schemaTypeQname);
  }
  if (helper.isAnnotationPresent(property.getElement(),XmlAttribute.class)) {
    property.setIsAttribute(true);
    property.setIsRequired(((XmlAttribute)helper.getAnnotation(property.getElement(),XmlAttribute.class)).required());
  }
  if (helper.isAnnotationPresent(property.getElement(),XmlAnyAttribute.class)) {
    if (info.isSetAnyAttributePropertyName()) {
      throw org.eclipse.persistence.exceptions.JAXBException.multipleAnyAttributeMapping(cls.getName());
    }
    if (!property.getType().getName().equals("String_Node_Str")) {
      throw org.eclipse.persistence.exceptions.JAXBException.anyAttributeOnNonMap(property.getPropertyName());
    }
    property.setIsAnyAttribute(true);
    info.setAnyAttributePropertyName(property.getPropertyName());
  }
  if (helper.isAnnotationPresent(property.getElement(),XmlElementWrapper.class)) {
    XmlElementWrapper wrapper=(XmlElementWrapper)helper.getAnnotation(property.getElement(),XmlElementWrapper.class);
    org.eclipse.persistence.jaxb.xmlmodel.XmlElementWrapper xmlEltWrapper=new org.eclipse.persistence.jaxb.xmlmodel.XmlElementWrapper();
    xmlEltWrapper.setName(wrapper.name());
    xmlEltWrapper.setNamespace(wrapper.namespace());
    xmlEltWrapper.setNillable(wrapper.nillable());
    xmlEltWrapper.setRequired(wrapper.required());
    property.setXmlElementWrapper(xmlEltWrapper);
  }
  if (helper.isAnnotationPresent(property.getElement(),XmlList.class)) {
    if (!isCollectionType(property) && !property.getType().isArray()) {
      throw JAXBException.invalidList(property.getPropertyName());
    }
    property.setIsXmlList(true);
  }
  if (helper.isAnnotationPresent(property.getElement(),XmlValue.class)) {
    property.setIsXmlValue(true);
    info.setXmlValueProperty(property);
  }
  if (helper.isAnnotationPresent(property.getElement(),XmlReadOnly.class)) {
    property.setReadOnly(true);
  }
  if (helper.isAnnotationPresent(property.getElement(),XmlWriteOnly.class)) {
    property.setWriteOnly(true);
  }
  if (helper.isAnnotationPresent(property.getElement(),XmlCDATA.class)) {
    property.setCdata(true);
  }
  if (helper.isAnnotationPresent(property.getElement(),XmlAccessMethods.class)) {
    XmlAccessMethods accessMethods=(XmlAccessMethods)helper.getAnnotation(property.getElement(),XmlAccessMethods.class);
    if (!(accessMethods.getMethodName().equals("String_Node_Str"))) {
      property.setGetMethodName(accessMethods.getMethodName());
    }
    if (!(accessMethods.setMethodName().equals("String_Node_Str"))) {
      property.setSetMethodName(accessMethods.setMethodName());
    }
    if (!(property.isMethodProperty())) {
      property.setMethodProperty(true);
    }
  }
  processXmlNullPolicy(property);
}

Fixed version (ground truth):
private void processPropertyAnnotations(TypeInfo info,JavaClass cls,JavaHasAnnotations javaHasAnnotations,Property property){
  if (helper.isAnnotationPresent(javaHasAnnotations,XmlMixed.class)) {
    info.setMixed(true);
    property.setMixedContent(true);
  }
  if (helper.isAnnotationPresent(javaHasAnnotations,XmlContainerProperty.class)) {
    XmlContainerProperty container=(XmlContainerProperty)helper.getAnnotation(javaHasAnnotations,XmlContainerProperty.class);
    property.setInverseReferencePropertyName(container.value());
    property.setInverseReferencePropertyGetMethodName(container.getMethodName());
    property.setInverseReferencePropertySetMethodName(container.setMethodName());
  }
 else   if (helper.isAnnotationPresent(javaHasAnnotations,XmlInverseReference.class)) {
    XmlInverseReference inverseReference=(XmlInverseReference)helper.getAnnotation(javaHasAnnotations,XmlInverseReference.class);
    property.setInverseReferencePropertyName(inverseReference.mappedBy());
    TypeInfo targetInfo=this.getTypeInfo().get(property.getActualType().getName());
    if (targetInfo != null && targetInfo.getXmlAccessType() == XmlAccessType.PROPERTY) {
      String propName=property.getPropertyName();
      propName=Character.toUpperCase(propName.charAt(0)) + propName.substring(1);
      property.setInverseReferencePropertyGetMethodName("String_Node_Str" + propName);
      property.setInverseReferencePropertySetMethodName("String_Node_Str" + propName);
    }
    property.setInverseReference(true);
  }
  processXmlJavaTypeAdapter(property,info,cls);
  processXmlElement(property,info);
  JavaClass ptype=property.getActualType();
  if (helper.isAnnotationPresent(property.getElement(),XmlAttachmentRef.class) && areEquals(ptype,JAVAX_ACTIVATION_DATAHANDLER)) {
    property.setIsSwaAttachmentRef(true);
    property.setSchemaType(XMLConstants.SWA_REF_QNAME);
  }
 else   if (areEquals(ptype,JAVAX_ACTIVATION_DATAHANDLER) || areEquals(ptype,byte[].class) || areEquals(ptype,Byte[].class)|| areEquals(ptype,Image.class)|| areEquals(ptype,Source.class)|| areEquals(ptype,JAVAX_MAIL_INTERNET_MIMEMULTIPART)) {
    property.setIsMtomAttachment(true);
    property.setSchemaType(XMLConstants.BASE_64_BINARY_QNAME);
  }
  if (helper.isAnnotationPresent(property.getElement(),XmlMimeType.class)) {
    property.setMimeType(((XmlMimeType)helper.getAnnotation(property.getElement(),XmlMimeType.class)).value());
  }
  if (helper.isAnnotationPresent(property.getElement(),XmlInlineBinaryData.class) || info.isBinaryDataToBeInlined()) {
    property.setisInlineBinaryData(true);
  }
  if (helper.isAnnotationPresent(property.getElement(),XmlSchemaType.class)) {
    XmlSchemaType schemaType=(XmlSchemaType)helper.getAnnotation(property.getElement(),XmlSchemaType.class);
    QName schemaTypeQname=new QName(schemaType.namespace(),schemaType.name());
    property.setSchemaType(schemaTypeQname);
  }
  if (helper.isAnnotationPresent(property.getElement(),XmlAttribute.class)) {
    property.setIsAttribute(true);
    property.setIsRequired(((XmlAttribute)helper.getAnnotation(property.getElement(),XmlAttribute.class)).required());
  }
  if (helper.isAnnotationPresent(property.getElement(),XmlAnyAttribute.class)) {
    if (info.isSetAnyAttributePropertyName()) {
      throw org.eclipse.persistence.exceptions.JAXBException.multipleAnyAttributeMapping(cls.getName());
    }
    if (!property.getType().getName().equals("String_Node_Str")) {
      throw org.eclipse.persistence.exceptions.JAXBException.anyAttributeOnNonMap(property.getPropertyName());
    }
    property.setIsAnyAttribute(true);
    info.setAnyAttributePropertyName(property.getPropertyName());
  }
  if (helper.isAnnotationPresent(property.getElement(),XmlElementWrapper.class)) {
    XmlElementWrapper wrapper=(XmlElementWrapper)helper.getAnnotation(property.getElement(),XmlElementWrapper.class);
    org.eclipse.persistence.jaxb.xmlmodel.XmlElementWrapper xmlEltWrapper=new org.eclipse.persistence.jaxb.xmlmodel.XmlElementWrapper();
    xmlEltWrapper.setName(wrapper.name());
    xmlEltWrapper.setNamespace(wrapper.namespace());
    xmlEltWrapper.setNillable(wrapper.nillable());
    xmlEltWrapper.setRequired(wrapper.required());
    property.setXmlElementWrapper(xmlEltWrapper);
  }
  if (helper.isAnnotationPresent(property.getElement(),XmlList.class)) {
    if (!isCollectionType(property) && !property.getType().isArray()) {
      throw JAXBException.invalidList(property.getPropertyName());
    }
    property.setIsXmlList(true);
  }
  if (helper.isAnnotationPresent(property.getElement(),XmlValue.class)) {
    property.setIsXmlValue(true);
    info.setXmlValueProperty(property);
  }
  if (helper.isAnnotationPresent(property.getElement(),XmlReadOnly.class)) {
    property.setReadOnly(true);
  }
  if (helper.isAnnotationPresent(property.getElement(),XmlWriteOnly.class)) {
    property.setWriteOnly(true);
  }
  if (helper.isAnnotationPresent(property.getElement(),XmlCDATA.class)) {
    property.setCdata(true);
  }
  if (helper.isAnnotationPresent(property.getElement(),XmlAccessMethods.class)) {
    XmlAccessMethods accessMethods=(XmlAccessMethods)helper.getAnnotation(property.getElement(),XmlAccessMethods.class);
    if (!(accessMethods.getMethodName().equals("String_Node_Str"))) {
      property.setGetMethodName(accessMethods.getMethodName());
    }
    if (!(accessMethods.setMethodName().equals("String_Node_Str"))) {
      property.setSetMethodName(accessMethods.setMethodName());
    }
    if (!(property.isMethodProperty())) {
      property.setMethodProperty(true);
    }
  }
  if (helper.isAnnotationPresent(property.getElement(),XmlProperties.class)) {
    XmlProperties xmlProperties=(XmlProperties)helper.getAnnotation(property.getElement(),XmlProperties.class);
    Map<Object,Object> propertiesMap=createUserPropertiesMap(xmlProperties.value());
    property.setUserProperties(propertiesMap);
  }
 else   if (helper.isAnnotationPresent(property.getElement(),XmlProperty.class)) {
    XmlProperty xmlProperty=(XmlProperty)helper.getAnnotation(property.getElement(),XmlProperty.class);
    Map<Object,Object> propertiesMap=createUserPropertiesMap(new XmlProperty[]{xmlProperty});
    property.setUserProperties(propertiesMap);
  }
  processXmlNullPolicy(property);
}