You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@xalan.apache.org by "Sergey S. Kljopov" <kl...@wetellyou.com> on 2000/10/10 17:18:47 UTC

is StylesheetRoot serializable?

Good Day!

Im trying to serialize/deserialize StylesheetRoot:

44.     stSheet = processor.processStylesheet(new
XSLTInputSource("/tmp/page.xsl"));
45.   ByteArrayOutputStream baos = new ByteArrayOutputStream();
46.   ObjectOutputStream oos = new ObjectOutputStream(baos);
47.   oos.writeObject(stSheetSite);
48.
49.   h.put("page", baos);
50.
51.   byte[] buf = h.get("page").toString().getBytes();
52.   ByteArrayInputStream bais = new ByteArrayInputStream(buf);
53.   ObjectInputStream ois = new ObjectInputStream(bais);
54.   stSheetC = (StylesheetRoot)ois.readObject();

This code works some hours before.
Then when i recompile this, i recieve following notifications:

java.io.NotSerializableException:
org.apache.xalan.xpath.xml.StringToStringTable
        at
java.io.ObjectOutputStream.outputObject(ObjectOutputStream.java:845)
        at
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:342)
        at
java.io.ObjectOutputStream.outputClassFields(ObjectOutputStream.java:1567)
        at
java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:453)
        at
org.apache.xalan.xslt.ElemTemplateElement.writeObject(ElemTemplateElement.ja
va:254)
        at java.lang.reflect.Method.invoke(Native Method)
        at
java.io.ObjectOutputStream.invokeObjectWriter(ObjectOutputStream.java:1585)
        at
java.io.ObjectOutputStream.outputObject(ObjectOutputStream.java:907)
        at
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:342)
        at
java.io.ObjectOutputStream.outputClassFields(ObjectOutputStream.java:1567)
        at
java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:453)
        at
java.io.ObjectOutputStream.outputObject(ObjectOutputStream.java:911)
        at
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:342)
        at
java.io.ObjectOutputStream.outputClassFields(ObjectOutputStream.java:1567)
        at
java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:453)
        at org.apache.xalan.xslt.Stylesheet.writeObject(Stylesheet.java:531)
        at java.lang.reflect.Method.invoke(Native Method)
        at
java.io.ObjectOutputStream.invokeObjectWriter(ObjectOutputStream.java:1585)
        at
java.io.ObjectOutputStream.outputObject(ObjectOutputStream.java:907)
        at
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:342)
        at labuda.processor.main(processor.java:47)

What happens? I'm using xalan1.2 & xerces1.3


For interests: at xalan1.1 i'm recieve following:
java.io.InvalidClassException: org.apache.xalan.xpath.XPath; Local class not
compatible: stream classdesc serialVersionUID=7785753160232117098 local
class serialVersionUID=7785753542484206442
        at
java.io.ObjectStreamClass.validateLocalClass(ObjectStreamClass.java:438)
        at java.io.ObjectStreamClass.setClass(ObjectStreamClass.java:482)
        at
java.io.ObjectInputStream.inputClassDescriptor(ObjectInputStream.java:785)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:353)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:232)
        at
java.io.ObjectInputStream.inputClassDescriptor(ObjectInputStream.java:789)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:353)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:232)
        at java.io.ObjectInputStream.inputObject(ObjectInputStream.java:978)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
        at
java.io.ObjectInputStream.inputClassFields(ObjectInputStream.java:1831)
        at
java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:502)
        at org.apache.xalan.xslt.Stylesheet.readObject(Stylesheet.java:517)
        at java.lang.reflect.Method.invoke(Native Method)
        at
java.io.ObjectInputStream.invokeObjectReader(ObjectInputStream.java:1685)
        at
java.io.ObjectInputStream.inputObject(ObjectInputStream.java:1165)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:232)
        at labuda.processor.main(processor.java:54)

Do you have any ideas about this? So can you suggest me how to clone
StylesheetRoot object with faster way than serialize/deserialize it?

WBR, Sergey S. Kljopov

P.S.: I'm not subscribed to this mailing list, so please reply to my e-mail
also.