[jdom-interest] NPE on Serialization

Jason Hunter jhunter at servlets.com
Fri Nov 9 01:32:37 PST 2007


Thanks for the report.  I fixed the bug.  The fix is a little more 
complicated than the patch you proposed since you need to indicate to 
the receiver in readObject() the lack of a namespace and have it handle 
that situation.

-jh-

Jan Kriesten wrote:
> Hi,
> 
> I get the following NPE on serializing JDOM 1.0:
> 
> ---8<---
> 11:17:15.220 ERROR [org.apache.wicket.util.lang.Objects          ] - Error
> serializing object class de.silberlicht.wsl.test.HelloWor
> ld [object=[Page class = de.silberlicht.wsl.test.HelloWorld, id = 3, version = 0]]
> java.lang.NullPointerException
>         at org.jdom.filter.ElementFilter.writeObject(ElementFilter.java:167)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> ---8<---
> 
> In ElementFilter.java:167 there's no check whether or not 'namespace' is
> actually set.
> 
> Changing writeObject() to
> 
> ---8<---
>     private void writeObject(ObjectOutputStream out) throws IOException {
> 
>         out.defaultWriteObject();
> 
>         // We use writeObject() and not writeUTF() to minimize space
>         // This allows for writing pointers to already written strings
>         if( namespace!=null )
>         {
>           out.writeObject(namespace.getPrefix());
>           out.writeObject(namespace.getURI());
>         }
>     }
> ---8<---
> 
> solves the problem. Does this have any side-effects?
> 
> Best regards, --- Jan.
> 
> _______________________________________________
> To control your jdom-interest membership:
> http://www.jdom.org/mailman/options/jdom-interest/youraddr@yourhost.com
> 


More information about the jdom-interest mailing list