When you got NotSerializableException and don't know where is problem, there is one solution - switch Java serialization to debug mode.
- Start application with parameter extendedDebugInfo
-Dsun.io.serialization.extendedDebugInfo=true
- Run your serialization routines to reproduce exceptions
- You will get usual exception with debug infromation containing stack of serialization
WARNING: Cannot serialize session attribute com.vaadin.terminal.gwt.server.WebApplicationContext for session 088634D700DB384445C8C941855BD7A9
java.io.NotSerializableException: xx.vaadin.security.SecuredValue
- field (class "xx.base.view.BaseApplication", name: "goliId", type: "class xx.vaadin.security.SecuredValue")
- object (class "xx.view.paymentorder.ServletPaymentOrderApplication", xx.view.paymentorder.ServletPaymentOrderApplication@1837b90c)
- custom writeObject data (class "java.util.HashMap")
- object (class "java.util.HashMap", {xx.view.paymentorder.ServletPaymentOrderApplication@1837b90c=com.vaadin.terminal.gwt.server.CommunicationManager@3cf94dad})
- field (class "com.vaadin.terminal.gwt.server.AbstractWebApplicationContext", name: "applicationToAjaxAppMgrMap", type: "class java.util.HashMap")
- root object (class "com.vaadin.terminal.gwt.server.WebApplicationContext", com.vaadin.terminal.gwt.server.WebApplicationContext@28cc5c6c)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1161)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)
at java.util.HashMap.writeObject(HashMap.java:1000)
at sun.reflect.GeneratedMethodAccessor35.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:940)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1469)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)
at org.apache.catalina.session.StandardSession.writeObject(StandardSession.java:1671)
at org.apache.catalina.session.StandardSession.writeObjectData(StandardSession.java:1077)
at org.apache.catalina.session.StandardManager.doUnload(StandardManager.java:411)
at org.apache.catalina.session.StandardManager.unload(StandardManager.java:353)
at org.apache.catalina.session.StandardManager.stopInternal(StandardManager.java:497)
at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232)
at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5462)
at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232)
at org.apache.catalina.core.ContainerBase$StopChild.call(ContainerBase.java:1581)
at org.apache.catalina.core.ContainerBase$StopChild.call(ContainerBase.java:1571)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
Žádné komentáře:
Okomentovat