You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Martin Grigorov (Resolved) (JIRA)" <ji...@apache.org> on 2012/01/27 10:56:40 UTC

[jira] [Resolved] (WICKET-4257) Ajax indicator getting stuck when button is pressed multiple times

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

Martin Grigorov resolved WICKET-4257.
-------------------------------------

       Resolution: Fixed
    Fix Version/s: 1.5.5
                   1.4.20
         Assignee: Martin Grigorov

Fixed.
Now if the precondition doesn't match and there is an indicator then it will be decremented.
                
> Ajax indicator getting stuck when button is pressed multiple times
> ------------------------------------------------------------------
>
>                 Key: WICKET-4257
>                 URL: https://issues.apache.org/jira/browse/WICKET-4257
>             Project: Wicket
>          Issue Type: Bug
>    Affects Versions: 1.4.19
>            Reporter: Nazaret Kazarian
>            Assignee: Martin Grigorov
>            Priority: Minor
>             Fix For: 1.4.20, 1.5.5
>
>         Attachments: ajax-indicator.rar
>
>
> http://apache-wicket.1842946.n4.nabble.com/Ajax-busy-indicator-getting-stuck-td4082837.html
> I have added a global ajax indicator to all my pages by having all 
> pages (through a TemplatePage superclass) implement the 
> IAjaxIndicatorAware interface. 
> Generally it works, but I have noticed that it is quite easy to get 
> the ajax indicator stuck spinning indefinitely, by issuing many ajax 
> calls quickly the one after the other. For example if I press an ajax 
> button multiple times quickly the busy indicator gets stuck. 
> It seems as if the Wicket.show(hide)Incrementally js functions lose 
> count of ajax requests and the busy indicator is never actually 
> hidden.
> With a little reverse engineering I noticed that maybe one of the 
> cases this happens is this: an ajax button is pressed, 
> showIncrementally is executed, but the actual ajax request is 
> postponed because its channel is busy. When the time comes to actually 
> execute the request, the request is stopped because of precondition 
> check, and thus hideIncrementally is never called. This loses the 
> count. A fix might be to call hideIncrementally when the ajax request 
> precondition is not met. As to why the precondition is not met, I am 
> guessing it's because the previous ajax request did DOM replacement in 
> a way that the precondition of the queued request is no longer met. 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira