diff --git a/src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java b/src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java index 713c7d85c215fd6bab44ec3e87e961f3e173ad99..5ca92ef544f1929a494b56ba66d231365fdf46d0 100644 --- a/src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java +++ b/src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java @@ -463,9 +463,12 @@ public class HttpURLConnection extends java.net.HttpURLConnection { "application/x-www-form-urlencoded"); } + boolean chunked = false; + if (streaming()) { if (chunkLength != -1) { requests.set ("Transfer-Encoding", "chunked"); + chunked = true; } else { /* fixed content length */ if (fixedContentLengthLong != -1) { requests.set ("Content-Length", @@ -485,6 +488,16 @@ public class HttpURLConnection extends java.net.HttpURLConnection { } } + if (!chunked) { + if (requests.findValue("Transfer-Encoding") != null) { + requests.remove("Transfer-Encoding"); + if (logger.isLoggable(PlatformLogger.WARNING)) { + logger.warning( + "use streaming mode for chunked encoding"); + } + } + } + // get applicable cookies based on the uri and request headers // add them to the existing request headers setCookieHeader();