RFR: 8264824: java/net/Inet6Address/B6206527.java doesn't close ServerSocket properly

Michael McMahon michaelm at openjdk.java.net
Tue Apr 13 09:06:58 UTC 2021


On Mon, 12 Apr 2021 15:21:05 GMT, Conor Cleary <ccleary at openjdk.org> wrote:

> ### Description
> `Inet6Address/B6206527.java` test creates two instances of ServerSocket, both of which are explicity bound to a Link-Local address. Neither of the ServerSocket instances are explicitly closed meaning there is no guarantee that their associated resources are freed. 
> 
> ### Fix
> Each ServerSocket is instantiated in a try-with-resources block. This ensures that in both cases of success or failure within the try-with-resources block, the sockets are always closed thanks to ServerSocket implementing Closeable. The test is also now started in othervm mode as an added assurance of the test's isolation in the event that resources are not freed.

test/jdk/java/net/Inet6Address/B6206527.java line 31:

> 29:  * @build jdk.test.lib.NetworkConfiguration
> 30:  *        jdk.test.lib.Platform
> 31:  * @run main/othervm B6206527

Does it need othervm mode? Best to not use it if it can be avoided.

test/jdk/java/net/Inet6Address/B6206527.java line 47:

> 45:         }
> 46: 
> 47:         try (ServerSocket ss = new ServerSocket()) {

Maybe for brevity you could use `try (var ss = new ServerSocket()) {`

Only a suggestion. It's up to you.

-------------

PR: https://git.openjdk.java.net/jdk/pull/3437


More information about the net-dev mailing list