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

Reply via email to