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 2010/01/08 15:38:28 UTC

svn commit: r897216 - in /cxf/branches/2.1.x-fixes: ./ api/src/main/java/org/apache/cxf/phase/ rt/transports/http/src/main/java/org/apache/cxf/transport/http/ rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/soap/ systests/ws-specs/ systests/ws-sp...

Author: dkulp
Date: Fri Jan  8 14:38:27 2010
New Revision: 897216

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

................
  r897057 | dkulp | 2010-01-07 18:43:06 -0500 (Thu, 07 Jan 2010) | 10 lines
  
  Merged revisions 897052 via svnmerge from 
  https://svn.apache.org/repos/asf/cxf/trunk
  
  ........
    r897052 | dkulp | 2010-01-07 18:31:16 -0500 (Thu, 07 Jan 2010) | 2 lines
    
    [CXF-2591] Fix problem of handleFault not being called on interceptors
    for transport exceptions with Async calls.
  ........
................

Added:
    cxf/branches/2.1.x-fixes/systests/ws-specs/src/test/resources/wsdl_systest_wsspec/add_numbers-binding.xml
      - copied unchanged from r897057, cxf/branches/2.2.x-fixes/systests/ws-specs/src/test/resources/wsdl_systest_wsspec/add_numbers-binding.xml
Modified:
    cxf/branches/2.1.x-fixes/   (props changed)
    cxf/branches/2.1.x-fixes/api/src/main/java/org/apache/cxf/phase/PhaseInterceptorChain.java
    cxf/branches/2.1.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java
    cxf/branches/2.1.x-fixes/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/soap/MAPCodec.java
    cxf/branches/2.1.x-fixes/systests/ws-specs/pom.xml
    cxf/branches/2.1.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_disable/AddNumberImpl.java
    cxf/branches/2.1.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_feature/AddNumberImpl.java
    cxf/branches/2.1.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_fromwsdl/AddNumberImpl.java
    cxf/branches/2.1.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/AddNumberImpl.java
    cxf/branches/2.1.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/WSAPureWsdlTest.java

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

Modified: cxf/branches/2.1.x-fixes/api/src/main/java/org/apache/cxf/phase/PhaseInterceptorChain.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/api/src/main/java/org/apache/cxf/phase/PhaseInterceptorChain.java?rev=897216&r1=897215&r2=897216&view=diff
==============================================================================
--- cxf/branches/2.1.x-fixes/api/src/main/java/org/apache/cxf/phase/PhaseInterceptorChain.java (original)
+++ cxf/branches/2.1.x-fixes/api/src/main/java/org/apache/cxf/phase/PhaseInterceptorChain.java Fri Jan  8 14:38:27 2010
@@ -390,7 +390,7 @@
     }
     
     @SuppressWarnings("unchecked")
