Repository: cxf
Updated Branches:
  refs/heads/master 4ac83c790 -> 21779aebd


[CXF-6506]:Client-side message context value HTTP_REQUEST_HEADERS is not shared 
between SOAP handlers


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

Branch: refs/heads/master
Commit: 21779aebde16eb81ae1af5c01928c1e0b73ef7de
Parents: 4ac83c7
Author: Jim Ma <[email protected]>
Authored: Thu Jul 23 11:00:32 2015 +0800
Committer: Jim Ma <[email protected]>
Committed: Thu Jul 23 11:00:42 2015 +0800

----------------------------------------------------------------------
 .../cxf/jaxws/handler/soap/SOAPMessageContextImpl.java |  2 +-
 .../cxf/systest/handlers/HandlerInvocationTest.java    | 13 ++++++++++++-
 2 files changed, 13 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/21779aeb/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/soap/SOAPMessageContextImpl.java
----------------------------------------------------------------------
diff --git 
a/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/soap/SOAPMessageContextImpl.java
 
b/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/soap/SOAPMessageContextImpl.java
index 6dc8af0..61f3530 100644
--- 
a/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/soap/SOAPMessageContextImpl.java
+++ 
b/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/handler/soap/SOAPMessageContextImpl.java
@@ -129,7 +129,7 @@ public class SOAPMessageContextImpl extends 
WrappedMessageContext implements SOA
                 if (!isRequestor() && isOutbound() && 
MessageContext.HTTP_RESPONSE_HEADERS.equals(key)) {
                     return null;
                 }
-                if (isRequestor() && isOutbound() && 
MessageContext.HTTP_REQUEST_HEADERS.equals(key)) {
+                if (isRequestor() && !isOutbound() && 
MessageContext.HTTP_REQUEST_HEADERS.equals(key)) {
                     return null;
                 }
             }

http://git-wip-us.apache.org/repos/asf/cxf/blob/21779aeb/systests/jaxws/src/test/java/org/apache/cxf/systest/handlers/HandlerInvocationTest.java
----------------------------------------------------------------------
diff --git 
a/systests/jaxws/src/test/java/org/apache/cxf/systest/handlers/HandlerInvocationTest.java
 
b/systests/jaxws/src/test/java/org/apache/cxf/systest/handlers/HandlerInvocationTest.java
index 5fb4bac..369f052 100644
--- 
a/systests/jaxws/src/test/java/org/apache/cxf/systest/handlers/HandlerInvocationTest.java
+++ 
b/systests/jaxws/src/test/java/org/apache/cxf/systest/handlers/HandlerInvocationTest.java
@@ -1134,7 +1134,7 @@ public class HandlerInvocationTest extends 
AbstractBusClientServerTestBase {
             assertTrue(e.getMessage().indexOf("HandleMessage throws 
exception") >= 0);
         }
     }
-
+    
     @Test
     public void testDescription() throws PingException {
         TestHandler<LogicalMessageContext> handler = new 
TestHandler<LogicalMessageContext>(false) {
@@ -1224,6 +1224,17 @@ public class HandlerInvocationTest extends 
AbstractBusClientServerTestBase {
         }
 
     }
+    
+    @Test
+    public void testHandlerMessgeContext() throws PingException {
+        MessageContextFirstHandler handler1 = new MessageContextFirstHandler();
+        MessageContextSecondHandler handler2 = new 
MessageContextSecondHandler();
+        addHandlersToChain((BindingProvider)handlerTest, handler1, handler2);
+
+        List<String> resp = handlerTest.ping();
+        assertNotNull(resp);
+        assertNotNull("handler2 can't retrieve header map from message 
context", handler2.getHeaderMap());
+    }
 
     void addHandlersToChain(BindingProvider bp, Handler<?>... handlers) {
         @SuppressWarnings("rawtypes")

Reply via email to