-
Bug
-
Resolution: Duplicate
-
P3
-
None
-
6u38
FULL PRODUCT VERSION :
A DESCRIPTION OF THE PROBLEM :
The method sun.net.www.http.HttpClient#available() can throw java.net.SocketException, which can cause the creation of the HttpClient to fail. This will happen if there is a connection in the cache that has timed out and the socket has been closed.
This method was added in a recent commit:
http://hg.openjdk.java.net/jdk7u/jdk7u/jdk/diff/e6dc1d9bc70b/src/share/classes/sun/net/www/http/HttpClient.java
The exception is:
Caused by: java.net.SocketException: Socket Closed
at java.net.PlainSocketImpl.getOption(PlainSocketImpl.java:286) [rt.jar:1.6.0_38]
at java.net.Socket.getSoTimeout(Socket.java:1032) [rt.jar:1.6.0_38]
at sun.net.www.http.HttpClient.available(HttpClient.java:356) [rt.jar:1.6.0_38]
at sun.net.www.http.HttpClient.New(HttpClient.java:273) [rt.jar:1.6.0_38]
at sun.net.www.http.HttpClient.New(HttpClient.java:310) [rt.jar:1.6.0_38]
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:987) [rt.jar:1.6.0_38]
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:923) [rt.jar:1.6.0_38]
at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:841) [rt.jar:1.6.0_38]
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1031) [rt.jar:1.6.0_38]
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleHeadersTrustCaching(HTTPConduit.java:1410)
The getSoTimeout() call should probably be in a try/catch block.
It appears that other people have also run into this: http://stackoverflow.com/questions/14270311/rather-mysterious-socketexception-with-java-1-6-on-centos-4
REGRESSION. Last worked in version 7
REPRODUCIBILITY :
This bug can be reproduced often.
A DESCRIPTION OF THE PROBLEM :
The method sun.net.www.http.HttpClient#available() can throw java.net.SocketException, which can cause the creation of the HttpClient to fail. This will happen if there is a connection in the cache that has timed out and the socket has been closed.
This method was added in a recent commit:
http://hg.openjdk.java.net/jdk7u/jdk7u/jdk/diff/e6dc1d9bc70b/src/share/classes/sun/net/www/http/HttpClient.java
The exception is:
Caused by: java.net.SocketException: Socket Closed
at java.net.PlainSocketImpl.getOption(PlainSocketImpl.java:286) [rt.jar:1.6.0_38]
at java.net.Socket.getSoTimeout(Socket.java:1032) [rt.jar:1.6.0_38]
at sun.net.www.http.HttpClient.available(HttpClient.java:356) [rt.jar:1.6.0_38]
at sun.net.www.http.HttpClient.New(HttpClient.java:273) [rt.jar:1.6.0_38]
at sun.net.www.http.HttpClient.New(HttpClient.java:310) [rt.jar:1.6.0_38]
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:987) [rt.jar:1.6.0_38]
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:923) [rt.jar:1.6.0_38]
at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:841) [rt.jar:1.6.0_38]
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1031) [rt.jar:1.6.0_38]
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleHeadersTrustCaching(HTTPConduit.java:1410)
The getSoTimeout() call should probably be in a try/catch block.
It appears that other people have also run into this: http://stackoverflow.com/questions/14270311/rather-mysterious-socketexception-with-java-1-6-on-centos-4
REGRESSION. Last worked in version 7
REPRODUCIBILITY :
This bug can be reproduced often.
- duplicates
-
JDK-8009650 HttpClient available() check throws SocketException when connection has been closed
- Closed