-    private void unwind(Message message) {
+    public void unwind(Message message) {
         while (iterator.hasPrevious()) {
             Interceptor currentInterceptor = iterator.previous();
             if (isFineLogging) {

Modified: cxf/branches/2.1.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java?rev=897216&r1=897215&r2=897216&view=diff
==============================================================================
--- cxf/branches/2.1.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java (original)
+++ cxf/branches/2.1.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java Fri Jan  8 14:38:27 2010
@@ -62,6 +62,7 @@
 import org.apache.cxf.message.ExchangeImpl;
 import org.apache.cxf.message.Message;
 import org.apache.cxf.message.MessageImpl;
+import org.apache.cxf.phase.PhaseInterceptorChain;
 import org.apache.cxf.service.model.EndpointInfo;
 import org.apache.cxf.transport.AbstractConduit;
 import org.apache.cxf.transport.Destination;
@@ -2046,10 +2047,9 @@
                         try {
                             handleResponseInternal();
                         } catch (Exception e) {
-                            Message inMessage = new MessageImpl();
-                            inMessage.setExchange(outMessage.getExchange());
-                            inMessage.setContent(Exception.class, e);
-                            incomingObserver.onMessage(inMessage);
+                            ((PhaseInterceptorChain)outMessage.getInterceptorChain()).unwind(outMessage);
+                            outMessage.setContent(Exception.class, e);
+                            outMessage.getInterceptorChain().getFaultObserver().onMessage(outMessage);
                         }
                     }
                 };

Modified: cxf/branches/2.1.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.1.x-fixes/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/soap/MAPCodec.java?rev=897216&r1=897215&r2=897216&view=diff
==============================================================================
--- cxf/branches/2.1.x-fixes/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/soap/MAPCodec.java (original)
+++ cxf/branches/2.1.x-fixes/rt/ws/addr/src/main/java/org/apache/cxf/ws/addressing/soap/MAPCodec.java Fri Jan  8 14:38:27 2010
@@ -92,6 +92,10 @@
         transformer = new VersionTransformer(this);
     } 
 
+    public Map<String, Exchange> getUncorrelatedExchanges() {
+        return uncorrelatedExchanges;
+    }
+    
     /**
      * @return the set of SOAP headers understood by this handler 
      */

Modified: cxf/branches/2.1.x-fixes/systests/ws-specs/pom.xml
URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/systests/ws-specs/pom.xml?rev=897216&r1=897215&r2=897216&view=diff
==============================================================================
--- cxf/branches/2.1.x-fixes/systests/ws-specs/pom.xml (original)
+++ cxf/branches/2.1.x-fixes/systests/ws-specs/pom.xml Fri Jan  8 14:38:27 2010
@@ -33,24 +33,6 @@
     <build>
         <plugins>
             <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>build-helper-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>add-test-source</id>
-                        <phase>generate-test-sources</phase>
-                        <goals>
-                            <goal>add-test-source</goal>
-                        </goals>
-                        <configuration>
-                            <sources>
-                                <source>${basedir}/src/test/generated</source>
-                            </sources>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
                 <groupId>org.apache.cxf</groupId>
                 <artifactId>cxf-codegen-plugin</artifactId>
                 <version>${project.version}</version>

Modified: cxf/branches/2.1.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_disable/AddNumberImpl.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_disable/AddNumberImpl.java?rev=897216&r1=897215&r2=897216&view=diff
==============================================================================
--- cxf/branches/2.1.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_disable/AddNumberImpl.java (original)
+++ cxf/branches/2.1.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_disable/AddNumberImpl.java Fri Jan  8 14:38:27 2010
@@ -19,12 +19,17 @@
 
 package org.apache.cxf.systest.ws.addr_disable;
 
+import java.util.concurrent.Future;
+
 import javax.jws.WebService;
+import javax.xml.ws.AsyncHandler;
+import javax.xml.ws.Response;
 import javax.xml.ws.soap.Addressing;
 
 import org.apache.cxf.systest.ws.addr_feature.AddNumbersFault;
 import org.apache.cxf.systest.ws.addr_feature.AddNumbersFault_Exception;
 import org.apache.cxf.systest.ws.addr_feature.AddNumbersPortType;
+import org.apache.cxf.systest.ws.addr_feature.AddNumbersResponse;
 
 // Jax-WS 2.1 WS-Addressing FromWsdl
 
@@ -55,4 +60,31 @@
 
         return number1 + number2;
     }
+
+    public Response<AddNumbersResponse> addNumbers2Async(int number1, int number2) {
+        return null;
+    }
+
+    public Future<?> addNumbers2Async(int number1, int number2,
+                                      AsyncHandler<AddNumbersResponse> asyncHandler) {
+        return null;
+    }
+
+    public Response<AddNumbersResponse> addNumbers3Async(int number1, int number2) {
+        return null;
+    }
+
+    public Future<?> addNumbers3Async(int number1, int number2,
+                                      AsyncHandler<AddNumbersResponse> asyncHandler) {
+        return null;
+    }
+
+    public Response<AddNumbersResponse> addNumbersAsync(int number1, int number2) {
+        return null;
+    }
+
+    public Future<?> addNumbersAsync(int number1, int number2,
+                                     AsyncHandler<AddNumbersResponse> asyncHandler) {
+        return null;
+    }
 }

Modified: cxf/branches/2.1.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_feature/AddNumberImpl.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_feature/AddNumberImpl.java?rev=897216&r1=897215&r2=897216&view=diff
==============================================================================
--- cxf/branches/2.1.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_feature/AddNumberImpl.java (original)
+++ cxf/branches/2.1.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_feature/AddNumberImpl.java Fri Jan  8 14:38:27 2010
@@ -19,7 +19,11 @@
 
 package org.apache.cxf.systest.ws.addr_feature;
 
