wicket-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "HarriSoft Ltd" <and...@harrisoft.co.uk>
Subject StackOverflowError on cluster failover.
Date Thu, 03 Sep 2009 12:11:36 GMT

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


Mime
View raw message