[ 
https://issues.apache.org/jira/browse/WICKET-5039?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13582027#comment-13582027
 ] 

Martin Grigorov commented on WICKET-5039:
-----------------------------------------

I think Ernesto's patch should not be applied.
Wicket gives the control to the application code by giving it the 'notify' 
function as argument. The application code should assure that it is called. 
I.e. it should wrap its code in try/finally.

The problem with the broken functionality in Wicket 6.x will be addressed soon.
                
> ajax post call handlers might not get called because of failure on AJAX 
> processEvaluation function
> --------------------------------------------------------------------------------------------------
>
>                 Key: WICKET-5039
>                 URL: https://issues.apache.org/jira/browse/WICKET-5039
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 1.4.21, 1.5.8, 6.5.0
>         Environment: any
>            Reporter: Ernesto Reinaldo Barreiro
>            Priority: Trivial
>         Attachments: WICKET-5039.patch, wicket5039.tar.gz
>
>   Original Estimate: 0h
>  Remaining Estimate: 0h
>
> We are having problems on Wicket 1.4.x with and "AJAX function" 
> processEvaluation... and I see the code is practically the same at 6.x. So, 
> let's bring the subject to the list... 
> Our problem is that after evaluating some expressions with errors, screen 
> "freezes" because post-call handlers are not called. Problem seems to be 
> related to the code. 
>                                 // test if the javascript is in form of 
> identifier|code
>                               // if it is, we allow for letting the 
> javascript decide when the rest of processing will continue
>                               // by invoking identifier();
>                               var res = text.match(new 
> RegExp("^([a-z|A-Z_][a-z|A-Z|0-9_]*)\\|((.|\\n)*)$"));
>                               if (res !== null) {
>                                       var f = jQuery.noop;
>                                       text = "f = function(" + res[1] + ") {" 
> + res[2] + "};";
>                                       try {
>                                               // do the evaluation
>                                               eval(text);
>                                               f(notify);
>                                       } catch (exception) {
>                                               
> Wicket.Log.error("Wicket.Ajax.Call.processEvaluation: Exception evaluating 
> javascript: " + exception + ", text: " + text);
>                                       }
>                               } 
>  In case of error. Shouldn't it be
>                                       try {
>                                               // do the evaluation
>                                               eval(text);
>                                               f(notify);
>                                       } catch (exception) {
>                                               
> Wicket.Log.error("Wicket.Ajax.Call.processEvaluation: Exception evaluating 
> javascript: " + exception + ", text: " + text);
>                                                 notify();
>                                       }
> So that next steps in processing get called. The above solves or freezing 
> problem in case of error

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to