You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by ff...@apache.org on 2010/11/26 07:18:26 UTC

svn commit: r1039250 - in /cxf/branches/2.3.x-fixes: ./ rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/ rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/soap/ systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addressing/

Author: ffang
Date: Fri Nov 26 06:18:26 2010
New Revision: 1039250

URL: http://svn.apache.org/viewvc?rev=1039250&view=rev
Log:
Merged revisions 1039249 via svnmerge from 
https://svn.apache.org/repos/asf/cxf/trunk

........
  r1039249 | ffang | 2010-11-26 13:15:36 +0800 (δΊ”, 26 11 2010) | 1 line
  
  [CXF-3151]Invalid WS-A ReplyTo constant value used by WS-RM--apply patch on behalf of Aki Yoshida
........

Modified:
    cxf/branches/2.3.x-fixes/   (props changed)
    cxf/branches/2.3.x-fixes/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/ContextUtils.java
    cxf/branches/2.3.x-fixes/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/soap/MAPCodec.java
    cxf/branches/2.3.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addressing/HeaderVerifier.java
    cxf/branches/2.3.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addressing/MAPTestBase.java

Propchange: cxf/branches/2.3.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: cxf/branches/2.3.x-fixes/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/ContextUtils.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/ContextUtils.java?rev=1039250&r1=1039249&r2=1039250&view=diff
==============================================================================
--- cxf/branches/2.3.x-fixes/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/ContextUtils.java (original)
+++ cxf/branches/2.3.x-fixes/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/ContextUtils.java Fri Nov 26 06:18:26 2010
@@ -385,7 +385,9 @@ public final class ContextUtils {
                 exchange.setOutMessage(partialResponse);
                 Conduit backChannel = target.getBackChannel(inMessage,
                                                             partialResponse,
-                                                            reference);
+                                                            reference == null
+                                                            ? ContextUtils.getNoneEndpointReference()
+                                                            : reference);
 
                 if (backChannel != null) {
                     // set up interceptor chains and send message

Modified: cxf/branches/2.3.x-fixes/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/soap/MAPCodec.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/soap/MAPCodec.java?rev=1039250&r1=1039249&r2=1039250&view=diff
==============================================================================
--- cxf/branches/2.3.x-fixes/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/soap/MAPCodec.java (original)
+++ cxf/branches/2.3.x-fixes/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/soap/MAPCodec.java Fri Nov 26 06:18:26 2010
@@ -244,21 +244,23 @@ public class MAPCodec extends AbstractSo
                                     hdr, 
                                     marshaller);
                 }
-                encodeAsExposed(maps,
-                                message,
-                                maps.getReplyTo(), 
-                                Names.WSA_REPLYTO_QNAME, 
-                                EndpointReferenceType.class,
-                                hdr,
-                                marshaller);
-                if (Names.WSA_REPLYTO_QNAME.equals(duplicate)) {
+                if (needsReplyTo(maps)) {
                     encodeAsExposed(maps,
-                                    message,
-                                    maps.getReplyTo(), 
-                                    Names.WSA_REPLYTO_QNAME, 
-                                    EndpointReferenceType.class,
-                                    hdr,
-                                    marshaller);
+                            message,
+                            maps.getReplyTo(), 
+                            Names.WSA_REPLYTO_QNAME, 
+                            EndpointReferenceType.class,
+                            hdr,
+                            marshaller);
+                    if (Names.WSA_REPLYTO_QNAME.equals(duplicate)) {
+                        encodeAsExposed(maps,
+                                        message,
+                                        maps.getReplyTo(), 
+                                        Names.WSA_REPLYTO_QNAME, 
+                                        EndpointReferenceType.class,
+                                        hdr,
+                                        marshaller);
+                    }
                 }
 
                 encodeAsExposed(maps,
@@ -293,11 +295,7 @@ public class MAPCodec extends AbstractSo
                                     hdr, 
                                     marshaller);
                 }
