cxf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Richard Opalka <ropa...@redhat.com>
Subject Re: CXF Continuations Not Portable Issue
Date Mon, 26 Nov 2012 13:57:19 GMT
Hi Sergey,

On 11/26/2012 01:31 PM, Sergey Beryozkin wrote:
> Hi Richard
> On 26/11/12 12:29, Richard Opalka wrote:
>> Hi Sergey,
>>
>>
>> On 11/26/2012 01:21 PM, 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
>>>> ---
>>>>
>>>> JBossWeb is strictly following these ISE guidelines (is not lenient
>>>> like e.g. Jakarta Tomcat).
>>>
>>> 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...
>>
>> Makes sense to me. I had a look to our JBoss Web code again and I
>> noticed one suspicious line there - I'm going to discuss it with our
>> folks.
>>
> 
> Oh, thanks for that, I've just sent one more follow-up, sorry about  the
> noise, should've waited :-)

Let's see what our Servlet experts will say -
https://issues.jboss.org/browse/JBWEB-256

> 
> Cheers, Sergey
> 
>>>
>>>>
>>>> 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
>>
>>>
>>> Thanks, Sergey
>>>
>>>>
>>>> Cheers,
>>>>
>>>> Rio
>>>>
>>>
>>
>>
> 
> 


-- 
Richard Opalka
Principal Software Engineer
JBoss, by Red Hat
Cell: +420 731 186 942

Mime
View raw message