Uploaded image for project: 'Tapestry'
  1. Tapestry
  2. TAPESTRY-1667

Parameters bound to expansions may be cached when they should not be

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 5.0
    • 5.0.6
    • tapestry-core
    • None

    Description

      From the mailing list:

      Hi,

      I wrote a simple pager component but one parameter (currentPage)
      is not updated in a second request.

      In the template I have the following:

      <t:pager t:numberOfPages="${numberOfPages}"
      t:currentPage="${currentPage}"
      ... some other attributes ... />

      In the page class this currentPage accessor:

      public int getCurrentPage()

      { return _currentPage; }

      which is an int and has the correct values in all requests.

      The pager component contains this currentPage property

      @Parameter(required = true, defaultPrefix="prop")
      private Integer _currentPage;

      which is used in

      @BeginRender
      boolean beginRender( MarkupWriter writer )

      which returns false (no other render methods, no template).

      When I debug the code I see, that the first time, the _currentPage is
      accessed, the pages getCurrentPage method is invoked.
      In all subsequent page requests, the value of the first request is
      still stored and not updated.

      What am I doing wrong, or should T5 behave differently?

      Do I have to take any action to unbind/uncache/reset the currentPage
      property in the pager component?

      Thanx && cheers,
      Martin

      This made my think that the binding for expansions may indicate the value is cacheable, when it is not.

      Attachments

        Activity

          People

            hlship Howard Lewis Ship
            hlship Howard Lewis Ship
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: