From 05cd8405d1b5e5e9015f3e69f29d96eeabd90a86 Mon Sep 17 00:00:00 2001 From: robm Date: Fri, 28 Sep 2012 04:39:02 +0100 Subject: [PATCH] 7199219: Proxy-Connection headers set incorrectly when a HttpClient is retrieved from the Keep Alive Cache Reviewed-by: chegar --- src/share/classes/sun/net/www/http/HttpClient.java | 3 +++ .../classes/sun/net/www/protocol/http/HttpURLConnection.java | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/share/classes/sun/net/www/http/HttpClient.java b/src/share/classes/sun/net/www/http/HttpClient.java index ec08b0e6b..cfbc93293 100644 --- a/src/share/classes/sun/net/www/http/HttpClient.java +++ b/src/share/classes/sun/net/www/http/HttpClient.java @@ -36,6 +36,7 @@ import sun.net.www.MeteredStream; import sun.net.www.ParseUtil; import sun.net.www.protocol.http.HttpURLConnection; import sun.util.logging.PlatformLogger; +import static sun.net.www.protocol.http.HttpURLConnection.TunnelState.*; /** * @author Herb Jellinek @@ -276,6 +277,8 @@ public class HttpClient extends NetworkClient { ret.cachedHttpClient = true; assert ret.inCache; ret.inCache = false; + if (httpuc != null && ret.needsTunneling()) + httpuc.setTunnelState(TUNNELING); PlatformLogger logger = HttpURLConnection.getHttpLogger(); if (logger.isLoggable(PlatformLogger.FINEST)) { logger.finest("KeepAlive stream retrieved from the cache, " + ret); 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 036f469a9..87fdaa82b 100644 --- a/src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java +++ b/src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java @@ -351,7 +351,7 @@ public class HttpURLConnection extends java.net.HttpURLConnection { private HttpClient reuseClient = null; /* Tunnel states */ - enum TunnelState { + public enum TunnelState { /* No tunnel */ NONE, @@ -1740,7 +1740,7 @@ public class HttpURLConnection extends java.net.HttpURLConnection { * * @param the state */ - void setTunnelState(TunnelState tunnelState) { + public void setTunnelState(TunnelState tunnelState) { this.tunnelState = tunnelState; } -- GitLab