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

Do not initialize pages which were not rendered

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 6.12.0
    • 6.13.0, 7.0.0-M1
    • wicket
    • None

    Description

      Since WICKET-5083 (6.8.0) Wicket initializes the page before calculating whether the page is stateless.

      We identified a performance problem when a page is constructed (and thus touched) but then ignored via setResponsePage(AnotherPage.class)/RestartResponsePage and thus is not rendered and initialized.
      In this case there is no reason to check whether the page is stateful and store it. Using browser back button will go to the previous page anyway.

      For example:

      • pageA has a link to PageB
      • in PageB's constructor a RestartResponseException(PageC.class)
      • PageC is rendered

      In this example PageB will be fully initialized in org.apache.wicket.page.RequestAdapter#commitRequest to check whether it is stateful or not.
      But there is really no reason to store it at all since PageB has never been rendered.

      In our case PageB#onInitialize was expensive (read some settings from the backend) and thus we noticed the difference.

      Attachments

        1. 5415.tgz
          19 kB
          Martin Tzvetanov Grigorov

        Issue Links

          Activity

            People

              mgrigorov Martin Tzvetanov Grigorov
              mgrigorov Martin Tzvetanov Grigorov
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: