Imroper handling of empty ajax response with empty CDATA text node.
-------------------------------------------------------------------

                 Key: WICKET-4232
                 URL: https://issues.apache.org/jira/browse/WICKET-4232
             Project: Wicket
          Issue Type: Bug
          Components: wicket, wicket-extensions
    Affects Versions: 1.4.18
         Environment: Mac OS 10.4.11 & Safari 4.1.3 and Mac OS 10.5 & Safari 5.
            Reporter: Alexander Yatsenko


After moving one of items on Palette component at once subsequent ajax requests 
are impossible due to default's channel busy behavior ("Channel busy - 
postponing..."). 
Code tracing has shown that the problem source is possible improper 
implementation of DOMParser in mentioned browsers which lead to wrong parsing 
of empty response xml:

<?xml version="1.0" 
encoding="UTF-8"?><ajax-response><evaluate><![CDATA[]]></evaluate></ajax-response>,
 

particularly empty text node <!'CDATA[]]> hasn't been parsed. 

As a result, the processEvaluation function of WicketAjaxCall's object cause 
exception in the line of code: 

var text = node.firstChild.nodeValue; 
(because of absence of child node in evaluate's element).

As a result, all necessary steps could not be processed and default channel 
isn't closed by Request object.
The workaround found to solve this issue is to add the 
AjaxFormComponentUpdatingBehavior("onchange") to the Recorder element in 
panel's recorder factory method and override the onUpdate event with appending 
some none empty string to target object.

--
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

        

Reply via email to