You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Alastair Maw (JIRA)" <ji...@apache.org> on 2007/08/05 20:11:29 UTC

[jira] Updated: (WICKET-819) DefaultButtonImageResource's fontAttributes field isn't serializable

     [ https://issues.apache.org/jira/browse/WICKET-819?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alastair Maw updated WICKET-819:
--------------------------------

    Component/s:     (was: wicket-examples)
                 wicket
     Issue Type: Bug  (was: Improvement)
        Summary: DefaultButtonImageResource's fontAttributes field isn't serializable  (was: wicket-examples serialization problem on entering new game)

fontAttributes in DefaultButtonImageResource is a Map. The map is populated in setFont() to contain font.getAttributes(). Unfortunately that's a sun.font.AttributeMap, which isn't serializable. :-(

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