Author: ffang Date: Tue Oct 16 03:56:34 2012 New Revision: 1398633 URL: http://svn.apache.org/viewvc?rev=1398633&view=rev Log: Merged revisions 1398632 via svnmerge from https://svn.apache.org/repos/asf/cxf/branches/2.6.x-fixes
................ r1398632 | ffang | 2012-10-16 11:48:03 +0800 (二, 16 10 2012) | 9 lines Merged revisions 1398629 via svnmerge from https://svn.apache.org/repos/asf/cxf/trunk ........ r1398629 | ffang | 2012-10-16 11:35:43 +0800 (二, 16 10 2012) | 1 line [CXF-4565]per JAXWS spec 9.3.2.1, if outbound throw ProtocolException and No response is expected then the message processing stops and the handlerFault method of handlers shouldn't get invoked ........ ................ Modified: cxf/branches/2.5.x-fixes/ (props changed) cxf/branches/2.5.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/HandlerChainInvoker.java Propchange: cxf/branches/2.5.x-fixes/ ------------------------------------------------------------------------------ Merged /cxf/trunk:r1398629 Merged /cxf/branches/2.6.x-fixes:r1398632 Propchange: cxf/branches/2.5.x-fixes/ ------------------------------------------------------------------------------ Binary property 'svnmerge-integrated' - no diff available. Modified: cxf/branches/2.5.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/HandlerChainInvoker.java URL: http://svn.apache.org/viewvc/cxf/branches/2.5.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/HandlerChainInvoker.java?rev=1398633&r1=1398632&r2=1398633&view=diff ============================================================================== --- cxf/branches/2.5.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/HandlerChainInvoker.java (original) +++ cxf/branches/2.5.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/HandlerChainInvoker.java Tue Oct 16 03:56:34 2012 @@ -277,8 +277,16 @@ public class HandlerChainInvoker { //The fault is raised from previous handlers, in this case, we only invoke handleFault //if the fault is a ProtocolException - if (fault != null && !(fault instanceof ProtocolException)) { - return true; + if (fault != null) { + if (!(fault instanceof ProtocolException)) { + return true; + } else if (!responseExpected && !messageDirectionReversed) { + // According to jsr224 9.3.2.1, + // If throw ProtocolException or a subclass: + // No response, normal message processing stops, close is called on each previously invoked handler + // in the chain, the exception is dispatched (see section 9.1.2.3). + return true; + } } if (LOG.isLoggable(Level.FINE)) {
