From 3dde10558afaa04c08eed54d84665cc3de5b7441 Mon Sep 17 00:00:00 2001 From: Michael McMahon Date: Thu, 22 Jul 2010 17:26:33 +0100 Subject: [PATCH] 6952017: HttpURLConnection chunked encoding issue (Http request splitting) Reviewed-by: chegar --- .../net/www/protocol/http/HttpURLConnection.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/jdk/src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java b/jdk/src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java index 713c7d85c21..5ca92ef544f 100644 --- a/jdk/src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java +++ b/jdk/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();