You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by de...@apache.org on 2017/07/05 09:51:43 UTC

[1/2] cxf git commit: Recording .gitmergeinfo Changes

Repository: cxf
Updated Branches:
  refs/heads/3.0.x-fixes 5f15b860f -> 4499a797a


Recording .gitmergeinfo Changes


Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/4499a797
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/4499a797
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/4499a797

Branch: refs/heads/3.0.x-fixes
Commit: 4499a797ad021e8082b78d50dc6bc84fdfb77ef0
Parents: 5958e97
Author: Dennis Kieselhorst <de...@apache.org>
Authored: Wed Jul 5 11:48:19 2017 +0200
Committer: Dennis Kieselhorst <de...@apache.org>
Committed: Wed Jul 5 11:48:19 2017 +0200

----------------------------------------------------------------------
 .gitmergeinfo | 2 ++
 1 file changed, 2 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/4499a797/.gitmergeinfo
----------------------------------------------------------------------
diff --git a/.gitmergeinfo b/.gitmergeinfo
index ad7cdf3..109f791 100644
--- a/.gitmergeinfo
+++ b/.gitmergeinfo
@@ -904,6 +904,7 @@ B 7b4c14f1aadb810d5b91fa0adfa2a6bc70e45a76
 B 7b8145e65e9300931aea628251446e49f2e8bfe0
 B 7b9f72bd7c3dc778da9bee85d54f36f99c0feb23
 B 7be9bae496416baf3dea6b35d4fe8aef7767c7a6
+B 7c159a7916bb839726847e67ea87b00707b5f897
 B 7c3ce3d499651177e9e712d49c7774c5796b1524
 B 7c7404970a05900911b97c28a08665f5db3dcaa8
 B 7c7bf49e2c980e34610e0647e286ab0f5d7e63e4
@@ -1506,6 +1507,7 @@ B cd7095c49ab2be4a5667450bf67e5e4be8ec84c1
 B cd809b8526fc5620c481d4ee5a8534ccf6babae4
 B cd9d69a3c92e2c23b85e44bfbfe973c029870e78
 B cdafd372c60b7e19229d7e6a91fc69b9c5dbc69c
+B cdee5469e7bf2e0299dddc6159839c67dea28350
 B ce81b3829764996aa8d6c006ec2dd5c784e98433
 B ce992f3b0cd85ca255950289461c6c48926c8efc
 B cec8828bd220abd0d49457df707b9261b50e1a8e


[2/2] cxf git commit: [CXF-7412] avoid NPE occuring when handler chain contains a SoapHandler and empty message is received

Posted by de...@apache.org.
[CXF-7412] avoid NPE occuring when handler chain contains a SoapHandler and empty message is received


Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/5958e971
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/5958e971
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/5958e971

Branch: refs/heads/3.0.x-fixes
Commit: 5958e9711ee4a3204ad486cda22d62da5acb61f3
Parents: 5f15b86
Author: Dennis Kieselhorst <de...@apache.org>
Authored: Wed Jul 5 11:39:22 2017 +0200
Committer: Dennis Kieselhorst <de...@apache.org>
Committed: Wed Jul 5 11:48:19 2017 +0200

----------------------------------------------------------------------
 .../handler/soap/SOAPHandlerInterceptor.java    | 67 ++++++++++----------
 1 file changed, 34 insertions(+), 33 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/5958e971/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/soap/SOAPHandlerInterceptor.java
----------------------------------------------------------------------
diff --git a/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/soap/SOAPHandlerInterceptor.java b/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/soap/SOAPHandlerInterceptor.java
index db6f55f..7dfb3d4 100644
--- a/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/soap/SOAPHandlerInterceptor.java
+++ b/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/soap/SOAPHandlerInterceptor.java
@@ -138,7 +138,7 @@ public class SOAPHandlerInterceptor extends
                 message.getInterceptorChain().abort();
                 if (ep.getInFaultObserver() != null) {
                     ep.getInFaultObserver().onMessage(message);
-                    
+
                 }
             }
         }
