RFR: 8263364: sun/net/www/http/KeepAliveStream/KeepAliveStreamCloseWithWrongContentLength.java wedged in getInputStream
Daniel Fuchs
dfuchs at openjdk.java.net
Fri Jun 11 11:06:51 UTC 2021
On Fri, 11 Jun 2021 10:46:32 GMT, Ivan Šipka <isipka at openjdk.org> wrote:
> @dfuch could you please review, thank you.
Globally looks good - still need some cleanup to make sure everything gets closed in the end.
test/jdk/sun/net/www/http/KeepAliveStream/KeepAliveStreamCloseWithWrongContentLength.java line 56:
> 54:
> 55: ByteArrayOutputStream clientBytes;
> 56: Socket socket = null;
socket should probably be a volatile field in XServer si that it can be closed at the end of main()
test/jdk/sun/net/www/http/KeepAliveStream/KeepAliveStreamCloseWithWrongContentLength.java line 118:
> 116:
> 117: try {
> 118: XServer server = new XServer(serversocket);
You should take that statement outside of the try block
test/jdk/sun/net/www/http/KeepAliveStream/KeepAliveStreamCloseWithWrongContentLength.java line 142:
> 140: } catch (NullPointerException e) {
> 141: throw new RuntimeException (e);
> 142: } finally {
The finally block should also do:
var socket = server.socket;
if (socket != null) socket.close();
Or better add a close() method on XServer that would both close socket and serverSocket - and make XServer AutoCloseable so that you can transform your try { } finally {} into a try-with-resource.
-------------
PR: https://git.openjdk.java.net/jdk/pull/4472
More information about the net-dev
mailing list