You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by se...@apache.org on 2010/09/08 15:09:42 UTC

svn commit: r995041 - in /cxf/trunk/rt/ws/addr/src: main/java/org/apache/cxf/ws/addressing/MAPAggregator.java test/java/org/apache/cxf/ws/addressing/MAPAggregatorTest.java

Author: sergeyb
Date: Wed Sep  8 13:09:42 2010
New Revision: 995041

URL: http://svn.apache.org/viewvc?rev=995041&view=rev
Log:
[CXF-2981] : retaining original generic ReplyTo EPRs if no alternative EPRs are available

Modified:
    cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/MAPAggregator.java
    cxf/trunk/rt/ws/addr/src/test/java/org/apache/cxf/ws/addressing/MAPAggregatorTest.java

Modified: cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/MAPAggregator.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/MAPAggregator.java?rev=995041&r1=995040&r2=995041&view=diff
==============================================================================
--- cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/MAPAggregator.java (original)
+++ cxf/trunk/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/MAPAggregator.java Wed Sep  8 13:09:42 2010
@@ -838,7 +838,7 @@ public class MAPAggregator extends Abstr
             // current invocation
             EndpointReferenceType replyTo = maps.getReplyTo();
             if (ContextUtils.isGenericAddress(replyTo)) {
-                replyTo = getReplyTo(message);
+                replyTo = getReplyTo(message, replyTo);
                 if (replyTo == null
                     || (isOneway
                         && (replyTo.getAddress() == null
@@ -895,11 +895,12 @@ public class MAPAggregator extends Abstr
         }
     }
 
-    private EndpointReferenceType getReplyTo(Message message) {
+    private EndpointReferenceType getReplyTo(Message message, 
+                                             EndpointReferenceType originalReplyTo) {
         Exchange exchange = message.getExchange();
         Endpoint info = exchange.get(Endpoint.class);
         if (info == null) {
-            return null;
+            return originalReplyTo;
         }
         synchronized (info) {
             EndpointInfo ei = info.getEndpointInfo();
@@ -914,7 +915,7 @@ public class MAPAggregator extends Abstr
                 return dest.getAddress();
             }
         }
-        return null;
+        return originalReplyTo;
     }
 
     private Destination createDecoupledDestination(Message message) {

Modified: cxf/trunk/rt/ws/addr/src/test/java/org/apache/cxf/ws/addressing/MAPAggregatorTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/addr/src/test/java/org/apache/cxf/ws/addressing/MAPAggregatorTest.java?rev=995041&r1=995040&r2=995041&view=diff
==============================================================================
--- cxf/trunk/rt/ws/addr/src/test/java/org/apache/cxf/ws/addressing/MAPAggregatorTest.java (original)
+++ cxf/trunk/rt/ws/addr/src/test/java/org/apache/cxf/ws/addressing/MAPAggregatorTest.java Wed Sep  8 13:09:42 2010
@@ -348,6 +348,32 @@ public class MAPAggregatorTest extends A
             // expected
         }
     }
+    
+    @Test
+    public void testReplyToWithAnonymousAddressRetained() throws Exception {
+        Message message = new MessageImpl();  
+        Exchange exchange = new ExchangeImpl();
+        message.setExchange(exchange);
+        exchange.setOutMessage(message);
+        setUpMessageProperty(message,
+                             REQUESTOR_ROLE,
+                             Boolean.TRUE);
+        AddressingPropertiesImpl maps = new AddressingPropertiesImpl();
+        EndpointReferenceType replyTo = new EndpointReferenceType();
+        replyTo.setAddress(ContextUtils.getAttributedURI(Names.WSA_ANONYMOUS_ADDRESS));
+        maps.setReplyTo(replyTo);
+        AttributedURIType id = 
+            ContextUtils.getAttributedURI("urn:uuid:12345");
+        maps.setMessageID(id);
+        maps.setAction(ContextUtils.getAttributedURI(""));
+        setUpMessageProperty(message,
+                             CLIENT_ADDRESSING_PROPERTIES,
+                             maps);
+        aggregator.mediate(message, false);
+        AddressingProperties props = 
+            (AddressingProperties)message.get(JAXWSAConstants.CLIENT_ADDRESSING_PROPERTIES_OUTBOUND);
+        assertSame(replyTo, props.getReplyTo());
+    }
 
     
     private Message setUpMessage(boolean requestor,