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
>

Reply via email to