+import java.util.concurrent.Future;
+
 import javax.jws.WebService;
+import javax.xml.ws.AsyncHandler;
+import javax.xml.ws.Response;
 import javax.xml.ws.soap.Addressing;
 
 // Jax-WS 2.1 WS-Addressing FromJava
@@ -51,4 +55,31 @@
 
         return number1 + number2;
     }
+
+    public Response<AddNumbersResponse> addNumbers2Async(int number1, int number2) {
+        return null;
+    }
+
+    public Future<?> addNumbers2Async(int number1, int number2, 
+                                      AsyncHandler<AddNumbersResponse> asyncHandler) {
+        return null;
+    }
+
+    public Response<AddNumbersResponse> addNumbers3Async(int number1, int number2) {
+        return null;
+    }
+
+    public Future<?> addNumbers3Async(int number1, int number2, 
+                                      AsyncHandler<AddNumbersResponse> asyncHandler) {
+        return null;
+    }
+
+    public Response<AddNumbersResponse> addNumbersAsync(int number1, int number2) {
+        return null;
+    }
+
+    public Future<?> addNumbersAsync(int number1, int number2, 
+                                     AsyncHandler<AddNumbersResponse> asyncHandler) {
+        return null;
+    }
 }

Modified: cxf/branches/2.1.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_fromwsdl/AddNumberImpl.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_fromwsdl/AddNumberImpl.java?rev=897216&r1=897215&r2=897216&view=diff
==============================================================================
--- cxf/branches/2.1.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_fromwsdl/AddNumberImpl.java (original)
+++ cxf/branches/2.1.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_fromwsdl/AddNumberImpl.java Fri Jan  8 14:38:27 2010
@@ -19,11 +19,16 @@
 
 package org.apache.cxf.systest.ws.addr_fromwsdl;
 
+import java.util.concurrent.Future;
+
 import javax.jws.WebService;
+import javax.xml.ws.AsyncHandler;
+import javax.xml.ws.Response;
 
 import org.apache.cxf.systest.ws.addr_feature.AddNumbersFault;
 import org.apache.cxf.systest.ws.addr_feature.AddNumbersFault_Exception;
 import org.apache.cxf.systest.ws.addr_feature.AddNumbersPortType;
+import org.apache.cxf.systest.ws.addr_feature.AddNumbersResponse;
 
 // Jax-WS 2.1 WS-Addressing FromWsdl
 
@@ -53,4 +58,31 @@
 
         return number1 + number2;
     }
+
+    public Response<AddNumbersResponse> addNumbers2Async(int number1, int number2) {
+        return null;
+    }
+
+    public Future<?> addNumbers2Async(int number1, int number2, 
+                                      AsyncHandler<AddNumbersResponse> asyncHandler) {
+        return null;
+    }
+
+    public Response<AddNumbersResponse> addNumbers3Async(int number1, int number2) {
+        return null;
+    }
+
+    public Future<?> addNumbers3Async(int number1, int number2, 
+                                      AsyncHandler<AddNumbersResponse> asyncHandler) {
+        return null;
+    }
+
+    public Response<AddNumbersResponse> addNumbersAsync(int number1, int number2) {
+        return null;
+    }
+
+    public Future<?> addNumbersAsync(int number1, int number2,
+                                     AsyncHandler<AddNumbersResponse> asyncHandler) {
+        return null;
+    }
 }

Modified: cxf/branches/2.1.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/AddNumberImpl.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/AddNumberImpl.java?rev=897216&r1=897215&r2=897216&view=diff
==============================================================================
--- cxf/branches/2.1.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/AddNumberImpl.java (original)
+++ cxf/branches/2.1.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/AddNumberImpl.java Fri Jan  8 14:38:27 2010
@@ -19,11 +19,16 @@
 
 package org.apache.cxf.systest.ws.addr_wsdl;
 
+import java.util.concurrent.Future;
+
 import javax.jws.WebService;
