[ 
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.

Reply via email to