Uploaded image for project: 'Wicket'
  1. Wicket
  2. WICKET-5309

No page id appended to some stateful pages using repeaters

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 6.9.1
    • 6.10.0, 7.0.0-M1
    • None

    Description

      My test case is a page containing a ListView with a single stateful child. In that case, there is no redirect done to append a pageId to the url because the page's statefulness check is erroneous.

      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.

      See thread http://wicket-users.markmail.org/thread/6q2dmns7lqjgkok7

      I will add a quickstart.

      Attachments

        1. WICKET-5309.zip
          27 kB
          Bertrand Guay-Paquet

        Issue Links

          Activity

            People

              svenmeier Sven Meier
              berniegp Bertrand Guay-Paquet
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: