[
https://issues.apache.org/jira/browse/WICKET-117?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12802862#action_12802862
]
Matteo Vaccari commented on WICKET-117:
---------------------------------------
I also have this problem, but I cannot find any reference to
"target-only-active-page" in the 1.3.6 sources. Can you please point me to
some reference to this solution?
> Page expired using ajax
> -----------------------
>
> Key: WICKET-117
> URL: https://issues.apache.org/jira/browse/WICKET-117
> Project: Wicket
> Issue Type: Bug
> Components: wicket
> Affects Versions: 1.2.2, 1.2.3, 1.2.6
> Reporter: Adam Smyczek
> Assignee: Johan Compagner
> Fix For: 1.2.7
>
>
> We are still getting page expired using wicket with ajax. The problem is
> related to the PageMap and occurs as following:
> 1. We have a page with an ajax time behavior that updates a status every 2
> sec. This page is the most top one on the page map stack.
> 2. On this page you click the link to go to another page. The new page is
> added to the page stack but the response is expensive, let's say it take 1-2
> sec. to build the page.
> 3. During the response is processed, the browser triggers the ajax request,
> to the server. The request goes to the PageMap to get the current page.
> The page of the ajax request is the second top one on the stack, so the
> current code assumes the user clicked the back button and removes the
> top one page.
> 4. In the browser everything seams to be ok, but the page in the browser and
> in the PageMap don't match anymore. So any new request to the server will
> cause page expired.
> This is very simple to reproduce, following is a snippet for the quickstart:
> --- Index.java ---
> public class Index extends QuickStartPage
> {
> public Index(final PageParameters parameters)
> {
> // link to the same page
> Link link = new Link("link")
> {
> public void onClick()
> {
> setResponsePage(Index.class);
> }
> };
> add(link);
> // we just need a delayed call to the server
> AjaxEventBehavior behavrior = new AjaxEventBehavior("onClick")
> {
> protected void onEvent(AjaxRequestTarget target)
> {
> }
> };
> behavrior.setThrottleDelay(Duration.milliseconds(200));
> link.add(behavrior);
> }
> protected void onAfterRender()
> {
> // simulate expensive response
> try
> {
> Thread.sleep(500);
> }
> catch (InterruptedException e)
> {
> e.printStackTrace();
> }
> }
> }
> --- Index.html ---
> <html>
> <body>
> <a wicket:id="link">Click</a>
> </body>
> </html>
> I used Firefox only to reproduce it, not sure if this occurs with other
> browser as well.
> We have a small workaround('fix') for it. In
> DefaultRequestTargetResolverStrategy we check the type of the request. If it
> is a IUnversionedBehaviorListener, we don't update the PageMap in the
> access() method. It is not a clean solution but it works so far.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.