Description
We use session.replaceSession() when a user logs out which appears to clear all previous pages (which is good), and when the user tries to go back he gets a PageExpiredException (which is also good).
Only that this exception is logged in error level from the RequestHandlerStack is very ugly and triggers our customer's log monitoring tool. PageExpiredExceptions should never bubble up into the log unless they cannot be handled correctly.
This is the stacktrace:
ERROR request.RequestHandlerStack - Error detaching RequestHandler
org.apache.wicket.protocol.http.PageExpiredException: Page with id '2' has expired.
at org.apache.wicket.request.handler.PageProvider.getPageInstance(PageProvider.java:169)
at org.apache.wicket.request.handler.PageProvider.getPageClass(PageProvider.java:227)
at org.apache.wicket.request.handler.logger.PageLogData.<init>(PageLogData.java:49)
at org.apache.wicket.request.handler.RenderPageRequestHandler.detach(RenderPageRequestHandler.java:147)
at org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.detach(RequestCycle.java:761)
at org.apache.wicket.request.RequestHandlerStack.detach(RequestHandlerStack.java:180)
at org.apache.wicket.request.cycle.RequestCycle.onDetach(RequestCycle.java:565)
at org.apache.wicket.request.cycle.RequestCycle.detach(RequestCycle.java:508)
at org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:284)
at org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:162)
at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:218)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:568)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:568)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:722)