Matthias Streller created WICKET-7185:
-----------------------------------------
Summary: 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: 10.9.1, 9.23.0
Environment: - Browser: Chrome, Firefox
- JDK 17
Reporter: Matthias Streller
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)