cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Guido Reiff (JIRA)" <>
Subject [jira] Commented: (CXF-3300) Missing Fault at kill of streaming client, instead ArrayIndexOutOfBoundsException occurs
Date Tue, 08 Feb 2011 19:49:57 GMT


Guido Reiff commented on CXF-3300:

Now I'm much closer to the real problem and ... well - it can't be a CXF problem. In SLES
Environment with the unexpected behavior, there are only two CXF Interceptor-Warinings for
the outgoing transport, nothing else. So the ArrayIndexOutOfBoundsException ocures in the
context, that no message could be delivered the the client that had been killed. So the real
problem is: there is NO ClientAbortException thrown out of the underlying Catalina code. I
assume that that's a problem of the underlying environment: SLES, ESX-Server or the network.

So the bug can be closed.

If you have any ideas why a normal close of the stream is recognized in Tomcat-Context instead
of an abort of streaming I would be very grateful.

> Missing Fault at kill of streaming client, instead ArrayIndexOutOfBoundsException occurs
> ----------------------------------------------------------------------------------------
>                 Key: CXF-3300
>                 URL:
>             Project: CXF
>          Issue Type: Bug
>          Components: Core, Transports
>    Affects Versions: 2.2.9
>         Environment: JBossAS 5.1 GA on OpenSuse/Suse Linux Enterprise Server, JDK 1.6.0_22
(64-Bit), CXF within jbossws-cxf-3.3.1.GA
>            Reporter: Guido Reiff
>             Fix For: NeedMoreInfo
> Large binary data is streamed to server using MTOM and stored to an Oracle 11g Database
using its JDBC-Driver. In the development environment using a current OpenSuse Version: when
the client stops uploading (tested by kill of process)  CXF throws a org.apache.cxf.interceptor.Fault

>   at org.apache.cxf.transport.http.AbstractHTTPDestination.cacheInput(line 490)
> caused by: ClientAbortException: Invalid chunk header" 
>   at org.apache.catalina.connector.InputBuffer.realReadBytes(line 342)
>   at org.apache.tomcat.util.buf.ByteChunk.substract(line 420)
> caused by: Invalid chunk header
>   at org.apache.coyote.http11.ChunkedFilter.parseChunkHeader(line 278) 
> As the Fault is a RuntimeException the database transaction will be rolled back. Thats
the expected behavior.
> The same szenario in target environment (SLES) using identical (copied) JBoss and application
code fails as there occures an ArrayIndexOutOfBoundsException, told as Warning from PhaseInterceptorChain
>   at org.apache.tomcat.util.buf.ByteChunk.substract(line 429) 
> ... 
>   at 97) 
> ...
>   at org.apache.cxf.transport.http.AbstractHTTPDestination.cacheInput(line 488). 
> As I can see no exception is thrown out of the JDBC-Driver to my application. The transaction
is not rolled back and destructed binary data has been persisted. 
> So my questions are: 
> 1) How can there be a difference in the two environments? (Probably not your concern).
> 2) It's a bug, that only IOExceptions are thrown as org.apache.cxf.interceptor.Fault
at AbstractHTTPDestination(line 490), isn't it? The code of that method has not changed in
Version 2.3.1.
> 3) If it's not a bug in your eyes. Is there a way for CXF-Users to control the behavior
around this issue. 

This message is automatically generated by JIRA.
For more information on JIRA, see:


View raw message