You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@shindig.apache.org by Paul Lindner <pl...@hi5.com> on 2009/01/15 03:11:51 UTC

xstream 1.3.1?

We fail tests when upgrading from xstream 1.2 to 1.3.1, this is caused  
by NPE here.  Any ideas why?  That xstream code looks pretty twisty...


Tests run: 7, Failures: 0, Errors: 4, Skipped: 0, Time elapsed: 0.09  
sec <<< FAILURE!
testPersonToXml 
(org 
.apache.shindig.social.opensocial.util.BeanXStreamAtomConverterTest)   
Time elapsed: 0.016 sec  <<< ERROR!
java.lang.NullPointerException
         at  
com 
.thoughtworks 
.xstream 
.mapper 
.AttributeMapper.getLocalConverterFromItemType(AttributeMapper.java:72)
         at  
com 
.thoughtworks 
.xstream 
.mapper.AttributeMapper.getConverterFromItemType(AttributeMapper.java: 
94)
         at  
com 
.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter 
$1.visit(AbstractReflectionConverter.java:81)
         at  
com 
.thoughtworks 
.xstream 
.converters 
.reflection 
.PureJavaReflectionProvider 
.visitSerializableFields(PureJavaReflectionProvider.java:129)
         at  
com 
.thoughtworks 
.xstream 
.converters 
.reflection 
.AbstractReflectionConverter 
.doMarshal(AbstractReflectionConverter.java:67)
         at  
com 
.thoughtworks 
.xstream 
.converters 
.reflection 
.AbstractReflectionConverter.marshal(AbstractReflectionConverter.java: 
58)
         at  
com 
.thoughtworks.xstream.core.TreeMarshaller.convert(TreeMarshaller.java: 
86)
         at  
com 
.thoughtworks 
.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:78)
         at  
com 
.thoughtworks 
.xstream 
.converters 
.reflection 
.AbstractReflectionConverter 
.marshallField(AbstractReflectionConverter.java:157)
         at  
com 
.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter 
$2.writeField(AbstractReflectionConverter.java:148)
         at  
com 
.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter 
$2.visit(AbstractReflectionConverter.java:118)
         at  
com 
.thoughtworks 
.xstream 
.converters 
.reflection 
.PureJavaReflectionProvider 
.visitSerializableFields(PureJavaReflectionProvider.java:129)
         at  
com 
.thoughtworks 
.xstream 
.converters 
.reflection 
.AbstractReflectionConverter 
.doMarshal(AbstractReflectionConverter.java:100)
         at  
com 
.thoughtworks 
.xstream 
.converters 
.reflection 
.AbstractReflectionConverter.marshal(AbstractReflectionConverter.java: 
58)
         at  
com 
.thoughtworks.xstream.core.TreeMarshaller.convert(TreeMarshaller.java: 
86)
         at  
com 
.thoughtworks 
.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:78)
         at  
com 
.thoughtworks 
.xstream 
.converters 
.reflection 
.AbstractReflectionConverter 
.marshallField(AbstractReflectionConverter.java:157)
         at  
com 
.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter 
$2.writeField(AbstractReflectionConverter.java:148)
         at  
com 
.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter 
$2.visit(AbstractReflectionConverter.java:112)
         at  
com 
.thoughtworks 
.xstream 
.converters 
.reflection 
.PureJavaReflectionProvider 
.visitSerializableFields(PureJavaReflectionProvider.java:129)
         at  
com 
.thoughtworks 
.xstream 
.converters 
.reflection 
.AbstractReflectionConverter 
.doMarshal(AbstractReflectionConverter.java:100)
         at  
com 
.thoughtworks 
.xstream 
.converters 
.reflection 
.AbstractReflectionConverter.marshal(AbstractReflectionConverter.java: 
58)
         at  
com 
.thoughtworks.xstream.core.TreeMarshaller.convert(TreeMarshaller.java: 
86)
         at  
com 
.thoughtworks 
.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:78)
         at  
com 
.thoughtworks 
.xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:63)
         at  
com.thoughtworks.xstream.core.TreeMarshaller.start(TreeMarshaller.java: 
98)
         at  
com 
.thoughtworks 
.xstream 
.core 
.AbstractTreeMarshallingStrategy 
.marshal(AbstractTreeMarshallingStrategy.java:38)
         at com.thoughtworks.xstream.XStream.marshal(XStream.java:837)
         at com.thoughtworks.xstream.XStream.marshal(XStream.java:826)
         at com.thoughtworks.xstream.XStream.toXML(XStream.java:801)
         at com.thoughtworks.xstream.XStream.toXML(XStream.java:789)
         at  
