[
https://issues.apache.org/jira/browse/WICKET-819?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Matej Knopp resolved WICKET-819.
--------------------------------
Resolution: Fixed
Use a HashMap instead.
> DefaultButtonImageResource's fontAttributes field isn't serializable
> --------------------------------------------------------------------
>
> Key: WICKET-819
> URL: https://issues.apache.org/jira/browse/WICKET-819
> Project: Wicket
> Issue Type: Bug
> Components: wicket
> Affects Versions: 1.3.0-beta2
> Environment: Windows XP, Java 6, wicket 1.3-beta2, jetty 6
> Reporter: Dariusz Wojtas
> Priority: Minor
> Fix For: 1.3.0-beta4
>
>
> I started wicket-examples, it works fine - but I often get a serialization
> exception when starting a new game(see stacktrace below).
> I press the button "Start game", new page loads nicely with all letter
> images, but I get an exception on the console.
> This is repeatable.
> --------------------
> ERROR - Objects - Error serializing object class
> org.apache.wicket.examples.hangman.Guess [object=[Page class =
> org.apache.wicket.examples.hangman.Guess, id = 1, version = 0]]
> org.apache.wicket.util.io.SerializableChecker$WicketNotSerializableException:
> Unable to serialize class: sun.font.AttributeMap
> Field hierarchy is:
> 1 [class=org.apache.wicket.examples.hangman.Guess, path=1]
> private java.lang.Object org.apache.wicket.MarkupContainer.children
> [class=[Lorg.apache.wicket.Component;]
> private java.io.Serializable org.apache.wicket.model.Model.object[3]
> [class=org.apache.wicket.examples.hangman.Guess$2, path=1:letters]
> private java.lang.Object org.apache.wicket.MarkupContainer.children
> [class=[Lorg.apache.wicket.Component;]
> private java.lang.Object
> org.apache.wicket.MarkupContainer.children[0]
> [class=org.apache.wicket.markup.html.list.ListItem, path=1:letters:0]
> private java.lang.Object
> org.apache.wicket.MarkupContainer.children
> [class=org.apache.wicket.examples.hangman.Guess$2$1, path=1:letters:0:letter]
> private java.lang.Object
> org.apache.wicket.MarkupContainer.children
> [class=org.apache.wicket.markup.html.image.Image,
> path=1:letters:0:letter:image]
> private final
> org.apache.wicket.markup.html.image.resource.LocalizedImageResource
> org.apache.wicket.markup.html.image.Image.localizedImageResource
> [class=org.apache.wicket.markup.html.image.resource.LocalizedImageResource]
> private org.apache.wicket.Resource
> org.apache.wicket.markup.html.image.resource.LocalizedImageResource.resource
> [class=org.apache.wicket.markup.html.image.resource.DefaultButtonImageResource]
> private java.util.Map
> org.apache.wicket.markup.html.image.resource.DefaultButtonImageResource.fontAttributes
> [class=sun.font.AttributeMap] <----- field that is not serializable
> at
> org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:347)
> at
> org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:615)
> at
> org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:538)
> at
> org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:615)
> at
> org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:538)
> at
> org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:615)
> at
> org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:538)
> at
> org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:615)
> at
> org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:538)
> at
> org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:615)
> at
> org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:538)
> at
> org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:393)
> at
> org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:615)
> at
> org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:538)
> at
> org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:393)
> at
> org.apache.wicket.util.io.SerializableChecker.checkFields(SerializableChecker.java:615)
> at
> org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:538)
> at
> org.apache.wicket.util.io.SerializableChecker.writeObjectOverride(SerializableChecker.java:683)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:322)
> at
> org.apache.wicket.util.io.IObjectStreamFactory$1.writeObjectOverride(IObjectStreamFactory.java:74)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:322)
> at
> org.apache.wicket.util.lang.Objects.objectToByteArray(Objects.java:1101)
> at
> org.apache.wicket.protocol.http.FilePageStore.serializePage(FilePageStore.java:711)
> at
> org.apache.wicket.protocol.http.FilePageStore.access$900(FilePageStore.java:58)
> at
> org.apache.wicket.protocol.http.FilePageStore$PageSerializingThread.run(FilePageStore.java:245)
> at java.lang.Thread.run(Thread.java:619)
> Caused by: java.io.NotSerializableException: sun.font.AttributeMap
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156)
> at
> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
> at
> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474)
> at
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
> at
> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
> at
> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474)
> at
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
> at
> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
> at
> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474)
> at
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
> at
> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
> at
> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474)
> at
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
> at
> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
> at
> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474)
> at
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
> at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
> at
> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
> at
> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474)
> at
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
> at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1338)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1146)
> at
> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
> at
> java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474)
> at
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
> at
> org.apache.wicket.util.io.IObjectStreamFactory$1.writeObjectOverride(IObjectStreamFactory.java:66)
> ... 6 more
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.