@@ -157,12 +157,12 @@ public class SOAPHandlerInterceptor extends
     }
 
     private boolean handleMessageInternal(SoapMessage message) {
-        
+
         MessageContext context = createProtocolMessageContext(message);
         if (context == null) {
             return true;
         }
-                
+
         HandlerChainInvoker invoker = getInvoker(message);
         invoker.setProtocolMessageContext(context);
 
@@ -185,7 +185,7 @@ public class SOAPHandlerInterceptor extends
             // client side outbound
             if (getInvoker(message).isOutbound()) {
                 message.getInterceptorChain().abort();
-                
+
                 MessageObserver observer = message.getExchange().get(MessageObserver.class);
                 if (!message.getExchange().isOneWay()
                     && observer != null) {
@@ -193,7 +193,7 @@ public class SOAPHandlerInterceptor extends
                     Message responseMsg = new MessageImpl();
                     responseMsg.setExchange(message.getExchange());
                     responseMsg = e.getBinding().createMessage(responseMsg);
-    
+
                     // the request message becomes the response message
                     message.getExchange().setInMessage(responseMsg);
                     SOAPMessage soapMessage = ((SOAPMessageContext)context).getMessage();
@@ -237,7 +237,7 @@ public class SOAPHandlerInterceptor extends
                     // well for outbound case, as many outbound interceptors
                     // have their ending interceptors.
                     // For example, we can not skip MessageSenderInterceptor.
-                    chain.doInterceptStartingAfter(responseMsg, 
+                    chain.doInterceptStartingAfter(responseMsg,
                                                    SoapPreProtocolOutInterceptor.class.getName());
                 }
 
@@ -251,39 +251,40 @@ public class SOAPHandlerInterceptor extends
     @Override
     protected MessageContext createProtocolMessageContext(SoapMessage message) {
         SOAPMessageContextImpl sm = new SOAPMessageContextImpl(message);
-        
+
         Exchange exch = message.getExchange();
         setupBindingOperationInfo(exch, sm);
         SOAPMessage msg = sm.getMessage();
-        try {            
-            List<SOAPElement> params = new ArrayList<SOAPElement>();
-            message.put(MessageContext.REFERENCE_PARAMETERS, params);
-            SOAPHeader head = SAAJUtils.getHeader(msg);
-            if (head != null) {
-                Iterator<Node> it = CastUtils.cast(head.getChildElements());
-                while (it != null && it.hasNext()) {
-                    Node nd = it.next();
-                    if (nd instanceof SOAPElement) {
-                        SOAPElement el = (SOAPElement)nd;
-                        if (el.hasAttributeNS(Names.WSA_NAMESPACE_NAME, "IsReferenceParameter")
-                            && ("1".equals(el.getAttributeNS(Names.WSA_NAMESPACE_NAME,
-                                                             "IsReferenceParameter"))
-                                || Boolean.parseBoolean(el.getAttributeNS(Names.WSA_NAMESPACE_NAME,
-                                                                          "IsReferenceParameter")))) {
-                            params.add(el);
+        if (msg != null) {
+            try {
+                List<SOAPElement> params = new ArrayList<SOAPElement>();
+                message.put(MessageContext.REFERENCE_PARAMETERS, params);
+                SOAPHeader head = SAAJUtils.getHeader(msg);
+                if (head != null) {
+                    Iterator<Node> it = CastUtils.cast(head.getChildElements());
+                    while (it != null && it.hasNext()) {
+                        Node nd = it.next();
+                        if (nd instanceof SOAPElement) {
+                            SOAPElement el = (SOAPElement) nd;
+                            if (el.hasAttributeNS(Names.WSA_NAMESPACE_NAME, "IsReferenceParameter")
+                                    && ("1".equals(el.getAttributeNS(Names.WSA_NAMESPACE_NAME,
+                                    "IsReferenceParameter"))
+                                    || Boolean.parseBoolean(el.getAttributeNS(Names.WSA_NAMESPACE_NAME,
+                                    "IsReferenceParameter")))) {
+                                params.add(el);
+                            }
                         }
                     }
                 }
+                if (isRequestor(message) && msg.getSOAPPart().getEnvelope().getBody() != null
+                        && msg.getSOAPPart().getEnvelope().getBody().hasFault()) {
+                    return null;
+                }
+            } catch (SOAPException e) {
+                throw new Fault(e);
             }
-            if (isRequestor(message) && msg.getSOAPPart().getEnvelope().getBody() != null 
-                && msg.getSOAPPart().getEnvelope().getBody().hasFault()) {
-                return null;
-            }            
-        } catch (SOAPException e) {
-            throw new Fault(e);
         }
-        
-        
+
         return sm;
     }
 
@@ -310,11 +311,11 @@ public class SOAPHandlerInterceptor extends
         if (getInvoker(message).getProtocolHandlers().isEmpty()) {
             return;
         }
-        if (getInvoker(message).isOutbound() 
+        if (getInvoker(message).isOutbound()
             && !chainAlreadyContainsSAAJ(message)) {
             SAAJ_OUT.handleFault(message);
         }
-    }    
+    }
 
     protected QName getOpQName(Exchange ex, Object data) {
         SOAPMessageContextImpl sm = (SOAPMessageContextImpl)data;