Here it is:

ERROR - Objects                    - Error serializing object class
nl.je.obs.web.admin.medewerkers.EditMedewerker [object=[Page class =
nl.je.obs.web.admin.medewerkers.EditMedewerker, id = 3, version = 0]]
org.apache.wicket.util.io.SerializableChecker$WicketNotSerializableException:Unable
to serialize class:
nl.je.ddd.ui.wicket.DateTextFieldDecorator
Field hierarchy is:
  3 [class=nl.je.obs.web.admin.medewerkers.EditMedewerker, path=3]
    private java.lang.Object org.apache.wicket.MarkupContainer.children[class=[
Ljava.lang.Object;]
      private
org.apache.wicket.markup.html.ContainerWithAssociatedMarkupHelper
org.apache.wicket.markup.html.WebMarkupContainerWithAssociatedMarkup.markupHelper[2]
[class=nl.je.obs.web.admin.medewerkers.EditMedewerker$2, path=3:mwpwForm]
        private java.lang.Object
org.apache.wicket.MarkupContainer.children[class=[
Ljava.lang.Object;]
          private java.lang.Object
org.apache.wicket.MarkupContainer.children[0] [class=
org.apache.wicket.extensions.markup.html.tabs.TabbedPanel,
path=3:mwpwForm:mw-tabs]
            private java.lang.Object
org.apache.wicket.MarkupContainer.children [class=[Ljava.lang.Object;]
              private org.apache.wicket.markup.html.link.PopupSettings
org.apache.wicket.markup.html.link.Link.popupSettings[1] [class=
nl.je.obs.web.admin.medewerkers.PersoonsGegevensPanel,
path=3:mwpwForm:mw-tabs:panel]
                private java.lang.Object
org.apache.wicket.MarkupContainer.children [class=[Ljava.lang.Object;]
                  private java.lang.Object
org.apache.wicket.markup.html.form.FormComponent.validators[3] [class=
org.apache.wicket.datetime.markup.html.form.DateTextField,
path=3:mwpwForm:mw-tabs:panel:geboorted]
                    java.lang.Object org.apache.wicket.Component.data[class=[
Ljava.lang.Object;]
                      java.lang.Object org.apache.wicket.Component.data[0][1]
[class=nl.je.ddd.ui.wicket.DateTextFieldDecorator$1]
                        final nl.je.ddd.ui.wicket.DateTextFieldDecorator
nl.je.ddd.ui.wicket.DateTextFieldDecorator$1.this$0 [class=
nl.je.ddd.ui.wicket.DateTextFieldDecorator] <----- field that is not
serializable
    at org.apache.wicket.util.io.SerializableChecker.check(
SerializableChecker.java:342)
    at org.apache.wicket.util.io.SerializableChecker.checkFields(
SerializableChecker.java:610)
    at org.apache.wicket.util.io.SerializableChecker.check(
SerializableChecker.java:533)
    at org.apache.wicket.util.io.SerializableChecker.check(
SerializableChecker.java:388)
    at org.apache.wicket.util.io.SerializableChecker.checkFields(
SerializableChecker.java:610)
    at org.apache.wicket.util.io.SerializableChecker.check(
SerializableChecker.java:533)
    at org.apache.wicket.util.io.SerializableChecker.check(
SerializableChecker.java:388)
    at org.apache.wicket.util.io.SerializableChecker.checkFields(
SerializableChecker.java:610)
    at org.apache.wicket.util.io.SerializableChecker.check(
SerializableChecker.java:533)
    at org.apache.wicket.util.io.SerializableChecker.check(
SerializableChecker.java:388)
    at org.apache.wicket.util.io.SerializableChecker.checkFields(
SerializableChecker.java:610)
    at org.apache.wicket.util.io.SerializableChecker.check(
SerializableChecker.java:533)
    at org.apache.wicket.util.io.SerializableChecker.check(
SerializableChecker.java:388)
    at org.apache.wicket.util.io.SerializableChecker.checkFields(
SerializableChecker.java:610)
    at org.apache.wicket.util.io.SerializableChecker.check(
SerializableChecker.java:533)
    at org.apache.wicket.util.io.SerializableChecker.check(
SerializableChecker.java:388)
    at org.apache.wicket.util.io.SerializableChecker.checkFields(
SerializableChecker.java:610)
    at org.apache.wicket.util.io.SerializableChecker.check(
SerializableChecker.java:533)
    at org.apache.wicket.util.io.SerializableChecker.writeObjectOverride(
SerializableChecker.java:678)
    at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:322)
    at org.apache.wicket.util.io.IObjectStreamFactory$2.writeObjectOverride(
IObjectStreamFactory.java:125)
    at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:322)
    at org.apache.wicket.util.lang.Objects.objectToByteArray(Objects.java
:1085)
    at
org.apache.wicket.protocol.http.pagestore.AbstractPageStore.serializePage(
AbstractPageStore.java:197)
    at org.apache.wicket.protocol.http.pagestore.DiskPageStore.storePage(
DiskPageStore.java:806)
    at
org.apache.wicket.protocol.http.SecondLevelCacheSessionStore$SecondLevelCachePageMap.put
(SecondLevelCacheSessionStore.java:332)
    at org.apache.wicket.Session.requestDetached(Session.java:1364)
    at org.apache.wicket.RequestCycle.detach(RequestCycle.java:1091)
    at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1334)
    at org.apache.wicket.RequestCycle.request(RequestCycle.java:493)
    at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java
:354)
    at org.apache.wicket.protocol.http.WicketFilter.doFilter(
WicketFilter.java:194)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(
ServletHandler.java:1089)
    at
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal
(OpenSessionInViewFilter.java:198)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(
OncePerRequestFilter.java:75)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(
ServletHandler.java:1089)
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java
:365)
    at org.mortbay.jetty.security.SecurityHandler.handle(
SecurityHandler.java:216)
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java
:181)
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java
:712)
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java
:139)
    at org.mortbay.jetty.Server.handle(Server.java:295)
    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java
