[ 
https://issues.apache.org/jira/browse/CXF-3300?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12992137#comment-12992137
 ] 

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: https://issues.apache.org/jira/browse/CXF-3300
>             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:  java.io.IOException: Invalid chunk header" 
>   at org.apache.catalina.connector.InputBuffer.realReadBytes(line 342)
>   at org.apache.tomcat.util.buf.ByteChunk.substract(line 420)
> caused by: java.io.IOException: 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 org.apache.cxf.attachement.MimeBodyPartInputStream.read(line 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: http://www.atlassian.com/software/jira

        

Reply via email to