Ernesto Reinaldo Barreiro created WICKET-5039:
-------------------------------------------------

             Summary: ajax post call handlers might not get called because of 
failure on problems with processEvaluation function
                 Key: WICKET-5039
                 URL: https://issues.apache.org/jira/browse/WICKET-5039
             Project: Wicket
          Issue Type: Bug
          Components: wicket
    Affects Versions: 6.5.0, 1.5.8, 1.4.21
         Environment: any
            Reporter: Ernesto Reinaldo Barreiro
            Priority: Trivial


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