After investigating why some of my stateful pages had a ?n redirect while others did not, I think I found a bug with the stateless page checking.

My test case is a page containing only an AjaxFallbackDefaultDataTable, but it can be reduced to a page containing a ListView with a single stateful child.

Here's my analysis:
This calls page.isPageStateless() to dertermine whether a pageId should be added

BookmarkableMapper(AbstractBookmarkableMapper).getPageInfo(IPageRequestHandler) line: 440 BookmarkableMapper(AbstractBookmarkableMapper).mapHandler(IRequestHandler) line: 387
SystemMapper(CompoundRequestMapper).mapHandler(IRequestHandler) line: 215
RequestCycle.mapUrlFor(IRequestHandler) line: 429
WebPageRenderer.respond(RequestCycle) line: 268
RenderPageRequestHandler.respond(IRequestCycle) line: 165
RequestCycle$HandlerExecutor.respond(IRequestHandler) line: 861
RequestCycle$HandlerExecutor(RequestHandlerStack).execute(IRequestHandler) line: 64
RequestCycle.execute(IRequestHandler) line: 261

The problem I see is that AbstractRepeater's onPopulate() is called during onBeforeRender() and this is not done when the stateless status of the page is first checked. Therefore, no pageId is added unless other components not located inside repeaters are also stateful.

The ajax links on my pages without the ?n redirections seem to work properly so it's not a big problem for me right now, but I can see how this can become a problem.

Should I create a JIRA issue for this?


To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org

Reply via email to