On Tue, 26 Nov 2024 09:05:47 GMT, Volkan Yazıcı <d...@openjdk.org> wrote:
>> This PR, addressing 8343791, changes `Socket::connect()` methods to close >> the `Socket` in the event that the connection cannot be established, the >> timeout expires before the connection is established, or the socket address >> is unresolved. >> >> `tier3` tests pass against the 9f00f61d3b7fa42a5e23a04f80bb4bb1a2076ef2. > > Volkan Yazıcı has updated the pull request with a new target base due to a > merge or a rebase. The pull request now contains 23 commits: > > - Merge remote-tracking branch 'upstream/master' into > Socket-CloseOnFailure-8343791 > - Add tests using real sockets > - Add tests with real sockets > - Relax assertion to fix failing `IDNTest` > - Merge remote-tracking branch 'upstream/master' into > Socket-CloseOnFailure-8343791 > - Reflect behavioral changes to `SocketAdaptor` > - Improve variable names > - Improve naming in tests > - Handle `SocketTimeoutException` in `NioSocketImpl::connect()` > - Revert `UHE` message change in `NioSocketImpl` > - ... and 13 more: https://git.openjdk.org/jdk/compare/9793e73b...e0fb7061 test/jdk/java/net/Socket/CloseOnFailureTest.java line 345: > 343: SocketAddress serverSocketAddress = > serverSocket().getLocalSocketAddress(); > 344: try (Socket socket = > createConnectedSocket(serverSocketAddress)) { > 345: assertReconnectFailure(() -> > socket.connect(REFUSING_SOCKET_ADDRESS)); I needed to delegate the assertion to the implementation because when I call `connect()` on a `Socket` created using `SocketChannel.open(address).socket()` and `new Socket(address, port)`, the former throws an `AlreadyConnectedException`, whereas the latter throws a `SocketException`. Is this discrepancy expected? ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/22160#discussion_r1858089593