On Wed, 20 Nov 2024 08:23:29 GMT, Alan Bateman <al...@openjdk.org> wrote:

>> Volkan Yazıcı has updated the pull request incrementally with one additional 
>> commit since the last revision:
>> 
>>   Apply review feedback from Alan
>
> src/java.base/share/classes/java/net/Socket.java line 625:
> 
>> 623:      *          is already connected or the socket is closed
>> 624:      * @throws  UnknownHostException if the endpoint is an unresolved
>> 625:      *          {@link InetSocketAddress}, the socket is closed
> 
> It might be better to drop ", the socket is closed" from the exception 
> description as it may be mis-read to mean that it gets thrown when the socket 
> is closed.

Fixed in 424fc8ccd3a495a49f859f0cfc563cf463b3efeb.

> src/java.base/share/classes/java/net/Socket.java line 662:
> 
>> 660:      * </ol>
>> 661:      * <p> Besides above noted cases, the socket will also be closed 
>> when a
>> 662:      * connection attempt fails with an {@link IOException}.
> 
> Is this a left-over, I assume it should be removed.

Doh! :facepalm: Fixed in 424fc8ccd3a495a49f859f0cfc563cf463b3efeb.

> src/java.base/share/classes/java/net/Socket.java line 669:
> 
>> 667:      *          is already connected or the socket is closed
>> 668:      * @throws  SocketTimeoutException if timeout expires before 
>> connecting,
>> 669:      *          the socket is closed
> 
> The updated method description makes it clear that the the socket will be 
> closed if the timeout expires before the connection is established, shouldn't 
> need to change the exception description.

Fixed in 424fc8ccd3a495a49f859f0cfc563cf463b3efeb.

> src/java.base/share/classes/java/net/Socket.java line 709:
> 
>> 707:         }
>> 708: 
>> 709:         try {
> 
> At (old) L680, it checks that endpoint is an InetSocketAddress. We should 
> also check that it resolved, as in:
> 
>         if (epoint.isUnresolved()) {
>             close();
>             throw new UnknownHostException(epoint.getHostName() + " is 
> unresolved");
>         }
> 
> The benefit is the the constructor does the validation before is delegates to 
> the SocketImpl. We could change the SocketImpl to throw IAE for this case, it 
> doesn't matter because it will never happen if Socket rejects it.

Implemented in 424fc8ccd3a495a49f859f0cfc563cf463b3efeb, along with a test. Are 
you sure we want to have a `close()` there instead of `closeQuietly()`?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/22160#discussion_r1850254216
PR Review Comment: https://git.openjdk.org/jdk/pull/22160#discussion_r1850254539
PR Review Comment: https://git.openjdk.org/jdk/pull/22160#discussion_r1850254974
PR Review Comment: https://git.openjdk.org/jdk/pull/22160#discussion_r1850251862

Reply via email to