wicket-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Igor Vaynberg <igor.vaynb...@gmail.com>
Subject Re: StackOverflowError on cluster failover.
Date Thu, 03 Sep 2009 16:01:05 GMT
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<andrew@harrisoft.co.uk> 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: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Mime
View raw message