-                if (maps.getFaultTo() != null
-                    && maps.getFaultTo().getAddress() != null
-                    && maps.getFaultTo().getAddress().getValue() != null
-                    && !maps.getFaultTo().getAddress().getValue()
-                        .equals(maps.getReplyTo().getAddress().getValue())) {
+                if (needsFaultTo(maps)) {
                     encodeAsExposed(maps,
                                     message,
                                     maps.getFaultTo(), 
@@ -337,6 +335,23 @@ public class MAPCodec extends AbstractSo
         }
     }
 
+    private boolean needsReplyTo(AddressingProperties maps) {
+        return maps.getReplyTo() != null 
+            && maps.getReplyTo().getAddress() != null
+            && maps.getReplyTo().getAddress().getValue() != null
+            && !(VersionTransformer.Names200408.WSA_NAMESPACE_NAME.equals(maps.getNamespaceURI()) 
+                && maps.getReplyTo().getAddress().getValue()
+                .equals(ContextUtils.getNoneEndpointReference().getAddress().getValue()));
+    }
+
+    private boolean needsFaultTo(AddressingProperties maps) {
+        return maps.getFaultTo() != null
+            && maps.getFaultTo().getAddress() != null
+            && maps.getFaultTo().getAddress().getValue() != null
+            && !maps.getFaultTo().getAddress().getValue()
+                .equals(maps.getReplyTo().getAddress().getValue());
+    }
+
     private void encodeReferenceParameters(AddressingProperties maps, Element header, 
                                            Marshaller marshaller) throws JAXBException {
         EndpointReferenceType toEpr = maps.getToEndpointReference();

Modified: cxf/branches/2.3.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addressing/HeaderVerifier.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addressing/HeaderVerifier.java?rev=1039250&r1=1039249&r2=1039250&view=diff
==============================================================================
--- cxf/branches/2.3.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addressing/HeaderVerifier.java (original)
+++ cxf/branches/2.3.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addressing/HeaderVerifier.java Fri Nov 26 06:18:26 2010
@@ -129,7 +129,9 @@ public class HeaderVerifier extends Abst
                                       || outgoingPartialResponse;
             verificationCache.put(MAPTest.verifyHeaders(wsaHeaders, 
                                                         partialResponse,
-                                                        isRequestLeg(message)));
+                                                        isRequestLeg(message),
+                                                        !VersionTransformer.Names200408.WSA_NAMESPACE_NAME
+                                                        .equals(currentNamespaceURI)));
         } catch (SOAPException se) {
             verificationCache.put("SOAP header verification failed: " + se);
         }

Modified: cxf/branches/2.3.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addressing/MAPTestBase.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addressing/MAPTestBase.java?rev=1039250&r1=1039249&r2=1039250&view=diff
==============================================================================
--- cxf/branches/2.3.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addressing/MAPTestBase.java (original)
+++ cxf/branches/2.3.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addressing/MAPTestBase.java Fri Nov 26 06:18:26 2010
@@ -372,7 +372,8 @@ public abstract class MAPTestBase extend
      */
     protected static String verifyHeaders(List<String> wsaHeaders,
                                           boolean partial,
-                                          boolean requestLeg) {
+                                          boolean requestLeg,
+                                          boolean replyToRequired) {
         //System.out.println("verifying headers: " + wsaHeaders);
         String ret = null;
         if (!wsaHeaders.contains(Names.WSA_MESSAGEID_NAME)) {
@@ -382,8 +383,9 @@ public abstract class MAPTestBase extend
             ret = "expected To header";
         }
        
-        if (!(wsaHeaders.contains(Names.WSA_REPLYTO_NAME)
-              || wsaHeaders.contains(Names.WSA_RELATESTO_NAME))) {
+        if (replyToRequired 
+            && !(wsaHeaders.contains(Names.WSA_REPLYTO_NAME)
+                || wsaHeaders.contains(Names.WSA_RELATESTO_NAME))) {
             ret = "expected ReplyTo or RelatesTo header";
         }
         /*