Hi,
I'm using wicket 1.3.0 SNAPSHOT, and I'm encountering intermittent errors
in console on my pages. I can't seem to determine a reproducible test case
for this issue, so I'm not sure how to isolate the problem any further.
Please let me know if you have any suggestions on what to look for.
In the initial setup of my application, I'm setting
Objects.setObjectStreamFactory(new
org.apache.wicket.util.io.WicketObjectStreamFactory());
When I hit the page I'm working on to debug some AJAX behavior on the
page, I sometimes get a serialization error in the log. It looks like it's
trying to serialize the Hibernate session on the page. The session is on
the page to enable extended Hibernate sessions. I tried switching to
JDK-based serialization (per the suggestion in the exception message), and
got a different error; I'll post that in a separate e-mail to cut down on
the length.
Here's the log of the error with wicket serialization:
11:23:58,209 ERROR Objects:1113 - Error serializing object class
com.csc.aims.specchange.wicket.SpecChangePage [object=[Page class =
com.csc.aims.specchange.wicket.SpecChangePage, id = 4, version = 0]]
org.apache.wicket.util.io.WicketSerializeableException: Error writing
fields for com.csc.aims.specchange.wicket.SpecChangePage
NOTE: if you feel Wicket is at fault with this exception, please report to
the mailing list. You can switch to JDK based serialization by
calling: org.apache.wicket.util.lang.Objects.setObjectStreamFactory(new
IObjectStreamFactory.DefaultObjectStreamFactory()) e.g. in the init
method of your application
at
org.apache.wicket.util.io.WicketObjectOutputStream.writeObjectOverride(WicketObjectOutputStream.java:806)
at
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:298)
at
org.apache.wicket.util.lang.Objects.objectToByteArray(Objects.java:1103)
at
org.apache.wicket.protocol.http.FilePageStore.serializePage(FilePageStore.java:741)
at
org.apache.wicket.protocol.http.FilePageStore.access$800(FilePageStore.java:58)
at
org.apache.wicket.protocol.http.FilePageStore$PageSerializingThread.run(FilePageStore.java:261)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.RuntimeException:
java.lang.reflect.InvocationTargetException
at
org.apache.wicket.util.io.ClassStreamHandler.invokeWriteMethod(ClassStreamHandler.java:471)
at
org.apache.wicket.util.io.WicketObjectOutputStream.writeObjectOverride(WicketObjectOutputStream.java:777)
... 6 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
org.apache.wicket.util.io.ClassStreamHandler.invokeWriteMethod(ClassStreamHandler.java:459)
... 7 more
Caused by: org.apache.wicket.util.io.WicketSerializeableException: Error
writing fields for org.hibernate.impl.SessionImpl
pageState->com.csc.aims.specchange.wicket.SpecChangePageState->conversationSession
NOTE: if you feel Wicket is at fault with this exception, please report to
the mailing list. You can switch to JDK based serialization by
calling: org.apache.wicket.util.lang.Objects.setObjectStreamFactory(new
IObjectStreamFactory.DefaultObjectStreamFactory()) e.g. in the init
method of your application
at
org.apache.wicket.util.io.WicketObjectOutputStream.writeObjectOverride(WicketObjectOutputStream.java:806)
at
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:298)
at
org.apache.wicket.util.io.ClassStreamHandler$ObjectFieldAndIndex.writeField(ClassStreamHandler.java:863)
at
org.apache.wicket.util.io.ClassStreamHandler.writeFields(ClassStreamHandler.java:388)
at
org.apache.wicket.util.io.WicketObjectOutputStream.writeObjectOverride(WicketObjectOutputStream.java:779)
at
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:298)
at
org.apache.wicket.util.io.ClassStreamHandler$ObjectFieldAndIndex.writeField(ClassStreamHandler.java:863)
at
org.apache.wicket.util.io.ClassStreamHandler.writeFields(ClassStreamHandler.java:388)
at
org.apache.wicket.util.io.WicketObjectOutputStream.defaultWriteObject(WicketObjectOutputStream.java:465)
at
org.apache.wicket.protocol.http.FilePageStore$PageSerializer.serializePage(FilePageStore.java:870)
at org.apache.wicket.Page.writeObject(Page.java:1293)
... 12 more
Caused by: java.lang.RuntimeException:
java.lang.reflect.InvocationTargetException
at
org.apache.wicket.util.io.ClassStreamHandler.invokeWriteMethod(ClassStreamHandler.java:471)
at
org.apache.wicket.util.io.WicketObjectOutputStream.writeObjectOverride(WicketObjectOutputStream.java:777)
... 22 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
org.apache.wicket.util.io.ClassStreamHandler.invokeWriteMethod(ClassStreamHandler.java:459)
... 23 more
Caused by: org.apache.wicket.util.io.WicketSerializeableException: No
Serializable constructor found for class
org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer
com.csc.aims.specchange.common.Icr$$EnhancerByCGLIB$$d2406786->CGLIB$CALLBACK_0
NOTE: if you feel Wicket is at fault with this exception, please report to
the mailing list. You can switch to JDK based serialization by
calling: org.apache.wicket.util.lang.Objects.setObjectStreamFactory(new
IObjectStreamFactory.DefaultObjectStreamFactory()) e.g. in the init
method of your application
at
org.apache.wicket.util.io.ClassStreamHandler.<init>(ClassStreamHandler.java:256)
at
org.apache.wicket.util.io.ClassStreamHandler.lookup(ClassStreamHandler.java:120)
at
org.apache.wicket.util.io.WicketObjectOutputStream.writeObjectOverride(WicketObjectOutputStream.java:752)
at
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:298)
at
org.apache.wicket.util.io.ClassStreamHandler$ObjectFieldAndIndex.writeField(ClassStreamHandler.java:863)
at
org.apache.wicket.util.io.ClassStreamHandler.writeFields(ClassStreamHandler.java:388)
at
org.apache.wicket.util.io.WicketObjectOutputStream.writeObjectOverride(WicketObjectOutputStream.java:779)
at
java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:298)
at
org.hibernate.engine.StatefulPersistenceContext.serialize(StatefulPersistenceContext.java:1207)
at
org.hibernate.impl.SessionImpl.writeObject(SessionImpl.java:1951)
... 28 more
Thanks,
Russell Morrisey
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Wicket-user mailing list
Wicket-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wicket-user