:503)
    at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(
HttpConnection.java:827)
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:511)
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:210)
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:379)
    at org.mortbay.jetty.bio.SocketConnector$Connection.run(
SocketConnector.java:226)
    at org.mortbay.thread.BoundedThreadPool$PoolThread.run(
BoundedThreadPool.java:442)
Caused by: java.io.NotSerializableException:
nl.je.ddd.ui.wicket.DateTextFieldDecorator
    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.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.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.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$2.writeObjectOverride(
IObjectStreamFactory.java:117)
    ... 29 more


2008/2/8, Sebastiaan van Erk <[EMAIL PROTECTED]>:
>
> Hi,
>
> I don't see any problem with the code below, that is, from what you
> pasted I don't see any references to a TextFieldDecorator being kept.
>
> However when Wicket says that something is not serializable it gives you
> the entire object graph path to the object that is causing the problem,
> so seeing the full exception would help debug the problem.
>
> Regards,
> Sebastiaan
>
> Martijn Lindhout wrote:
> > Hi all,
> >
> > I have this code in a Panel:
> >
> > TextField name = new TextField("name", new PropertyModel(person, "
> name.value
> > "));
> > add(WidgetDecorator.decorate(name).from(person.getName());
> >
> > I have domain objects (person) with rich type definities. getName()
> returns
> > a Text object that contains all constraints imposed on the field
> (required,
> > min, max, etc).
> >
> > WidgetDecorator is a class I build that enriches a particular Wicket
> > component, based on the type information from the domain object. All
> > decorate methods on the WidgetDecorator are static and return a
> component
> > specific decorator, so in the sample above a new TextFieldDecorator will
> be
> > instantiated and returned. It looks like this:
> >
> > public class TextFieldDecorator {
> >
> >     private TextField widget;
> >
> >     public TextFieldDecorator(TextField textField) {
> >         this.widget = textField;
> >     }
> >
> >     public TextField from(Text textType) {
> >         widget.setRequired(textType.isRequired());
> >         widget.add(StringValidator.lengthBetween(textType.getMinLength
> (),
> > textType.getMaxLength()));
> >         widget.setLabel(new Model(textType.getFieldName()));
> >         return widget;
> >     }
> > }
> >
> > Now the problem: Wicket complains that my TextFieldDecorator is not
> > serializable. But why? IMO it is not added to the component hierarchy.
> The
> > argument to the panel.add(...) method is the result of evaluating:
> > WidgetDecorator.decorate(name).from(person.getName(), which returns the
> > TextField widget.
> >
> > Should I redo my Java programmers exam?
> >
> > Thanx,
> >
>
>


-- 
Martijn Lindhout
JointEffort IT Services
http://www.jointeffort.nl
[EMAIL PROTECTED]
+31 (0)6 18 47 25 29

Reply via email to