Status: Accepted
Owner: atdi...@gmail.com
Labels: Type-Other Priority-Medium Component-Core

New issue 214 by atdi...@gmail.com: PSwing is not serializeable
http://code.google.com/p/piccolo2d/issues/detail?id=214

Trying to serialize a PSwing, I get the following stacktrace:

Exception in thread "main" java.io.NotSerializableException: java.awt.BasicStroke
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1164)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
        at 
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
        at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)
at edu.umd.cs.piccolo.util.PObjectOutputStream.recordUnconditionallyWritten(PObjectOutputStream.java:168) at edu.umd.cs.piccolo.util.PObjectOutputStream.writeObjectTree(PObjectOutputStream.java:110)

Note that it's b/c the BasicStroke instance on PSwing is not serializeable. This field was once marked transient but in Revision 863 the transient keyword was dropped. It's not obvious why. It may have been to guarantee that it's non-null but perhaps we missed that we were breaking serialization.

We should clarify our serialization requirements and ensure that PSwing and other PNodes are in compliance.

--
Piccolo2D Developers Group: http://groups.google.com/group/piccolo2d-dev?hl=en

Reply via email to