+import javax.xml.ws.AsyncHandler;
+import javax.xml.ws.Response;
 
 import org.apache.cxf.systest.ws.addr_feature.AddNumbersFault;
 import org.apache.cxf.systest.ws.addr_feature.AddNumbersFault_Exception;
 import org.apache.cxf.systest.ws.addr_feature.AddNumbersPortType;
+import org.apache.cxf.systest.ws.addr_feature.AddNumbersResponse;
 
 
 @WebService(serviceName = "AddNumbersService",
@@ -52,4 +57,31 @@
 
         return number1 + number2;
     }
+
+    public Response<AddNumbersResponse> addNumbers2Async(int number1, int number2) {
+        return null;
+    }
+
+    public Future<?> addNumbers2Async(int number1, int number2,  
+                                      AsyncHandler<AddNumbersResponse> asyncHandler) {
+        return null;
+    }
+
+    public Response<AddNumbersResponse> addNumbers3Async(int number1, int number2) {
+        return null;
+    }
+
+    public Future<?> addNumbers3Async(int number1, int number2, 
+                                      AsyncHandler<AddNumbersResponse> asyncHandler) {
+        return null;
+    }
+
+    public Response<AddNumbersResponse> addNumbersAsync(int number1, int number2) {
+        return null;
+    }
+
+    public Future<?> addNumbersAsync(int number1, int number2, 
+                                     AsyncHandler<AddNumbersResponse> asyncHandler) {
+        return null;
+    }
 }

Modified: cxf/branches/2.1.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/WSAPureWsdlTest.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/WSAPureWsdlTest.java?rev=897216&r1=897215&r2=897216&view=diff
==============================================================================
--- cxf/branches/2.1.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/WSAPureWsdlTest.java (original)
+++ cxf/branches/2.1.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/addr_wsdl/WSAPureWsdlTest.java Fri Jan  8 14:38:27 2010
@@ -20,13 +20,24 @@
 package org.apache.cxf.systest.ws.addr_wsdl;
 
 import java.io.ByteArrayOutputStream;
+import java.io.IOException;
 import java.net.URL;
+import java.util.concurrent.ExecutionException;
+
 import javax.xml.namespace.QName;
 import javax.xml.ws.BindingProvider;
+import javax.xml.ws.Response;
 
+import org.apache.cxf.endpoint.Client;
+import org.apache.cxf.frontend.ClientProxy;
+import org.apache.cxf.interceptor.Interceptor;
+import org.apache.cxf.message.Message;
 import org.apache.cxf.systest.ws.AbstractWSATestBase;
 import org.apache.cxf.systest.ws.addr_feature.AddNumbersPortType;
+import org.apache.cxf.systest.ws.addr_feature.AddNumbersResponse;
 import org.apache.cxf.systest.ws.addr_feature.AddNumbersService;
+import org.apache.cxf.ws.addressing.soap.MAPCodec;
+
 import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -50,7 +61,8 @@
     public void testBasicInvocation() throws Exception {
         ByteArrayOutputStream input = setupInLogging();
         ByteArrayOutputStream output = setupOutLogging();
-
+        
+        Response<AddNumbersResponse> resp;
         AddNumbersPortType port = getPort();
 
         ((BindingProvider)port).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, 
@@ -64,6 +76,25 @@
 
         assertTrue(output.toString().indexOf(expectedOut) != -1);
         assertTrue(input.toString().indexOf(expectedIn) != -1);
+        
+        
+        resp = port.addNumbers3Async(1, 2);
+        assertEquals(3, resp.get().getReturn());
+
+        ((BindingProvider)port).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,
+                                                        "http://localhost:9094/doesntexist");
+        resp = port.addNumbers3Async(1, 2);
+        try {
+            resp.get();
+        } catch (ExecutionException ex) {
+            assertTrue(ex.getCause() instanceof IOException);
+            Client c = ClientProxy.getClient(port);
+            for (Interceptor<? extends Message> m : c.getOutInterceptors()) {
+                if (m instanceof MAPCodec) {
+                    assertTrue(((MAPCodec)m).getUncorrelatedExchanges().isEmpty());
+                }
+            }
+        }
     }
 
     private AddNumbersPortType getPort() {