Wicket
  1. Wicket
  2. WICKET-5309

No page id appended to some stateful pages using repeaters

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 6.9.1
    • Fix Version/s: 6.10.0, 7.0.0-M1
    • Component/s: None
    • Labels:

      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.

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

        Issue Links

          Activity

          Hide
          Bertrand Guay-Paquet added a comment - - edited

          According to Sven Meier, probably caused by WICKET-4995

          Show
          Bertrand Guay-Paquet added a comment - - edited According to Sven Meier, probably caused by WICKET-4995
          Hide
          Bertrand Guay-Paquet added a comment -

          Quickstart

          Show
          Bertrand Guay-Paquet added a comment - Quickstart
          Hide
          Sven Meier added a comment -

          page url can change after render

          Show
          Sven Meier added a comment - page url can change after render
          Hide
          Sven Meier added a comment -

          The page url is now checked again after rendering (as before WICKET-4995). Note that the fix for WICKET-4995 is still in place, i.e. the page is acquired first to prevent a stateful page to be rendered twice.

          Show
          Sven Meier added a comment - The page url is now checked again after rendering (as before WICKET-4995 ). Note that the fix for WICKET-4995 is still in place, i.e. the page is acquired first to prevent a stateful page to be rendered twice.

            People

            • Assignee:
              Sven Meier
              Reporter:
              Bertrand Guay-Paquet
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development