You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Daniel Kulp (JIRA)" <ji...@apache.org> on 2011/02/07 21:52:57 UTC
[jira] Updated: (CXF-3300) Missing Fault at kill of streaming
client, instead ArrayIndexOutOfBoundsException occurs
[ https://issues.apache.org/jira/browse/CXF-3300?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Daniel Kulp updated CXF-3300:
-----------------------------
Fix Version/s: NeedMoreInfo
Honestly, I'm not sure what to suggest. Just catching IOException SHOULD be ok as that's a checked exception and we just need to convert it to a RuntimeException. All other RuntimeExceptions should just be converted to a Fault in the PhaseInterceptorChain anyway. Thus, I really don't know what to suggest.
The MimeBodyPartInputStream has changed with 2.3.1 and later. Thus, an update MAY help. I don't really know though.
> 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