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 (JIRA)" <ji...@apache.org> on 2013/02/21 15:22:15 UTC

[jira] [Resolved] (WICKET-5039) Manual invocation of FunctionsExecutor#notify() is broken

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

Martin Grigorov resolved WICKET-5039.
-------------------------------------

       Resolution: Fixed
    Fix Version/s: 6.7.0

The code is fixed and javadoc is added to AjaxRequestTarget #prepend and #appendJavaScript
                
> Manual invocation of FunctionsExecutor#notify() is broken
> ---------------------------------------------------------
>
>                 Key: WICKET-5039
>                 URL: https://issues.apache.org/jira/browse/WICKET-5039
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 6.4.0
>         Environment: any
>            Reporter: Ernesto Reinaldo Barreiro
>            Assignee: Martin Grigorov
>            Priority: Trivial
>             Fix For: 6.7.0
>
>         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