Timur KHALMUKHAMEDOV created XSTR-688:
-----------------------------------------

             Summary: When unmarshal XML, xSream pass incorrect "definedIn" in 
Mapper.shouldSerializeMember
                 Key: XSTR-688
                 URL: https://jira.codehaus.org/browse/XSTR-688
             Project: XStream
          Issue Type: Bug
          Components: Converters
    Affects Versions: 1.4.2
            Reporter: Timur KHALMUKHAMEDOV
            Assignee: Joerg Schaible
            Priority: Blocker
         Attachments: XStreamShouldSerializeMemberTest.java

When unmarshaling an XML the XStream verify if the field must be deserialized 
using *Mapper.+shouldSerializeMember+*_(java.lang.Class definedIn, 
java.lang.String fieldName)_

The verification done by 
{color:blue}*com.thoughtworks.xstream.converters.reflection.+AbstractReflectionConverter+*.+doUnmarshal+_(final
 Object result, final HierarchicalStreamReader reader, final 
UnmarshallingContext context)_{color}
The problem is that the class passed in *+shouldSerializeMember+* as 
"definedIn" parameter is incorrect.

+Example+:
{code:java}
class A{String a;}
class B extends A{String b;}
{code}
(!) when unmarshaling the instance of the +class B+ and verifying field 
"+String a+" , xStream pass into shouldSerializeMember the +class B+ as 
"*definedIn*" instead of +class A+.

---
The problem is in the class 
*com.thoughtworks.xstream.converters.reflection.+AbstractReflectionConverter+* 
at line 302.
I suggest to you to change this line:
bq. "|| !mapper.shouldSerializeMember({color:red}classDefiningField != null ? 
classDefiningField : result.getClass(){color}, fieldName)) {"
by 
bq. "|| 
!mapper.shouldSerializeMember({color:red}field.getDeclaringClass(){color}, 
fieldName)) {"

Failing unit test: 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://jira.codehaus.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

<hr/>
<p>
To unsubscribe from this list please visit:
</p>
<p>
    <a 
href="http://xircles.codehaus.org/manage_email";>http://xircles.codehaus.org/manage_email</a>
</p>

Reply via email to