You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2009/11/17 02:16:33 UTC

svn commit: r881078 - in /cxf/branches/2.1.x-fixes: ./ rt/core/src/main/java/org/apache/cxf/interceptor/ systests/jaxws/src/test/java/org/apache/cxf/systest/provider/

Author: dkulp
Date: Tue Nov 17 01:16:33 2009
New Revision: 881078

URL: http://svn.apache.org/viewvc?rev=881078&view=rev
Log:
Merged revisions 880999 via svnmerge from 
https://svn.apache.org/repos/asf/cxf/branches/2.2.x-fixes

................
  r880999 | dkulp | 2009-11-16 17:11:15 -0500 (Mon, 16 Nov 2009) | 10 lines
  
  Merged revisions 880986 via svnmerge from 
  https://svn.apache.org/repos/asf/cxf/trunk
  
  ........
    r880986 | dkulp | 2009-11-16 17:01:46 -0500 (Mon, 16 Nov 2009) | 2 lines
    
    [CXF-2543] On the client side, check the response qname to make sure it
    is what was expected
  ........
................

Modified:
    cxf/branches/2.1.x-fixes/   (props changed)
    cxf/branches/2.1.x-fixes/rt/core/src/main/java/org/apache/cxf/interceptor/DocLiteralInInterceptor.java
    cxf/branches/2.1.x-fixes/rt/core/src/main/java/org/apache/cxf/interceptor/Messages.properties
    cxf/branches/2.1.x-fixes/systests/jaxws/src/test/java/org/apache/cxf/systest/provider/HWSoapMessageDocProvider.java
    cxf/branches/2.1.x-fixes/systests/jaxws/src/test/java/org/apache/cxf/systest/provider/ProviderClientServerTest.java

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

Modified: cxf/branches/2.1.x-fixes/rt/core/src/main/java/org/apache/cxf/interceptor/DocLiteralInInterceptor.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/rt/core/src/main/java/org/apache/cxf/interceptor/DocLiteralInInterceptor.java?rev=881078&r1=881077&r2=881078&view=diff
==============================================================================
--- cxf/branches/2.1.x-fixes/rt/core/src/main/java/org/apache/cxf/interceptor/DocLiteralInInterceptor.java (original)
+++ cxf/branches/2.1.x-fixes/rt/core/src/main/java/org/apache/cxf/interceptor/DocLiteralInInterceptor.java Tue Nov 17 01:16:33 2009
@@ -99,6 +99,11 @@
     
                 // Determine if there is a wrapper class
                 if (msgInfo.getMessageParts().get(0).getTypeClass() != null) {
+                    QName startQName = xmlReader.getName();
+                    if (client && !msgInfo.getMessageParts().get(0).getConcreteName().equals(startQName)) {
+                        throw new Fault("UNEXPECTED_WRAPPER_ELEMENT", LOG, null, startQName,
+                                        msgInfo.getMessageParts().get(0).getConcreteName());
+                    }
                     Object wrappedObject = dr.read(msgInfo.getMessageParts().get(0), xmlReader);
                     parameters.put(msgInfo.getMessageParts().get(0), wrappedObject);
                 } else {

Modified: cxf/branches/2.1.x-fixes/rt/core/src/main/java/org/apache/cxf/interceptor/Messages.properties
URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/rt/core/src/main/java/org/apache/cxf/interceptor/Messages.properties?rev=881078&r1=881077&r2=881078&view=diff
==============================================================================
--- cxf/branches/2.1.x-fixes/rt/core/src/main/java/org/apache/cxf/interceptor/Messages.properties (original)
+++ cxf/branches/2.1.x-fixes/rt/core/src/main/java/org/apache/cxf/interceptor/Messages.properties Tue Nov 17 01:16:33 2009
@@ -39,4 +39,5 @@
 COULD_NOT_FIND_SEICLASS=Could not find the class: {0}
 EXCEPTION_WHILE_WRITING_FAULT = Exception occurred while writing fault.
 EXCEPTION_WHILE_CREATING_EXCEPTION = Exception occurred while creating exception: {0}
+UNEXPECTED_WRAPPER_ELEMENT = Unexpected wrapper element {0} found.   Expected {1}.
  

Modified: cxf/branches/2.1.x-fixes/systests/jaxws/src/test/java/org/apache/cxf/systest/provider/HWSoapMessageDocProvider.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/systests/jaxws/src/test/java/org/apache/cxf/systest/provider/HWSoapMessageDocProvider.java?rev=881078&r1=881077&r2=881078&view=diff
==============================================================================
--- cxf/branches/2.1.x-fixes/systests/jaxws/src/test/java/org/apache/cxf/systest/provider/HWSoapMessageDocProvider.java (original)
+++ cxf/branches/2.1.x-fixes/systests/jaxws/src/test/java/org/apache/cxf/systest/provider/HWSoapMessageDocProvider.java Tue Nov 17 01:16:33 2009
@@ -30,8 +30,11 @@
 import javax.xml.ws.ServiceMode;
 import javax.xml.ws.WebServiceProvider;
 
+import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 
+import org.apache.cxf.helpers.DOMUtils;
+
 //The following wsdl file is used.
 //wsdlLocation = "/trunk/testutils/src/main/resources/wsdl/hello_world.wsdl"
 @WebServiceProvider(portName = "SoapProviderPort", serviceName = "SOAPProviderService",
@@ -72,7 +75,13 @@
             if (n.getLocalName().equals(sayHi.getLocalPart())) {
                 response = sayHiResponse;
             } else if (n.getLocalName().equals(greetMe.getLocalPart())) {
-                response = greetMeResponse;
+                Element el = DOMUtils.getFirstElement(n);
+                String v = DOMUtils.getContent(el);
+                if (v.contains("Return sayHi")) {
+                    response = sayHiResponse;
+                } else {
+                    response = greetMeResponse;
+                }
             }
         } catch (Exception ex) {
             ex.printStackTrace();

Modified: cxf/branches/2.1.x-fixes/systests/jaxws/src/test/java/org/apache/cxf/systest/provider/ProviderClientServerTest.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/systests/jaxws/src/test/java/org/apache/cxf/systest/provider/ProviderClientServerTest.java?rev=881078&r1=881077&r2=881078&view=diff
==============================================================================
--- cxf/branches/2.1.x-fixes/systests/jaxws/src/test/java/org/apache/cxf/systest/provider/ProviderClientServerTest.java (original)
+++ cxf/branches/2.1.x-fixes/systests/jaxws/src/test/java/org/apache/cxf/systest/provider/ProviderClientServerTest.java Tue Nov 17 01:16:33 2009
@@ -77,6 +77,13 @@
         String response2 = new String("Bonjour");
         try {
             Greeter greeter = service.getPort(portName, Greeter.class);
+            try {
+                greeter.greetMe("Return sayHi");
+                fail("Should have thrown an exception");
+            } catch (Exception ex) {
+                //expected 
+                assertTrue(ex.getMessage().contains("sayHiResponse"));
+            }
             for (int idx = 0; idx < 2; idx++) {
                 String greeting = greeter.greetMe("Milestone-" + idx);
                 assertNotNull("no response received from service", greeting);
@@ -89,6 +96,7 @@
         } catch (UndeclaredThrowableException ex) {
             throw (Exception)ex.getCause();
         }
+        
     }
 
 }