Author: dkulp
Date: Fri May 7 14:57:00 2010
New Revision: 942091
URL: http://svn.apache.org/viewvc?rev=942091&view=rev
Log:
Merged revisions 942081 via svnmerge from
https://svn.apache.org/repos/asf/cxf/trunk
........
r942081 | dkulp | 2010-05-07 10:23:40 -0400 (Fri, 07 May 2010) | 1 line
Work around an J2EE TCK regression
........
Modified:
cxf/branches/2.2.x-fixes/ (props changed)
cxf/branches/2.2.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/soap/SOAPHandlerFaultInInterceptor.java
Propchange: cxf/branches/2.2.x-fixes/
('svn:mergeinfo' removed)
Propchange: cxf/branches/2.2.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified:
cxf/branches/2.2.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/soap/SOAPHandlerFaultInInterceptor.java
URL:
http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/soap/SOAPHandlerFaultInInterceptor.java?rev=942091&r1=942090&r2=942091&view=diff
==============================================================================
---
cxf/branches/2.2.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/soap/SOAPHandlerFaultInInterceptor.java
(original)
+++
cxf/branches/2.2.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/soap/SOAPHandlerFaultInInterceptor.java
Fri May 7 14:57:00 2010
@@ -34,6 +34,7 @@ import javax.xml.ws.handler.Handler;
import javax.xml.ws.handler.MessageContext;
import javax.xml.ws.handler.soap.SOAPHandler;
+import org.apache.cxf.binding.soap.HeaderUtil;
import org.apache.cxf.binding.soap.SoapMessage;
import org.apache.cxf.binding.soap.interceptor.SoapInterceptor;
import org.apache.cxf.helpers.CastUtils;
@@ -77,6 +78,7 @@ public class SOAPHandlerFaultInIntercept
return;
}
+ checkUnderstoodHeaders(message);
MessageContext context = createProtocolMessageContext(message);
HandlerChainInvoker invoker = getInvoker(message);
invoker.setProtocolMessageContext(context);
@@ -93,6 +95,18 @@ public class SOAPHandlerFaultInIntercept
}
+ private void checkUnderstoodHeaders(SoapMessage soapMessage) {
+ Set<QName> paramHeaders =
HeaderUtil.getHeaderQNameInOperationParam(soapMessage);
+ if (soapMessage.getHeaders().isEmpty() && paramHeaders.isEmpty()) {
+ //the TCK expects the getHeaders method to always be
+ //called. If there aren't any headers in the message,
+ //THe MustUnderstandInterceptor quickly returns without
+ //trying to calculate the understood headers. Thus,
+ //we need to call it here.
+ getUnderstoodHeaders();
+ }
+ }
+
private void handleAbort(SoapMessage message, MessageContext context) {
if (isRequestor(message)) {