[ 
https://issues.apache.org/jira/browse/WICKET-7185?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Matthias Streller updated WICKET-7185:
--------------------------------------
    Description: 
When a page using at least two _AbstractAjaxTimerBehavior_ instances is 
refreshed while one of the timers also send a request, the page enters an 
endless refresh loop.
 
The problem occurs only, if the URL contains page parameters.
 
Attached I provided a small working example. Steps to reproduce: 
 # Visit demo page with page parameters e.g. 
[https://localhost:8443?foo=bar|https://localhost:8443/?foo=bar]
 # After page is loaded refresh page

 
After that, the page will start to refresh itself in an interval of approx 10 
seconds.
 
The timer event runs into an StalePageException, which causes a new refresh of 
the page:
{code:java}
[qtp1705929636-34] WARN RequestCycleExtra - Handling the following exception
org.apache.wicket.core.request.mapper.StalePageException: A request to page 
'[Page class = org.tracetronic.HomePage, id = 0, render count = 6]' has been 
made with stale 'renderCount'. The page will be re-rendered.{code}
It is unclear why the timer event triggered by the newly rendered page result 
in an invalid request again.
 
What's also interesting, if the page uses only one AbstractAjaxTimerBehavior, 
there will be only one 'unwanted' refresh of the page and after that the page 
continues to work normally.

  was:
When a page using at least two _AbstractAjaxTimerBehavior_ instances is 
refreshed while one of the timers also send a request, the page enters an 
endless refresh loop.
 
The problem occurs only, if the URL contains page parameters.
 
Attached I provided a small working example. Steps to reproduce:  # Visit demo 
page with page parameters e.g. 
[https://localhost:8443?foo=bar|https://localhost:8443/?foo=bar]
 # After page is loaded refresh page

 
After that, the page will start to refresh itself in an interval of approx 10 
seconds.
 
The timer event runs into an StalePageException, which causes a new refresh of 
the page:

{code:java}
[qtp1705929636-34] WARN RequestCycleExtra - Handling the following exception
org.apache.wicket.core.request.mapper.StalePageException: A request to page 
'[Page class = org.tracetronic.HomePage, id = 0, render count = 6]' has been 
made with stale 'renderCount'. The page will be re-rendered.{code}
It is unclear why the timer event triggered by the newly rendered page result 
in an invalid request again.
 
What's also interesting, if the page uses only one AbstractAjaxTimerBehavior, 
there will be only one 'unwanted' refresh of the page and after that the page 
continues to work normally.


> Page refresh triggers endless refresh loop if multiple 
> AbstractAjaxTimerBehavior are used
> -----------------------------------------------------------------------------------------
>
>                 Key: WICKET-7185
>                 URL: https://issues.apache.org/jira/browse/WICKET-7185
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 9.23.0, 10.9.1
>         Environment: - Browser: Chrome, Firefox
> - JDK 17
>            Reporter: Matthias Streller
>            Priority: Major
>         Attachments: refresh-loop-quickstart.zip
>
>
> When a page using at least two _AbstractAjaxTimerBehavior_ instances is 
> refreshed while one of the timers also send a request, the page enters an 
> endless refresh loop.
>  
> The problem occurs only, if the URL contains page parameters.
>  
> Attached I provided a small working example. Steps to reproduce: 
>  # Visit demo page with page parameters e.g. 
> [https://localhost:8443?foo=bar|https://localhost:8443/?foo=bar]
>  # After page is loaded refresh page
>  
> After that, the page will start to refresh itself in an interval of approx 10 
> seconds.
>  
> The timer event runs into an StalePageException, which causes a new refresh 
> of the page:
> {code:java}
> [qtp1705929636-34] WARN RequestCycleExtra - Handling the following exception
> org.apache.wicket.core.request.mapper.StalePageException: A request to page 
> '[Page class = org.tracetronic.HomePage, id = 0, render count = 6]' has been 
> made with stale 'renderCount'. The page will be re-rendered.{code}
> It is unclear why the timer event triggered by the newly rendered page result 
> in an invalid request again.
>  
> What's also interesting, if the page uses only one AbstractAjaxTimerBehavior, 
> there will be only one 'unwanted' refresh of the page and after that the page 
> continues to work normally.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to