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 2007/06/28 04:33:12 UTC
svn commit: r551429 -
/incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java
Author: dkulp
Date: Wed Jun 27 19:33:11 2007
New Revision: 551429
URL: http://svn.apache.org/viewvc?view=rev&rev=551429
Log:
if chunking, don't pass the flush through until close or extra "tiny" chunks are created.
Modified:
incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java
Modified: incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java?view=diff&rev=551429&r1=551428&r2=551429
==============================================================================
--- incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java (original)
+++ incubator/cxf/trunk/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HTTPConduit.java Wed Jun 27 19:33:11 2007
@@ -494,6 +494,8 @@
} else {
connection.setRequestMethod("POST");
}
+
+ boolean isChunking = false;
// We must cache the request if we have basic auth supplier
// without preemptive basic auth.
if (basicAuthSupplier != null) {
@@ -519,6 +521,7 @@
// documented client constant.
//use -1 and allow the URL connection to pick a default value
connection.setChunkedStreamingMode(-1);
+ isChunking = true;
}
}
@@ -546,7 +549,8 @@
message.setContent(OutputStream.class,
new WrappedOutputStream(
- message, connection, needToCacheRequest));
+ message, connection,
+ needToCacheRequest, isChunking));
// We are now "ready" to "send" the message.
}
@@ -1652,6 +1656,12 @@
private boolean cachingForRetransmision;
/**
+ * If we are going to be chunking, we won't flush till close which causes
+ * new chunks, small network packets, etc..
+ */
+ private final boolean chunking;
+
+ /**
* This field contains the output stream with which we cache
* the request. It maybe null if we are not caching.
*/
@@ -1662,12 +1672,14 @@
WrappedOutputStream(
Message m,
HttpURLConnection c,
- boolean possibleRetransmit
+ boolean possibleRetransmit,
+ boolean isChunking
) {
super();
this.outMessage = m;
connection = c;
cachingForRetransmision = possibleRetransmit;
+ chunking = isChunking;
}
/**
@@ -1712,6 +1724,12 @@
}
}
+ public void flush() throws IOException {
+ if (!chunking) {
+ super.flush();
+ }
+ }
+
/**
* Perform any actions required on stream closure (handle response etc.)
*/
@@ -1719,6 +1737,7 @@
if (!written) {
handleHeadersTrustCaching();
}
+ super.flush();
super.close();
handleResponse();
}