org 
.apache 
.shindig 
.social 
.core 
.util 
.BeanXStreamAtomConverter 
.convertToString(BeanXStreamAtomConverter.java:66)




Re: xstream 1.3.1?

Posted by Paul Lindner <pl...@hi5.com>.
Actually I just found my way through that thicket and managed to  
figure out where xstream was hitting the NPE.

Now that this is completed I may look into figuring out how to  
simplify things further.  I was able to do a fair amount of cleaning  
along the way.

On Jan 15, 2009, at 2:17 AM, Ian Boston wrote:

> AFAIK, 1.2 and 1.3.1 are not binary compatible, 1.3.1 needs a  
> different configuration mechanism to find its mappers and  
> converters, hence the NPE.
>
> The configuration is all in XStream081Configuration.
>
> I can do the port if you like, although not immediately as my  
> employer has me focused on other things at the moment, was there a  
> reason for the upgrade other than wanting the latest version ? Do  
> you have a timescale you need to meet ?
>
>
> And, yes, all that reflection/configuration is twisty, IMHO at the  
> moment is just on the side of benefit over hindrance, but if no one  
> else can understand it, then thats more hinderance.
>
> Ian
> On 15 Jan 2009, at 02:11, Paul Lindner wrote:
>
>> We fail tests when upgrading from xstream 1.2 to 1.3.1, this is  
>> caused by NPE here.  Any ideas why?  That xstream code looks pretty  
>> twisty...
>>
>>
>> Tests run: 7, Failures: 0, Errors: 4, Skipped: 0, Time elapsed:  
>> 0.09 sec <<< FAILURE!
>> testPersonToXml 
>> (org 
>> .apache 
>> .shindig.social.opensocial.util.BeanXStreamAtomConverterTest)  Time  
>> elapsed: 0.016 sec  <<< ERROR!
>> java.lang.NullPointerException
>>       at  
>> com 
>> .thoughtworks 
>> .xstream 
>> .mapper 
>> .AttributeMapper.getLocalConverterFromItemType(AttributeMapper.java: 
>> 72)
>>       at  
>> com 
>> .thoughtworks 
>> .xstream 
>> .mapper 
>> .AttributeMapper.getConverterFromItemType(AttributeMapper.java:94)
>>       at  
>> com 
>> .thoughtworks 
>> .xstream.converters.reflection.AbstractReflectionConverter 
>> $1.visit(AbstractReflectionConverter.java:81)
>>       at  
>> com 
>> .thoughtworks 
>> .xstream 
>> .converters 
>> .reflection 
>> .PureJavaReflectionProvider 
>> .visitSerializableFields(PureJavaReflectionProvider.java:129)
>>       at  
>> com 
>> .thoughtworks 
>> .xstream 
>> .converters 
>> .reflection 
>> .AbstractReflectionConverter 
>> .doMarshal(AbstractReflectionConverter.java:67)
>>       at  
>> com 
>> .thoughtworks 
>> .xstream 
>> .converters 
>> .reflection 
>> .AbstractReflectionConverter 
>> .marshal(AbstractReflectionConverter.java:58)
>>       at  
>> com 
>> .thoughtworks 
>> .xstream.core.TreeMarshaller.convert(TreeMarshaller.java:86)
>>       at  
>> com 
>> .thoughtworks 
>> .xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:78)
>>       at  
>> com 
>> .thoughtworks 
>> .xstream 
>> .converters 
>> .reflection 
>> .AbstractReflectionConverter 
>> .marshallField(AbstractReflectionConverter.java:157)
>>       at  
>> com 
>> .thoughtworks 
>> .xstream.converters.reflection.AbstractReflectionConverter 
>> $2.writeField(AbstractReflectionConverter.java:148)
>>       at  
>> com 
>> .thoughtworks 
>> .xstream.converters.reflection.AbstractReflectionConverter 
>> $2.visit(AbstractReflectionConverter.java:118)
>>       at  
>> com 
>> .thoughtworks 
>> .xstream 
>> .converters 
>> .reflection 
>> .PureJavaReflectionProvider 
>> .visitSerializableFields(PureJavaReflectionProvider.java:129)
>>       at  
>> com 
>> .thoughtworks 
>> .xstream 
>> .converters 
>> .reflection 
>> .AbstractReflectionConverter 
>> .doMarshal(AbstractReflectionConverter.java:100)
>>       at  
>> com 
>> .thoughtworks 
>> .xstream 
>> .converters 
>> .reflection 
>> .AbstractReflectionConverter 
>> .marshal(AbstractReflectionConverter.java:58)
>>       at  
>> com 
>> .thoughtworks 
>> .xstream.core.TreeMarshaller.convert(TreeMarshaller.java:86)
>>       at  
>> com 
>> .thoughtworks 
>> .xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:78)
>>       at  
>> com 
>> .thoughtworks 
>> .xstream 
>> .converters 
>> .reflection 
>> .AbstractReflectionConverter 
>> .marshallField(AbstractReflectionConverter.java:157)
>>       at  
>> com 
>> .thoughtworks 
>> .xstream.converters.reflection.AbstractReflectionConverter 
>> $2.writeField(AbstractReflectionConverter.java:148)
>>       at  
>> com 
>> .thoughtworks 
>> .xstream.converters.reflection.AbstractReflectionConverter 
>> $2.visit(AbstractReflectionConverter.java:112)
>>       at  
>> com 
>> .thoughtworks 
>> .xstream 
>> .converters 
>> .reflection 
>> .PureJavaReflectionProvider 
>> .visitSerializableFields(PureJavaReflectionProvider.java:129)
>>       at  
>> com 
>> .thoughtworks 
>> .xstream 
>> .converters 
>> .reflection 
>> .AbstractReflectionConverter 
>> .doMarshal(AbstractReflectionConverter.java:100)
>>       at  
>> com 
>> .thoughtworks 
>> .xstream 
>> .converters 
>> .reflection 
>> .AbstractReflectionConverter 
>> .marshal(AbstractReflectionConverter.java:58)
>>       at  
>> com 
>> .thoughtworks 
>> .xstream.core.TreeMarshaller.convert(TreeMarshaller.java:86)
>>       at  
>> com 
>> .thoughtworks 
>> .xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:78)
>>       at  
>> com 
>> .thoughtworks 
>> .xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:63)
>>       at  
>> com 
>> .thoughtworks.xstream.core.TreeMarshaller.start(TreeMarshaller.java: 
>> 98)
>>       at  
>> com 
>> .thoughtworks 
>> .xstream 
>> .core 
>> .AbstractTreeMarshallingStrategy 
>> .marshal(AbstractTreeMarshallingStrategy.java:38)
>>       at com.thoughtworks.xstream.XStream.marshal(XStream.java:837)
>>       at com.thoughtworks.xstream.XStream.marshal(XStream.java:826)
>>       at com.thoughtworks.xstream.XStream.toXML(XStream.java:801)
>>       at com.thoughtworks.xstream.XStream.toXML(XStream.java:789)
>>       at  
>> org 
>> .apache 
>> .shindig 
>> .social 
>> .core 
>> .util 
>> .BeanXStreamAtomConverter 
>> .convertToString(BeanXStreamAtomConverter.java:66)
>>
>>
>>
>


