Marco --

It looks like this is already fixed in the latest developer release
XalanJ 2.2.D6.  Perhaps you could download it and give it a try!

Gary

Marco Hunsicker wrote:
> 
> Hi,
> 
> I've had problems storing a 'javax.xml.transform.Templates' object
> (i.e. an 'org.apache.xalan.templates.StylesheetRoot') out in my
> database. Serialization doesn't work as expected, at least for me (W2K,
> JDK 1.3, 1.3.1, 1.4b, Xerces 1.4, Xalan 2.1).
> 
> Serializing a stylesheet, storing it, reconstructing the template and
> then performing a transformation results in a rather lengthly stack
> trace.
> 
> I've tracked the error down to
> 'org.apache.xpath.axes.UnionPathIterator'. Throws a
> 'java.lang.NullPointerException' at line 228. Seems to me that the
> object pool (m_pool) is not re-initialized during deserialization.
> 
> I am sure that during the deserialization of an object no constructors
> are called. Static fields or static initializers are initialized. But
> could it be that normal fields are not automatically initialized during
> deserialization?
> 
> Because I need in my app a working serialization support, I've added
> the apprioate deserialization function (see below) to
> 'UnionPathIterator.java'. Making the member field static would achieve
> the same result, but may produce side effects. Feel free to test.
> 
> -----code snippet -------------------
> 
>     private void readObject(ObjectInputStream in)
>         throws IOException, ClassNotFoundException
>     {
>         in.defaultReadObject();
> 
>         // Make sure pool is initialized
>         m_pool = new ObjectPool(this.getClass());
>     }
> 
> -----code snippet -------------------
> 
> I've attached a class to test the behaviour I've just described. Unzip
> all three classes in a directory, add your parser and processor to the
> classpath. Executing 'java SerializationTest' should produce the stack
> dump. If not, feel free to blame me!
> 
> Cheers,
> 
> Marco
> 
>   ------------------------------------------------------------------------
>                             Name: serializationtest.zip
>    serializationtest.zip    Type: Zip Compressed Data (application/x-zip-compressed)
>                         Encoding: base64

Reply via email to