Hi Vyom, On the surface, your patch seems reasonable. I would be more confident if there was a test, but I understand it might well be one of these noreg-hard issues.
I've put it on my TODO list to import your patch and try to test it in our test system. I'll get back to you when I have managed to find some cycles to do so. best regards, -- daniel On 14/02/2020 04:57, Vyom Tiwari wrote:
Hi All, Please find the below fix which resolves the issue( https://bugs.openjdk.java.net/browse/JDK-8238579). "HttpURLConnection.writeRequests()" retry in case of any write failure, during retry it creates new HttpsClient without connectTimeout & readTimeout. Below fix sets the connect & read timeout. Thanks, Vyom diff -r 7e6165c9c606 src/java.base/share/classes/sun/net/www/protocol/https/AbstractDelegateHttpsURLConnection.java --- a/src/java.base/share/classes/sun/net/www/protocol/https/AbstractDelegateHttpsURLConnection.java Thu Feb 13 17:14:45 2020 -0800 +++ b/src/java.base/share/classes/sun/net/www/protocol/https/AbstractDelegateHttpsURLConnection.java Fri Feb 14 10:11:06 2020 +0530 @@ -87,10 +87,15 @@ */ public void setNewClient (URL url, boolean useCache) throws IOException { + int readTimeout = getReadTimeout(); http = HttpsClient.New (getSSLSocketFactory(), url, getHostnameVerifier(), - useCache, this); + null, + -1, + useCache, + getConnectTimeout(), this); + http.setReadTimeout(readTimeout); ((HttpsClient)http).afterConnect(); } @@ -132,10 +137,14 @@ boolean useCache) throws IOException { if (connected) return; - http = HttpsClient.New (getSSLSocketFactory(), - url, - getHostnameVerifier(), - proxyHost, proxyPort, useCache, this); + int readTimeout = getReadTimeout(); + http = HttpsClient.New(getSSLSocketFactory(), + url, + getHostnameVerifier(), + proxyHost, proxyPort, + useCache, + getConnectTimeout(), this); + http.setReadTimeout(readTimeout); connected = true; }