We're getting a lot of StalePageException, immediately followed by "An error occurred while checking whether a page is stateless. Assuming it is stateful." on stateful pages and especially when crawled by Google bot.
Any idea why this is happening? @timestamp 2013-09-24T01:42:47-04:00 caller Caller+0 at org.apache.wicket.request.RequestHandlerStack.detach(RequestHandlerStack.java:184) Caller+1 at org.apache.wicket.request.cycle.RequestCycle.onDetach(RequestCycle.java:636) Caller+2 at org.apache.wicket.request.cycle.RequestCycle.detach(RequestCycle.java:589) Caller+3 at org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:293) Caller+4 at org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:259) level ERROR logger org.apache.wicket.request.RequestHandlerStack message Error detaching RequestHandler req.queryString 0-1.IBehaviorListener.1-productStatusPanel-addToCartRegion-1-productCartComposeForm-quantityProductPanel-quantity req.remoteHost 127.0.0.1 req.requestURI /tuneeca_prd_commerce/app/product/gamis-je-t-aime-champs-elyses req.requestURL http://localhost:8201/tuneeca_prd_commerce/app/product/gamis-je-t-aime-champs-elyses req.sessionId 369EExxxx req.userAgent Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html) req.xForwardedFor 66.249.66.172 thread http-nio-8201-exec-17 throwable org.apache.wicket.core.request.mapper.StalePageException: null followed by : @timestamp 2013-09-24T01:42:47-04:00 caller Caller+0 at org.apache.wicket.page.RequestAdapter.commitRequest(RequestAdapter.java:170) Caller+1 at org.apache.wicket.page.AbstractPageManager.commitRequest(AbstractPageManager.java:98) Caller+2 at org.apache.wicket.page.PageManagerDecorator.commitRequest(PageManagerDecorator.java:73) Caller+3 at org.apache.wicket.page.PageAccessSynchronizer$2.commitRequest(PageAccessSynchronizer.java:281) Caller+4 at org.apache.wicket.Application$2.onDetach(Application.java:1628) level WARN logger org.apache.wicket.page.RequestAdapter message An error occurred while checking whether a page is stateless. Assuming it is stateful. req.queryString 0-1.IBehaviorListener.1-productStatusPanel-addToCartRegion-1-productCartComposeForm-quantityProductPanel-quantity req.remoteHost 127.0.0.1 req.requestURI /tuneeca_prd_commerce/app/product/gamis-je-t-aime-champs-elyses req.requestURL http://localhost:8201/tuneeca_prd_commerce/app/product/gamis-je-t-aime-champs-elyses req.sessionId 369EE916xxxx req.userAgent Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html) req.xForwardedFor 66.249.66.172 thread http-nio-8201-exec-17 throwable java.lang.NullPointerException: null at id.co.bippo.product.web.pub.ProductShowPage.getAddToCartRegion(ProductShowPage.java:207) ~[id.co.bippo.product.web-5.1.0-SNAPSHOT.jar:na] at id.co.bippo.springapp.SoluvasWebApplication.composeComponent(SoluvasWebApplication.java:377) ~[SoluvasWebApplication.class:na] at id.co.bippo.springapp.SoluvasWebApplication$1.onInitialize(SoluvasWebApplication.java:352) ~[SoluvasWebApplication$1.class:na] at org.apache.wicket.application.ComponentInitializationListenerCollection$1.notify(ComponentInitializationListenerCollection.java:40) ~[wicket-core-6.8.0.jar:6.8.0] at org.apache.wicket.application.ComponentInitializationListenerCollection$1.notify(ComponentInitializationListenerCollection.java:36) ~[wicket-core-6.8.0.jar:6.8.0] at org.apache.wicket.util.listener.ListenerCollection.notify(ListenerCollection.java:80) ~[wicket-util-6.8.0.jar:6.8.0] at org.apache.wicket.application.ComponentInitializationListenerCollection.onInitialize(ComponentInitializationListenerCollection.java:35) ~[wicket-core-6.8.0.jar:6.8.0] at org.apache.wicket.Component.fireInitialize(Component.java:873) ~[wicket-core-6.8.0.jar:6.8.0] at org.apache.wicket.MarkupContainer.internalInitialize(MarkupContainer.java:955) ~[wicket-core-6.8.0.jar:6.8.0] at org.apache.wicket.Page.isPageStateless(Page.java:451) ~[wicket-core-6.8.0.jar:6.8.0] at org.apache.wicket.page.RequestAdapter.commitRequest(RequestAdapter.java:166) ~[wicket-core-6.8.0.jar:6.8.0] at org.apache.wicket.page.AbstractPageManager.commitRequest(AbstractPageManager.java:98) ~[wicket-core-6.8.0.jar:6.8.0] at org.apache.wicket.page.PageManagerDecorator.commitRequest(PageManagerDecorator.java:73) ~[wicket-core-6.8.0.jar:6.8.0] at org.apache.wicket.page.PageAccessSynchronizer$2.commitRequest(PageAccessSynchronizer.java:281) ~[wicket-core-6.8.0.jar:6.8.0] at org.apache.wicket.Application$2.onDetach(Application.java:1628) ~[wicket-core-6.8.0.jar:6.8.0] at org.apache.wicket.request.cycle.RequestCycleListenerCollection$3.notify(RequestCycleListenerCollection.java:105) ~[wicket-core-6.8.0.jar:6.8.0] at org.apache.wicket.request.cycle.RequestCycleListenerCollection$3.notify(RequestCycleListenerCollection.java:101) ~[wicket-core-6.8.0.jar:6.8.0] at org.apache.wicket.util.listener.ListenerCollection$1.notify(ListenerCollection.java:120) ~[wicket-util-6.8.0.jar:6.8.0] at org.apache.wicket.util.listener.ListenerCollection.reversedNotify(ListenerCollection.java:144) ~[wicket-util-6.8.0.jar:6.8.0] at org.apache.wicket.util.listener.ListenerCollection.reversedNotifyIgnoringExceptions(ListenerCollection.java:113) ~[wicket-util-6.8.0.jar:6.8.0] at org.apache.wicket.request.cycle.RequestCycleListenerCollection.onDetach(RequestCycleListenerCollection.java:100) ~[wicket-core-6.8.0.jar:6.8.0] at org.apache.wicket.request.cycle.RequestCycle.onDetach(RequestCycle.java:640) ~[wicket-core-6.8.0.jar:6.8.0] at org.apache.wicket.request.cycle.RequestCycle.detach(RequestCycle.java:589) ~[wicket-core-6.8.0.jar:6.8.0] at org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:293) ~[wicket-core-6.8.0.jar:6.8.0] at org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:259) ~[wicket-core-6.8.0.jar:6.8.0] at org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:201) ~[wicket-core-6.8.0.jar:6.8.0] at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:282) ~[wicket-core-6.8.0.jar:6.8.0] at id.co.bippo.springapp.SoluvasAtmosphereHandler$CustomFilterChain.doFilter(SoluvasAtmosphereHandler.java:195) ~[SoluvasAtmosphereHandler$CustomFilterChain.class:na] at org.soluvas.web.site.servlet.ShiroPrincipalsServletFilter.doFilter(ShiroPrincipalsServletFilter.java:59) ~[org.soluvas.web.site-2.0.0-20130923.174406-516.jar:na] at id.co.bippo.springapp.SoluvasAtmosphereHandler$CustomFilterChain.doFilter(SoluvasAtmosphereHandler.java:195) ~[SoluvasAtmosphereHandler$CustomFilterChain.class:na] at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) ~[shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) ~[shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) ~[shiro-core-1.2.2.jar:1.2.2] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) ~[shiro-core-1.2.2.jar:1.2.2] at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) ~[shiro-core-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) ~[shiro-web-1.2.2.jar:1.2.2] at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) ~[shiro-web-1.2.2.jar:1.2.2] at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343) ~[spring-web-3.2.4.RELEASE.jar:3.2.4.RELEASE] at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260) ~[spring-web-3.2.4.RELEASE.jar:3.2.4.RELEASE] at id.co.bippo.springapp.SoluvasAtmosphereHandler$CustomFilterChain.doFilter(SoluvasAtmosphereHandler.java:195) ~[SoluvasAtmosphereHandler$CustomFilterChain.class:na] at org.soluvas.web.site.servlet.MoreMdcServletFilter.doFilter(MoreMdcServletFilter.java:62) ~[org.soluvas.web.site-2.0.0-20130923.174406-516.jar:na] at id.co.bippo.springapp.SoluvasAtmosphereHandler$CustomFilterChain.doFilter(SoluvasAtmosphereHandler.java:195) ~[SoluvasAtmosphereHandler$CustomFilterChain.class:na] at ch.qos.logback.classic.helpers.MDCInsertingServletFilter.doFilter(MDCInsertingServletFilter.java:51) ~[logback-classic-1.0.12.jar:na] at id.co.bippo.springapp.SoluvasAtmosphereHandler$CustomFilterChain.doFilter(SoluvasAtmosphereHandler.java:195) ~[SoluvasAtmosphereHandler$CustomFilterChain.class:na] at id.co.bippo.springapp.SoluvasAtmosphereHandler$CustomFilterChain.invokeFilterChain(SoluvasAtmosphereHandler.java:181) ~[SoluvasAtmosphereHandler$CustomFilterChain.class:na] at id.co.bippo.springapp.SoluvasAtmosphereHandler.onRequest(SoluvasAtmosphereHandler.java:80) ~[SoluvasAtmosphereHandler.class:na] at org.atmosphere.cpr.AsynchronousProcessor.action(AsynchronousProcessor.java:260) ~[atmosphere-runtime-1.0.17.jar:1.0.17] at org.atmosphere.cpr.AsynchronousProcessor.suspended(AsynchronousProcessor.java:167) ~[atmosphere-runtime-1.0.17.jar:1.0.17] at org.atmosphere.container.Tomcat7CometSupport.service(Tomcat7CometSupport.java:88) ~[atmosphere-runtime-1.0.17.jar:1.0.17] at org.atmosphere.container.Tomcat7AsyncSupportWithWebSocket.doService(Tomcat7AsyncSupportWithWebSocket.java:63) ~[atmosphere-runtime-1.0.17.jar:1.0.17] at org.atmosphere.container.TomcatWebSocketUtil.doService(TomcatWebSocketUtil.java:87) ~[atmosphere-runtime-1.0.17.jar:1.0.17] at org.atmosphere.container.Tomcat7AsyncSupportWithWebSocket.service(Tomcat7AsyncSupportWithWebSocket.java:59) ~[atmosphere-runtime-1.0.17.jar:1.0.17] at org.atmosphere.cpr.AtmosphereFramework.doCometSupport(AtmosphereFramework.java:1459) ~[atmosphere-runtime-1.0.17.jar:1.0.17] at org.atmosphere.cpr.AtmosphereServlet.event(AtmosphereServlet.java:361) ~[atmosphere-runtime-1.0.17.jar:1.0.17] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilterEvent(ApplicationFilterChain.java:484) ~[tomcat-catalina-7.0.30.jar:7.0.30] at org.apache.catalina.core.ApplicationFilterChain.doFilterEvent(ApplicationFilterChain.java:377) ~[tomcat-catalina-7.0.30.jar:7.0.30] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) ~[tomcat-catalina-7.0.30.jar:7.0.30] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) ~[tomcat-catalina-7.0.30.jar:7.0.30] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) ~[tomcat-catalina-7.0.30.jar:7.0.30] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) ~[tomcat-catalina-7.0.30.jar:7.0.30] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) ~[tomcat-catalina-7.0.30.jar:7.0.30] at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929) ~[tomcat-catalina-7.0.30.jar:7.0.30] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) ~[tomcat-catalina-7.0.30.jar:7.0.30] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) ~[tomcat-catalina-7.0.30.jar:7.0.30] at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002) ~[tomcat-coyote-7.0.30.jar:7.0.30] at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585) ~[tomcat-coyote-7.0.30.jar:7.0.30] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1653) ~[tomcat-coyote-7.0.30.jar:7.0.30] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) ~[na:1.7.0_25] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) ~[na:1.7.0_25] at java.lang.Thread.run(Thread.java:724) ~[na:1.7.0_25] Notes: * the NPE id.co.bippo.product.web.pub.ProductShowPage.getAddToCartRegion() is simply calling a method on a Component (saved in field) that's supposed to be created during the ProductShowPage's constructor. So it seems either the constructor wasn't properly called/finished or something else happened, so the component was null. * our site's usage pattern is: - for frontend, a lot of concurrent users (50-100s), all accessing stateful pages, and usually they open several tabs - for the backend, several concurrent users (15s), all accessing stateful pages, and each open 10-20 tabs * configuration is deployment. However wicket-devutils.jar is on the WEB-INF/lib (because the same dependency is required during development), does this affect? * Tomcat 7.0 on Oracle JDK 7 on Ubuntu 12.10 64-bit * using Tomcat's PersistentManager FileStore for session I found a couple of threads related to StalePageException in Wicket 1.5 : 1. http://apache-wicket.1842946.n4.nabble.com/StalePageException-handling-issue-td4579247.html 2. http://apache-wicket.1842946.n4.nabble.com/Getting-more-stale-page-exception-in-wicket-1-5-6-td4649492.html But these are for Wicket 1.5 so I'm not sure if it applies. Any suggestion would be appreciated. Thank you. Hendy -- View this message in context: http://apache-wicket.1842946.n4.nabble.com/StalePageException-s-followed-by-An-error-occurred-while-checking-whether-a-page-is-stateless-Assumi-tp4661457.html Sent from the Users forum mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org