[Simple-support] NullPointerException when attempting to serialize multiply nested generic maps
Brought to you by:
niallg
|
From: Stanislaw O. <sta...@ca...> - 2009-02-13 13:56:51
|
Hello,
I thought I'd let you know that an attempt to serialize an object of class
like this:
@Root
private static class ToSerialize
{
@ElementMap
public Map<String, Map<String, String>> map;
}
results (v2.0.2) in a NullPointerException:
Exception in thread "main" java.lang.NullPointerException
at org.simpleframework.xml.core.Support.isPrimitive(Support.java:268)
at org.simpleframework.xml.core.Source.isPrimitive(Source.java:167)
at org.simpleframework.xml.core.Entry.getValue(Entry.java:191)
at
org.simpleframework.xml.core.CompositeMap.<init>(CompositeMap.java:96)
at
org.simpleframework.xml.core.ElementMapLabel.getConverter(ElementMapLabel.java:121)
at
org.simpleframework.xml.core.CacheLabel.getConverter(CacheLabel.java:162)
at
org.simpleframework.xml.core.Composite.writeElement(Composite.java:986)
at
org.simpleframework.xml.core.Composite.writeElements(Composite.java:881)
at org.simpleframework.xml.core.Composite.write(Composite.java:787)
at org.simpleframework.xml.core.Composite.write(Composite.java:763)
at org.simpleframework.xml.core.Traverser.write(Traverser.java:217)
at org.simpleframework.xml.core.Traverser.write(Traverser.java:190)
at org.simpleframework.xml.core.Traverser.write(Traverser.java:168)
at org.simpleframework.xml.core.Persister.write(Persister.java:921)
at org.simpleframework.xml.core.Persister.write(Persister.java:903)
at org.simpleframework.xml.core.Persister.write(Persister.java:884)
at org.simpleframework.xml.core.Persister.write(Persister.java:1000)
at org.simpleframework.xml.core.Persister.write(Persister.java:982)
at org.simpleframework.xml.core.Persister.write(Persister.java:963)
I'm not sure -- is this a bug or some design decision/limitation related to
generics? I'm asking more out of curiosity because I'm happy with a
workaround based on creating a wrapper class that contains a field
corresponding to the "inner" map of the problematic case.
Cheers,
Staszek
|