I'm getting a serialization error in my logs: Nov 03 23:00:01 ERROR [TP-Processor34] lang.Objects - Error serializing object class com.conducive.ui.userPages.monitor.manage.MonitorsManagePage [object=[Page class = com.conducive.ui.userPages.monitor.manage.MonitorsManagePage, id = 120, version = 0, ajax = 4]] org.apache.wicket.util.io.SerializableChecker$WicketNotSerializableException: Unable to serialize class: com.conducive.ui.userPages.monitor.support.SortedTopicsAndMonitors$TopicGroup$1 Field hierarchy is: 120 [class=com.conducive.ui.userPages.monitor.manage.MonitorsManagePage, path=120] java.lang.Object org.apache.wicket.Component.data [class=[Ljava.lang.Object;] private org.apache.wicket.markup.html.IHeaderContributor org.apache.wicket.behavior.HeaderContributor.headerContributor[7] [class=com.conducive.ui.userPages.monitor.manage.MonitorsManagePage$1] final org.apache.wicket.Component com.conducive.ui.userPages.monitor.manage.MonitorsManagePage$1.val$leftList [class=org.apache.wicket.markup.html.WebMarkupContainer, path=120:contentPart:leftList] private java.lang.Object org.apache.wicket.MarkupContainer.children [class=com.conducive.ui.userPages.monitor.manage.MonitorsManageParts$ContentPart$1, path=120:contentPart:leftList:topicBlocks] final java.util.List com.conducive.ui.userPages.monitor.manage.MonitorsManageParts$ContentPart$1.val$sorted [class=java.util.ArrayList] final java.util.List com.conducive.ui.userPages.monitor.manage.MonitorsManageParts$ContentPart$1.val$sorted[write:1] [class=com.conducive.ui.userPages.monitor.support.SortedTopicsAndMonitors$TopicGroup] private final java.util.Set com.conducive.ui.userPages.monitor.support.SortedTopicsAndMonitors$TopicGroup.monitors [class=java.util.TreeSet] private final java.util.Set com.conducive.ui.userPages.monitor.support.SortedTopicsAndMonitors$TopicGroup.monitors[write:1] [class=com.conducive.ui.userPages.monitor.support.SortedTopicsAndMonitors$TopicGroup$1] <----- field that is not serializable at org.apache.wicket.util.io.SerializableChecker.check(SerializableChecker.java:346) at org.apache.wicket.util.io.SerializableChecker.access$500(SerializableChecker.java:63) at org.apache.wicket.util.io.SerializableChecker$1InterceptingObjectOutputStream.replaceObject(SerializableChecker.java:494) at java.io.ObjectOutputStream.writeObject0(Unknown Source) at java.io.ObjectOutputStream.writeObject(Unknown Source)
It seems to be complaining about this: private final Set<Monitor> monitors = new TreeSet<Monitor>(new Comparator<Monitor>() { @Override public int compare(Monitor o1, Monitor o2) { return o1.getDescription().compareTo(o2.getDescription()); } }); Shouldn't a comparator for a serializable also be serializable? If this is in face not serializable, how do I work around this? D/