You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by "Chris Poulsen (JIRA)" <ji...@apache.org> on 2015/07/16 13:47:04 UTC

[jira] [Commented] (TAP5-2458) "Unable to resolve 'null' to a known page name"

    [ https://issues.apache.org/jira/browse/TAP5-2458?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14629606#comment-14629606 ] 

Chris Poulsen commented on TAP5-2458:
-------------------------------------

We see this issue as well in our code.

In our case we have a component that periodically triggers an ajax event using javascript to indicate that the page is still alive.

The containing page has activation context and the "activate" may chose to redirect if activation context is not as expected. In some cases the page is able to recover and redirects to itself (returning "this" - this is normally used for render cases).

When the ajax request hits the redirect-to-self logic in activate; we get the error "Unable to resolve 'null' to a known page name".

I'm not familiar enough with the tapestry internals to determine what the correct behavior should be.

The error with the missing page name seems to happen because the scenario described above short circuits AjaxComponentEventRequestHandler (line 90) and the name attribute is first set after the short circuit return... it could be a matter of moving the setting of the attribute up before the "if", but I don't know what is supposed to happen in this case... It would be nice if tapestry was able to handle the redirect i think, without having given it any deeper thought. ;)



> "Unable to resolve 'null' to a known page name"
> -----------------------------------------------
>
>                 Key: TAP5-2458
>                 URL: https://issues.apache.org/jira/browse/TAP5-2458
>             Project: Tapestry 5
>          Issue Type: Bug
>          Components: tapestry-core, tapestry-ioc
>    Affects Versions: 5.4, 5.3.8
>            Reporter: Andrej Kriukovskij
>
> "Unable to resolve 'null' to a known page name" exception generated on ajax event (such as asynchronous form submission) when the session is expired
> {code}
> org.apache.tapestry5.ioc.internal.OperationException: Unable to resolve 'null' to a known page name.
> 	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_2ff4008f984.handleComponentEvent(Unknown Source) 
> 	at org.apache.tapestry5.services.InitializeActivePageName.handleComponentEvent(InitializeActivePageName.java:39) 
> 	at $ComponentRequestHandler_2ff4008f984.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_2ff4008f984.handleComponentEvent(Unknown Source) 
> 	at $ComponentRequestHandler_2ff4008f94c.handleComponentEvent(Unknown Source) 
> 	at org.apache.tapestry5.internal.services.ComponentEventDispatcher.dispatch(ComponentEventDispatcher.java:48) 
> 	at $Dispatcher_2ff4008f94f.dispatch(Unknown Source) 
> 	at $Dispatcher_2ff4008f946.dispatch(Unknown Source) 
> 	at org.apache.tapestry5.modules.TapestryModule$RequestHandlerTerminator.service(TapestryModule.java:304) 
> 	at app.services.AppModule$1.service(AppModule.java:78) ~[AppModule$1.class:na]
> 	at $RequestFilter_2ff4008f945.service(Unknown Source) 
> 	at $RequestHandler_2ff4008f947.service(Unknown Source) 
> 	at org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26) 
> 	at $RequestHandler_2ff4008f947.service(Unknown Source) 
> 	at org.apache.tapestry5.modules.TapestryModule$3.service(TapestryModule.java:854) 
> 	at $RequestHandler_2ff4008f947.service(Unknown Source) 
> 	at org.apache.tapestry5.modules.TapestryModule$2.service(TapestryModule.java:844) 
> 	at $RequestHandler_2ff4008f947.service(Unknown Source) 
> 	at org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:89) 
> 	at $RequestHandler_2ff4008f947.service(Unknown Source) 
> 	at org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:105) 
> 	at org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:95) 
> 	at org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:85) 
> 	at org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:119) 
> 	at $RequestHandler_2ff4008f947.service(Unknown Source) 
> 	at $RequestHandler_2ff4008f93b.service(Unknown Source) 
> 	at org.apache.tapestry5.modules.TapestryModule$HttpServletRequestHandlerTerminator.service(TapestryModule.java:255) 
> 	at org.apache.tapestry5.internal.gzip.GZipFilter.service(GZipFilter.java:59) 
> 	at $HttpServletRequestHandler_2ff4008f93d.service(Unknown Source) 
> 	at org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62) 
> 	at $HttpServletRequestFilter_2ff4008f938.service(Unknown Source) 
> 	at $HttpServletRequestHandler_2ff4008f93d.service(Unknown Source) 
> 	at org.apache.tapestry5.modules.TapestryModule$1.service(TapestryModule.java:804) 
> 	at $HttpServletRequestHandler_2ff4008f93d.service(Unknown Source) 
> 	at $HttpServletRequestHandler_2ff4008f937.service(Unknown Source) 
> 	at org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:166) 
> 	at app.App.doFilter(App.java:56) [App.class:na]
> 	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:205) 
> 	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.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:310) 
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
> 	at java.lang.Thread.run(Thread.java:745) 
> Caused by: org.apache.tapestry5.ioc.util.UnknownValueException: Unable to resolve 'null' to a known page name.
> 	at org.apache.tapestry5.internal.services.ComponentClassResolverImpl.canonicalizePageName(ComponentClassResolverImpl.java:685) 
> 	at $ComponentClassResolver_2ff4008f92b.canonicalizePageName(Unknown Source) 
> 	at org.apache.tapestry5.internal.services.RequestPageCacheImpl.get(RequestPageCacheImpl.java:80) 
> 	at $RequestPageCache_2ff4008f98a.get(Unknown Source) 
> 	at $RequestPageCache_2ff4008f985.get(Unknown Source) 
> 	at org.apache.tapestry5.internal.services.MarkupWriterFactoryImpl.newPartialMarkupWriter(MarkupWriterFactoryImpl.java:142) 
> 	at $MarkupWriterFactory_2ff4008fa6f.newPartialMarkupWriter(Unknown Source) 
> 	at org.apache.tapestry5.internal.services.AjaxPartialResponseRendererImpl$1.perform(AjaxPartialResponseRendererImpl.java:84) 
> 	at org.apache.tapestry5.internal.services.AjaxPartialResponseRendererImpl$1.perform(AjaxPartialResponseRendererImpl.java:75) 
> 	at org.apache.tapestry5.ioc.internal.OperationTrackerImpl.perform(OperationTrackerImpl.java:110) 
> 	... 62 common frames omitted
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)