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 2013/07/10 15:10:08 UTC
svn commit: r1501755 - in /cxf/trunk:
rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/JAXRSInvoker.java
systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/AbstractJAXRSContinuationsTest.java
Author: sergeyb
Date: Wed Jul 10 13:10:08 2013
New Revision: 1501755
URL: http://svn.apache.org/r1501755
Log:
Releasing contexts if AsyncResponse is not immediately processed
Modified:
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/JAXRSInvoker.java
cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/AbstractJAXRSContinuationsTest.java
Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/JAXRSInvoker.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/JAXRSInvoker.java?rev=1501755&r1=1501754&r2=1501755&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/JAXRSInvoker.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/JAXRSInvoker.java Wed Jul 10 13:10:08 2013
@@ -189,8 +189,12 @@ public class JAXRSInvoker extends Abstra
asyncResponse = (AsyncResponseImpl)inMessage.get(AsyncResponse.class);
}
result = invoke(exchange, resourceObject, methodToInvoke, params);
- if (asyncResponse != null && !asyncResponse.suspendContinuationIfNeeded()) {
- result = handleAsyncResponse(exchange, asyncResponse);
+ if (asyncResponse != null) {
+ if (!asyncResponse.suspendContinuationIfNeeded()) {
+ result = handleAsyncResponse(exchange, asyncResponse);
+ } else {
+ providerFactory.clearThreadLocalProxies();
+ }
}
} catch (Fault ex) {
Object faultResponse;
Modified: cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/AbstractJAXRSContinuationsTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/AbstractJAXRSContinuationsTest.java?rev=1501755&r1=1501754&r2=1501755&view=diff
==============================================================================
--- cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/AbstractJAXRSContinuationsTest.java (original)
+++ cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/AbstractJAXRSContinuationsTest.java Wed Jul 10 13:10:08 2013
@@ -58,6 +58,16 @@ public abstract class AbstractJAXRSConti
}
@Test
+ public void testImmediateResumeSubresource() throws Exception {
+ WebClient wc = WebClient.create("http://localhost:" + getPort()
+ + "/bookstore/books/subresources/books/resume");
+ WebClient.getConfig(wc).getHttpConduit().getClient().setReceiveTimeout(1000000L);
+ wc.accept("text/plain");
+ String str = wc.get(String.class);
+ assertEquals("immediateResume", str);
+ }
+
+ @Test
public void testGetBookNotFound() throws Exception {
WebClient wc = WebClient.create("http://localhost:" + getPort() + "/bookstore/books/notfound");
wc.accept("text/plain");