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

MountedMapper.mapHandler ruins Links inside mounted pages appending parameters wicket-ajax and wicket-ajax-baseurl

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 1.5-RC7
    • Fix Version/s: 1.5.1
    • Component/s: wicket
    • Labels:
      None

      Description

      With the last commit n° 1166194 method mapHandler has been added to MountedMapper class in order to solve WICKET-4014. Unfortunately this method seems to ruin Link url inside mounted page (for example home page) if this page uses AJAX.
      mapHandler modifies Link url appending parameters 'wicket-ajax' and 'wicket-ajax-baseur'l to it. In this way when we click Link we get an error from browser like this:

      " This XML file does not appear to have any style information associated with it. The document tree is shown below.
      <ajax-response><redirect>wicket/page?41</redirect></ajax-response> "

      The error message is the same for Firefox and Chromium.
      See attached quickstart.

      Warning: as I'm writing this issue, Wicket snapshot is not affected yet by this bug, so you have to run quickstart with the last source from repository.

      1. ajaxParametersCopyFix.txt
        2 kB
        Andrea Del Bene
      2. issue.zip
        29 kB
        Andrea Del Bene
      3. WICKET-4038.patch
        4 kB
        Pedro Santos

        Activity

        Hide
        mgrigorov Martin Grigorov added a comment -

        I like Pedro's approach. I'm just not sure whether something else can break. That's why I put the check in UrlInfo to prevent the leakage of Ajax related parameters in the produced Urls.

        Show
        mgrigorov Martin Grigorov added a comment - I like Pedro's approach. I'm just not sure whether something else can break. That's why I put the check in UrlInfo to prevent the leakage of Ajax related parameters in the produced Urls.
        Hide
        bitstorm Andrea Del Bene added a comment -

        Hi Pedro,

        your patch solve problem and is conceptually right, but it breaks 4 test cases:
        -InternalErrorCallsAjaxOnFailureTest
        -PageProviderTest
        -PageVersioningTest
        -MultiRequestCycleListenerCallOrderTest

        Why not simply remove ajax parameters directly inside MountedMapper (see attached patch)?

        Show
        bitstorm Andrea Del Bene added a comment - Hi Pedro, your patch solve problem and is conceptually right, but it breaks 4 test cases: -InternalErrorCallsAjaxOnFailureTest -PageProviderTest -PageVersioningTest -MultiRequestCycleListenerCallOrderTest Why not simply remove ajax parameters directly inside MountedMapper (see attached patch)?
        Hide
        pedrosans Pedro Santos added a comment -

        My first impression debugging the quickstart is that all request parameters encoded to carry framework specific information should not be propagated across all the request cycle after get consumed by framework internals.
        Goes attached a patch with this solution.

        A simpler solution would be:
        1 - tweak AbstractMapper to not encode internal flags in the URL. At encodePageParameters method for instance.
        2 - simple not add them to PageParameter objects.

        I don't know which is the best alternative of those.

        Show
        pedrosans Pedro Santos added a comment - My first impression debugging the quickstart is that all request parameters encoded to carry framework specific information should not be propagated across all the request cycle after get consumed by framework internals. Goes attached a patch with this solution. A simpler solution would be: 1 - tweak AbstractMapper to not encode internal flags in the URL. At encodePageParameters method for instance. 2 - simple not add them to PageParameter objects. I don't know which is the best alternative of those.
        Hide
        bitstorm Andrea Del Bene added a comment -

        To run quickstart click on "Show results" and then on a link below.

        Show
        bitstorm Andrea Del Bene added a comment - To run quickstart click on "Show results" and then on a link below.

          People

          • Assignee:
            mgrigorov Martin Grigorov
            Reporter:
            bitstorm Andrea Del Bene
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development