Re: xstream 1.3.1?

Posted by Ian Boston <ie...@tfd.co.uk>.
AFAIK, 1.2 and 1.3.1 are not binary compatible, 1.3.1 needs a  
different configuration mechanism to find its mappers and converters,  
hence the NPE.

The configuration is all in XStream081Configuration.

I can do the port if you like, although not immediately as my employer  
has me focused on other things at the moment, was there a reason for  
the upgrade other than wanting the latest version ? Do you have a  
timescale you need to meet ?


And, yes, all that reflection/configuration is twisty, IMHO at the  
moment is just on the side of benefit over hindrance, but if no one  
else can understand it, then thats more hinderance.

Ian
On 15 Jan 2009, at 02:11, Paul Lindner wrote:

> We fail tests when upgrading from xstream 1.2 to 1.3.1, this is  
> caused by NPE here.  Any ideas why?  That xstream code looks pretty  
> twisty...
>
>
> Tests run: 7, Failures: 0, Errors: 4, Skipped: 0, Time elapsed: 0.09  
> sec <<< FAILURE!
> testPersonToXml 
> (org 
> .apache 
> .shindig.social.opensocial.util.BeanXStreamAtomConverterTest)  Time  
> elapsed: 0.016 sec  <<< ERROR!
> java.lang.NullPointerException
>        at  
> com 
> .thoughtworks 
> .xstream 
> .mapper 
> .AttributeMapper.getLocalConverterFromItemType(AttributeMapper.java: 
> 72)
>        at  
> com 
> .thoughtworks 
> .xstream 
> .mapper 
> .AttributeMapper.getConverterFromItemType(AttributeMapper.java:94)
>        at  
> com 
> .thoughtworks 
> .xstream.converters.reflection.AbstractReflectionConverter 
> $1.visit(AbstractReflectionConverter.java:81)
>        at  
> com 
> .thoughtworks 
> .xstream 
> .converters 
> .reflection 
> .PureJavaReflectionProvider 
> .visitSerializableFields(PureJavaReflectionProvider.java:129)
>        at  
> com 
> .thoughtworks 
> .xstream 
> .converters 
> .reflection 
> .AbstractReflectionConverter 
> .doMarshal(AbstractReflectionConverter.java:67)
>        at  
> com 
> .thoughtworks 
> .xstream 
> .converters 
> .reflection 
> .AbstractReflectionConverter 
> .marshal(AbstractReflectionConverter.java:58)
>        at  
> com 
> .thoughtworks 
> .xstream.core.TreeMarshaller.convert(TreeMarshaller.java:86)
>        at  
> com 
> .thoughtworks 
> .xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:78)
>        at  
> com 
> .thoughtworks 
> .xstream 
> .converters 
> .reflection 
> .AbstractReflectionConverter 
> .marshallField(AbstractReflectionConverter.java:157)
>        at  
> com 
> .thoughtworks 
> .xstream.converters.reflection.AbstractReflectionConverter 
> $2.writeField(AbstractReflectionConverter.java:148)
>        at  
> com 
> .thoughtworks 
> .xstream.converters.reflection.AbstractReflectionConverter 
> $2.visit(AbstractReflectionConverter.java:118)
>        at  
> com 
> .thoughtworks 
> .xstream 
> .converters 
> .reflection 
> .PureJavaReflectionProvider 
> .visitSerializableFields(PureJavaReflectionProvider.java:129)
>        at  
> com 
> .thoughtworks 
> .xstream 
> .converters 
> .reflection 
> .AbstractReflectionConverter 
> .doMarshal(AbstractReflectionConverter.java:100)
>        at  
> com 
> .thoughtworks 
> .xstream 
> .converters 
> .reflection 
> .AbstractReflectionConverter 
> .marshal(AbstractReflectionConverter.java:58)
>        at  
> com 
> .thoughtworks 
> .xstream.core.TreeMarshaller.convert(TreeMarshaller.java:86)
>        at  
> com 
> .thoughtworks 
> .xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:78)
>        at  
> com 
> .thoughtworks 
> .xstream 
> .converters 
> .reflection 
> .AbstractReflectionConverter 
> .marshallField(AbstractReflectionConverter.java:157)
>        at  
> com 
> .thoughtworks 
> .xstream.converters.reflection.AbstractReflectionConverter 
> $2.writeField(AbstractReflectionConverter.java:148)
>        at  
> com 
> .thoughtworks 
> .xstream.converters.reflection.AbstractReflectionConverter 
> $2.visit(AbstractReflectionConverter.java:112)
>        at  
> com 
> .thoughtworks 
> .xstream 
> .converters 
> .reflection 
> .PureJavaReflectionProvider 
> .visitSerializableFields(PureJavaReflectionProvider.java:129)
>        at  
> com 
> .thoughtworks 
> .xstream 
> .converters 
> .reflection 
> .AbstractReflectionConverter 
> .doMarshal(AbstractReflectionConverter.java:100)
>        at  
> com 
> .thoughtworks 
> .xstream 
> .converters 
> .reflection 
> .AbstractReflectionConverter 
> .marshal(AbstractReflectionConverter.java:58)
>        at  
> com 
> .thoughtworks 
> .xstream.core.TreeMarshaller.convert(TreeMarshaller.java:86)
>        at  
> com 
> .thoughtworks 
> .xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:78)
>        at  
> com 
> .thoughtworks 
> .xstream.core.TreeMarshaller.convertAnother(TreeMarshaller.java:63)
>        at  
> com 
> .thoughtworks.xstream.core.TreeMarshaller.start(TreeMarshaller.java: 
> 98)
>        at  
> com 
> .thoughtworks 
> .xstream 
> .core 
> .AbstractTreeMarshallingStrategy 
> .marshal(AbstractTreeMarshallingStrategy.java:38)
>        at com.thoughtworks.xstream.XStream.marshal(XStream.java:837)
>        at com.thoughtworks.xstream.XStream.marshal(XStream.java:826)
>        at com.thoughtworks.xstream.XStream.toXML(XStream.java:801)
>        at com.thoughtworks.xstream.XStream.toXML(XStream.java:789)
>        at  
> org 
> .apache 
> .shindig 
> .social 
> .core 
> .util 
> .BeanXStreamAtomConverter 
> .convertToString(BeanXStreamAtomConverter.java:66)
>
>
>