Okay, i've fixed it. Thanks for pointing out the problem. Can you
please confirm that the fix solves it for you?

On 3/15/07, Martin Funk <[EMAIL PROTECTED]> wrote:
Here ist is:

https://issues.apache.org/jira/browse/WICKET-392


The chocking happens even on the same channel.

Martin



Matej Knopp schrieb:
> But the channel is only "dead" if the xmlhtprequest wasn't processed
> properly. And that should never happen. If the xmlhttprequest is in
> pol with readyState == 4, then new xmlhttprequest should be created.
>
> Can you demonstrate the behavior you're describing on a quick start
> project?
>
> -Matej
>
> On 3/15/07, Martin Funk <[EMAIL PROTECTED]> wrote:
>> Hi,
>>
>> as I see it
>>
>> Wicket.Ajax.getTransport
>>
>> sometimes returns XMLHttpRequest objects that are in "readyState == 4"
>> so they still might be processed by the "stateChangeCallback".
>>
>> Once "stateChangeCallback" reaches  "t.onreadystatechange =
>> Wicket.emptyFunction;"
>>
>> the freshly created XMLHttpRequest never calls back, the Channel its
>> been asigned to
>> never reaches "done" the Channel is dead.
>>
>> To resolve that I came up with this patch.
>> Not quite shure if it introduces more problems than it solves:-)
>> Esp. I cant tell if XMLHttpRequest.abort() sets back the readyState back
>> to 0 on all browsers.
>>
>> mf
>>
>>
>> Index: jdk-1.4/wicket/src/main/java/wicket/ajax/wicket-ajax.js
>> ===================================================================
>> --- jdk-1.4/wicket/src/main/java/wicket/ajax/wicket-ajax.js
>> (Revision 518505)
>> +++ jdk-1.4/wicket/src/main/java/wicket/ajax/wicket-ajax.js
>> (Arbeitskopie)
>> @@ -403,7 +403,7 @@
>>                         this.busy = true;
>>                         return callback();
>>                 } else {
>> -                       Wicket.Log.info("Chanel busy - postponing...");
>> +                       Wicket.Log.info("Channel busy - postponing...");
>>                         if (this.type == 's') // stack
>>                                 this.callbacks.push(callback);
>>                         else /* drop */
>> @@ -487,7 +487,7 @@
>>         getTransport: function() {
>>                 var t = Wicket.Ajax.transports;
>>                 for (var i = 0; i < t.length; ++i) {
>> -                       if (t[i].readyState == 0 || t[i].readyState
>> == 4) {
>> +                       if (t[i].readyState == 0) {
>>                                 return t[i];
>>                         }
>>                 }
>> @@ -713,7 +713,7 @@
>>                                 this.done();
>>                         this.failure();
>>                 }
>> -               t.onreadystatechange = Wicket.emptyFunction;
>> +               t.abort();
>>                 this.transport = null;
>>          }
>>         }
>>
>>
>


Reply via email to