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)