it looks like it may be a problem deserializing a joda time object. you will have to debug and see which class exactly fails.
-igor On Thu, Sep 3, 2009 at 5:11 AM, HarriSoft Ltd<[email protected]> wrote: > > Hi, > > Firstly, I'm using Tomcat 5.5 and Wicket 1.3.5 > > I've recently been tasked with running our current application in a > clustered environment. Having got the cluster configured (sticky sessions > and session replication) I figured the app should run without a problem > and it does, mostly. > > I've found a problem whereby it does not appear that the DiskPageStore > file is being clustered correctly (its also possible that I've missed > something).. Our app has a feature that lets the user navigate backwards > from the current page, retrieving the previous pages from the > DiskPageStore and providing links on the pages (Back to SearchResults, > previous page, etc.) to allow for backwards navigation. On a single > server this works, but in a clustered environment if the session was > created on server A, then if server A failed over to server B, Wicket > throws a StackOverflowError (Top of the stack trace is below). Has > anybody seen this behaviour before? I have seen some comments about > clusters failing over and exceptions being thrown on a subsequent use of > the back button; is this still the case as that is essentially what we are > doing with pages in a flow. > > Any help appreciated. > > java.lang.StackOverflowError > java.io.ObjectStreamClass.readNonProxy(ObjectStreamClass.java:600) > > java.io.ObjectInputStream.readClassDescriptor(ObjectInputStream.java:789) > java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1534) > java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1466) > > java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1699) > java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305) > java.io.ObjectInputStream.readObject(ObjectInputStream.java:348) > > org.joda.time.chrono.ISOChronology$Stub.readObject(ISOChronology.java:210) > sun.reflect.GeneratedMethodAccessor34.invoke(Unknown Source) > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > java.lang.reflect.Method.invoke(Method.java:585) > java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:946) > java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1809) > > java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719) > java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305) > > java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908) > java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832) > > java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719) > java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305) > > java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908) > java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832) > > java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719) > java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305) > > java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908) > java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832) > > java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719) > java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305) > java.io.ObjectInputStream.readObject(ObjectInputStream.java:348) > java.util.ArrayList.readObject(ArrayList.java:591) > sun.reflect.GeneratedMethodAccessor33.invoke(Unknown Source) > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > java.lang.reflect.Method.invoke(Method.java:585) > java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:946) > java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1809) > > java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719) > java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305) > > java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908) > java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832) > > java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719) > java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305) > java.io.ObjectInputStream.readArray(ObjectInputStream.java:1634) > java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299) > > java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908) > java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832) > > java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719) > java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305) > java.io.ObjectInputStream.readObject(ObjectInputStream.java:348) > org.apache.wicket.util.lang.Objects.byteArrayToObject(Objects.java:393) > > org.apache.wicket.protocol.http.pagestore.AbstractPageStore.deserializePage(AbstractPageStore.java:228) > > org.apache.wicket.protocol.http.pagestore.DiskPageStore.getPage(DiskPageStore.java:707) > > org.apache.wicket.protocol.http.pagestore.DiskPageStore.convertToPage(DiskPageStore.java:1234) > > org.apache.wicket.protocol.http.SecondLevelCacheSessionStore$SecondLevelCachePageMap.getLastPage(SecondLevelCacheSessionStore.java:228) > > org.apache.wicket.protocol.http.SecondLevelCacheSessionStore$SecondLevelCachePageMap.get(SecondLevelCacheSessionStore.java:296) > org.apache.wicket.Session.getPage(Session.java:751) > > org.apache.wicket.protocol.http.pagestore.AbstractPageStore$PageHolder.readResolve(AbstractPageStore.java:363) > sun.reflect.GeneratedMethodAccessor51.invoke(Unknown Source) > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > java.lang.reflect.Method.invoke(Method.java:585) > > java.io.ObjectStreamClass.invokeReadResolve(ObjectStreamClass.java:1033) > > java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1728) > java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305) > > java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908) > java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832) > > java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719) > java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305) > java.io.ObjectInputStream.readArray(ObjectInputStream.java:1634) > java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299) > > java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908) > java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832) > > java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719) > java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305) > java.io.ObjectInputStream.readObject(ObjectInputStream.java:348) > org.apache.wicket.util.lang.Objects.byteArrayToObject(Objects.java:393) > > org.apache.wicket.protocol.http.pagestore.AbstractPageStore.deserializePage(AbstractPageStore.java:228) > > org.apache.wicket.protocol.http.pagestore.DiskPageStore.getPage(DiskPageStore.java:707) > > org.apache.wicket.protocol.http.pagestore.DiskPageStore.convertToPage(DiskPageStore.java:1234) > > org.apache.wicket.protocol.http.SecondLevelCacheSessionStore$SecondLevelCachePageMap.getLastPage(SecondLevelCacheSessionStore.java:228) > > org.apache.wicket.protocol.http.SecondLevelCacheSessionStore$SecondLevelCachePageMap.get(SecondLevelCacheSessionStore.java:296) > org.apache.wicket.Session.getPage(Session.java:751) > > org.apache.wicket.protocol.http.pagestore.AbstractPageStore$PageHolder.readResolve(AbstractPageStore.java:363) > sun.reflect.GeneratedMethodAccessor51.invoke(Unknown Source) > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > java.lang.reflect.Method.invoke(Method.java:585) > > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
