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 2012/10/19 20:37:16 UTC
svn commit: r1400214 - in
/cxf/trunk/rt/transports/http-hc/src/main/java/org/apache/cxf/transport/http/asyncclient:
AsyncHTTPConduit.java CXFHttpAsyncResponseConsumer.java
Author: dkulp
Date: Fri Oct 19 18:37:16 2012
New Revision: 1400214
URL: http://svn.apache.org/viewvc?rev=1400214&view=rev
Log:
Minor update so on a loaded system, if it failed to put the item on the queue, try again on the first data packet
Modified:
cxf/trunk/rt/transports/http-hc/src/main/java/org/apache/cxf/transport/http/asyncclient/AsyncHTTPConduit.java
cxf/trunk/rt/transports/http-hc/src/main/java/org/apache/cxf/transport/http/asyncclient/CXFHttpAsyncResponseConsumer.java
Modified: cxf/trunk/rt/transports/http-hc/src/main/java/org/apache/cxf/transport/http/asyncclient/AsyncHTTPConduit.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http-hc/src/main/java/org/apache/cxf/transport/http/asyncclient/AsyncHTTPConduit.java?rev=1400214&r1=1400213&r2=1400214&view=diff
==============================================================================
--- cxf/trunk/rt/transports/http-hc/src/main/java/org/apache/cxf/transport/http/asyncclient/AsyncHTTPConduit.java (original)
+++ cxf/trunk/rt/transports/http-hc/src/main/java/org/apache/cxf/transport/http/asyncclient/AsyncHTTPConduit.java Fri Oct 19 18:37:16 2012
@@ -474,11 +474,16 @@ public class AsyncHTTPConduit extends UR
c.getCredentialsProvider().setCredentials(AuthScope.ANY, creds);
}
c.execute(new CXFHttpAsyncRequestProducer(entity, outbuf),
- new CXFHttpAsyncResponseConsumer(inbuf, responseCallback),
+ new CXFHttpAsyncResponseConsumer(this, inbuf, responseCallback),
ctx,
callback);
}
+ protected void retrySetHttpResponse(HttpResponse r) {
+ if (httpResponse == null && isAsync) {
+ setHttpResponse(r);
+ }
+ }
protected synchronized void setHttpResponse(HttpResponse r) {
httpResponse = r;
if (isAsync) {
@@ -487,7 +492,7 @@ public class AsyncHTTPConduit extends UR
handleResponseOnWorkqueue(false, true);
isAsync = false; // don't trigger another start on next block. :-)
} catch (Exception ex) {
- ex.printStackTrace();
+ //ignore, we'll try again on the next consume;
}
}
notifyAll();
Modified: cxf/trunk/rt/transports/http-hc/src/main/java/org/apache/cxf/transport/http/asyncclient/CXFHttpAsyncResponseConsumer.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/transports/http-hc/src/main/java/org/apache/cxf/transport/http/asyncclient/CXFHttpAsyncResponseConsumer.java?rev=1400214&r1=1400213&r2=1400214&view=diff
==============================================================================
--- cxf/trunk/rt/transports/http-hc/src/main/java/org/apache/cxf/transport/http/asyncclient/CXFHttpAsyncResponseConsumer.java (original)
+++ cxf/trunk/rt/transports/http-hc/src/main/java/org/apache/cxf/transport/http/asyncclient/CXFHttpAsyncResponseConsumer.java Fri Oct 19 18:37:16 2012
@@ -21,6 +21,7 @@ package org.apache.cxf.transport.http.as
import java.io.IOException;
+import org.apache.cxf.transport.http.asyncclient.AsyncHTTPConduit.AsyncWrappedOutputStream;
import org.apache.http.HttpException;
import org.apache.http.HttpResponse;
import org.apache.http.nio.ContentDecoder;
@@ -31,16 +32,21 @@ import org.apache.http.protocol.HttpCont
public class CXFHttpAsyncResponseConsumer implements HttpAsyncResponseConsumer<Boolean> {
private final SharedInputBuffer buf;
+ private final AsyncWrappedOutputStream outstream;
private final CXFResponseCallback responseCallback;
private volatile boolean completed;
private volatile Exception exception;
+ private volatile HttpResponse response;
public CXFHttpAsyncResponseConsumer(
- final SharedInputBuffer buf, final CXFResponseCallback responseCallback) {
+ final AsyncWrappedOutputStream asyncWrappedOutputStream,
+ final SharedInputBuffer buf,
+ final CXFResponseCallback responseCallback) {
super();
- this.buf = buf;
+ this.outstream = asyncWrappedOutputStream;
this.responseCallback = responseCallback;
+ this.buf = buf;
}
@Override
@@ -56,12 +62,14 @@ public class CXFHttpAsyncResponseConsume
}
@Override
- public void responseReceived(final HttpResponse response) throws IOException, HttpException {
+ public void responseReceived(final HttpResponse resp) throws IOException, HttpException {
+ response = resp;
responseCallback.responseReceived(response);
}
@Override
public void consumeContent(final ContentDecoder dec, final IOControl ioc) throws IOException {
+ outstream.retrySetHttpResponse(response);
buf.consumeContent(dec, ioc);
}