axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mark Ford (JIRA)" <>
Subject [jira] Created: (AXIS-2053) TypeDesc.getFieldNameForAttribute partial match should account for multiRef attributes
Date Tue, 14 Jun 2005 12:55:47 GMT
TypeDesc.getFieldNameForAttribute partial match should account for multiRef attributes

         Key: AXIS-2053
     Project: Apache Axis
        Type: Bug
  Components: Serialization/Deserialization  
    Versions: 1.2RC2    
 Environment: n/a
    Reporter: Mark Ford

The BeanDeserializer uses TypeDesc.getFieldNameForAttribute(QName) to deserialize attributes
for the bean. The code in TypeDesc looks for an exact match on the attribute QName but failing
that it falls back to find a partial match based on the local name only. Given the following
element, it's possible for the deserializer to match the "id" attribute incorrectly:

<multiRef id="id0" ns1:id="SomeValue">TextValue</multiRef>

Given the above, the BeanDeserializer will feed the first id attribute into TypeDesc.getFieldNameForAttribute(QName)
as new QName("", "id") and it will match against the field name for the namespace qualified
id value. 

The workaround is to not have an attribute named "id", regardless of whether it is namespace
qualified. The fix would be to add "id" as an exception to the partial match since it's a
well known attribute from the SOAP Encoding rules OR to make this partial match routine optional.

This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators:
For more information on JIRA, see:

View raw message