cxf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sergey Beryozkin <sberyoz...@gmail.com>
Subject Re: CXF Continuations Not Portable Issue
Date Mon, 26 Nov 2012 12:30:10 GMT
More comments below,

On 26/11/12 12:21, Sergey Beryozkin wrote:
> Hi Richard
> On 26/11/12 12:15, Richard Opalka wrote:
>> Dear CXF developers,
>>
>> I'm analyzing our recent CXF continuation related failures in CI
>> and I identified the following problem:
>>
>> SVN commit id: 1409193
>>
>> introduced
>>
>> ---
>> @@ -57,32 +57,30 @@ public class Servlet3ContinuationProvider implements
>> ContinuationProvider {
>>
>> if (continuation == null) {
>> continuation = new Servlet3Continuation();
>> + } else {
>> + continuation.startAsyncAgain();
>> }
>> return continuation;
>> }
>> ---
>>
>> method call that causes our JBossWeb to throw IllegalStateException.
>> According to startAsync() javadoc for Throws:
>>
>> http://docs.oracle.com/javaee/6/api/javax/servlet/ServletRequest.html#startAsync%28%29
>>
>>
>> ---
>> Throws:
>> IllegalStateException - if this request is within the scope of a
>> filter or servlet that does not support asynchronous operations (that
>> is, isAsyncSupported() returns false), or if this method is called again
>> without any asynchronous dispatch (resulting from one of the
>> AsyncContext#dispatch methods), is called outside the scope of any such
>> dispatch, or is called again within the scope of the same dispatch, or
>> if the response has already been closed
>> ---

I actually read "is called again within the scope of the same dispatch" 
differently, a continuation thread is dispatched one or many times, but 
if you get startAsync() called within a specific thread dispatch more 
than once then it is indeed an ISE.

I guess my reading may be wrong - but the fact that I get the tests 
working with Tomcat and Jetty might imply that may be JBossWeb might 
treat this case specifically ?

>>
>> JBossWeb is strictly following these ISE guidelines (is not lenient
>> like e.g. Jakarta Tomcat).

CC-ing Bill too - the feedback is welcome

Finally, what continuation tests are actually failing, can you provide 
more info please

Cheers, Sergey

>
> What would you say about
> "Subsequent invocations of this method, or its overloaded variant, will
> return the same AsyncContext instance, reinitialized as appropriate. " ?
>
> Without this call I can not have the test doing multiple timeouts on the
> same continuation working...
>
>>
>> The last issue that I identified with Servlet3ContinuationProvider is
>> the isNew flag has incorrect initial value - it should be *true*.
> Sure - needs to be fixed
>
> Thanks, Sergey
>
>>
>> Cheers,
>>
>> Rio
>>
>


Mime
View raw message