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() {