Sorry, I forgot to reply to your earlier post. Fundamentally, the issue is caused by tapestry-security operating as part of the httpservletrequest pipeline, before the active page is already set up. The library is internally setting up request globals etc. where needed but you may be pushing around some shard edge there. It's also possible that some change in the core tapestry has caused the issue to surface. It may be that the issue happens exactly when the security library is trying to deal with the expired session. In your stack trace, you'll see that the exception happens way before the active page is being set. Just a note that you cannot simply return a full page response to an ajax request (as you try to do in your example). What's your exact version of T5 you are using? I'll see if we have a test for this case and try to reproduce.
Kalle On Wed, Mar 25, 2015 at 6:07 AM, George Christman <gchrist...@cardaddy.com> wrote: > So I've been able to finally reproduce this bug. I have an ajax form and > I'm using tapestry-security. When my session times out and an form action > is clicked, I get the "The active page name has not been specified" > exception. I found the code throwing the exception, I'm just not sure why > this is happening to begin with. > > https://github.com/apache/tapestry-5/blob/5.4-beta-26/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/AjaxPartialResponseRendererImpl.java > line 86. > > Shouldn't the page automatically be redirected to the login page when the > user session has timed out and an action has been performed. > > I even tried this without any success. > > Object onActivate() throws Exception { > if (request.isRequestedSessionIdValid()) { > //some code > } > return Login.class; > } > > Any thoughts on how to repair this issue? > > On Thu, Mar 19, 2015 at 12:54 PM, George Christman < > gchrist...@cardaddy.com> > wrote: > > > Could someone help me to understand this exception? I'm using Tap 5.4 and > > I've been seeing this quite often, but can't seem to reproduce it. > > > > The active page name has not been > > specified.org.apache.tapestry5.ioc.internal.OperationException: The > active > > page name has not been specified. at > > > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.logAndRethrow(OperationTrackerImpl.java:184) > > at > > > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.perform(OperationTrackerImpl.java:118) > > at > > > org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.perform(PerThreadOperationTracker.java:84) > > at > > > org.apache.tapestry5.ioc.internal.RegistryImpl.perform(RegistryImpl.java:1264) > > at > > > org.apache.tapestry5.internal.services.DeferredResponseRenderer.invokeQueuedRenderer(DeferredResponseRenderer.java:73) > > at > > > org.apache.tapestry5.internal.services.DeferredResponseRenderer.handleComponentEvent(DeferredResponseRenderer.java:47) > > at $ComponentRequestHandler_18c715615aaee.handleComponentEvent(Unknown > > Source) at > > > org.apache.tapestry5.services.InitializeActivePageName.handleComponentEvent(InitializeActivePageName.java:39) > > at $ComponentRequestHandler_18c715615aaee.handleComponentEvent(Unknown > > Source) at > > > org.apache.tapestry5.internal.services.ProductionModeUnknownComponentFilter.handleComponentEvent(ProductionModeUnknownComponentFilter.java:50) > > at $ComponentRequestHandler_18c715615aaee.handleComponentEvent(Unknown > > Source) at > > > org.apache.tapestry5.internal.services.RequestOperationTracker$1.perform(RequestOperationTracker.java:55) > > at > > > org.apache.tapestry5.internal.services.RequestOperationTracker$1.perform(RequestOperationTracker.java:52) > > at > > > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.perform(OperationTrackerImpl.java:110) > > at > > > org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.perform(PerThreadOperationTracker.java:84) > > at > > > org.apache.tapestry5.ioc.internal.RegistryImpl.perform(RegistryImpl.java:1264) > > at > > > org.apache.tapestry5.internal.services.RequestOperationTracker.handleComponentEvent(RequestOperationTracker.java:47) > > at $ComponentRequestHandler_18c715615aaee.handleComponentEvent(Unknown > > Source) at > > > org.tynamo.security.SecurityComponentRequestFilter.handleComponentEvent(SecurityComponentRequestFilter.java:41) > > at $ComponentRequestFilter_18c715615aaeb.handleComponentEvent(Unknown > > Source) at > > $ComponentRequestHandler_18c715615aaee.handleComponentEvent(Unknown > Source) > > at $ComponentRequestHandler_18c715615aac8.handleComponentEvent(Unknown > > Source) at > > > org.apache.tapestry5.internal.services.ComponentEventDispatcher.dispatch(ComponentEventDispatcher.java:48) > > at $Dispatcher_18c715615aac9.dispatch(Unknown Source) at > > $Dispatcher_18c715615aac2.dispatch(Unknown Source) at > > > org.apache.tapestry5.modules.TapestryModule$RequestHandlerTerminator.service(TapestryModule.java:305) > > at > org.healthresearch.etss.services.AppModule$1.service(AppModule.java:302) > > at $RequestFilter_18c715615aac1.service(Unknown Source) at > > $RequestHandler_18c715615aac3.service(Unknown Source) at > > > org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26) > > at $RequestHandler_18c715615aac3.service(Unknown Source) at > > > org.apache.tapestry5.modules.TapestryModule$3.service(TapestryModule.java:844) > > at $RequestHandler_18c715615aac3.service(Unknown Source) at > > > org.apache.tapestry5.modules.TapestryModule$2.service(TapestryModule.java:834) > > at $RequestHandler_18c715615aac3.service(Unknown Source) at > > > org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:89) > > at $RequestHandler_18c715615aac3.service(Unknown Source) at > > $RequestHandler_18c715615aa81.service(Unknown Source) at > > > org.apache.tapestry5.modules.TapestryModule$HttpServletRequestHandlerTerminator.service(TapestryModule.java:256) > > at > > > org.tynamo.security.services.impl.SecurityConfiguration$1.call(SecurityConfiguration.java:56) > > at > > > org.tynamo.security.services.impl.SecurityConfiguration$1.call(SecurityConfiguration.java:54) > > at > > > org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) > > at > > > org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) > > at > > > org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) > > at > > > org.tynamo.security.services.impl.SecurityConfiguration.service(SecurityConfiguration.java:54) > > at $HttpServletRequestFilter_18c715615aa80.service(Unknown Source) at > > $HttpServletRequestHandler_18c715615aa83.service(Unknown Source) at > > > org.apache.tapestry5.upload.internal.services.MultipartServletRequestFilter.service(MultipartServletRequestFilter.java:45) > > at $HttpServletRequestHandler_18c715615aa83.service(Unknown Source) at > > org.apache.tapestry5.internal.gzip.GZipFilter.service(GZipFilter.java:59) > > at $HttpServletRequestHandler_18c715615aa83.service(Unknown Source) at > > > org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62) > > at $HttpServletRequestFilter_18c715615aa7c.service(Unknown Source) at > > $HttpServletRequestHandler_18c715615aa83.service(Unknown Source) at > > > org.apache.tapestry5.modules.TapestryModule$1.service(TapestryModule.java:794) > > at $HttpServletRequestHandler_18c715615aa83.service(Unknown Source) at > > $HttpServletRequestHandler_18c715615aa7b.service(Unknown Source) at > > org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:168) at > > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) > > at > > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) > > at > > > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) > > at > > > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) > > at > > > org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) > > at > > > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) > > at > > > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) > > at > > org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) > > at > > > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) > > at > > > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) > > at > > > org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041) > > at > > > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603) > > at > > > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312) > > at > > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > > at > > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > > at java.lang.Thread.run(Thread.java:745) Caused by: > > java.lang.IllegalStateException: The active page name has not been > > specified. at > > > org.apache.tapestry5.internal.services.AjaxPartialResponseRendererImpl$1.perform(AjaxPartialResponseRendererImpl.java:86) > > at > > > org.apache.tapestry5.internal.services.AjaxPartialResponseRendererImpl$1.perform(AjaxPartialResponseRendererImpl.java:75) > > at > > > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.perform(OperationTrackerImpl.java:110) > > ... 72 more > > > > > > > > > -- > George Christman > CEO > www.CarDaddy.com > P.O. Box 735 > Johnstown, New York >