RFR: 7116990: (spec) Socket.connect(addr,timeout) not clear if IOException because of TCP timeout [v3]

Mark Sheppard msheppar at openjdk.org
Fri Jun 13 15:23:28 UTC 2025


On Fri, 13 Jun 2025 14:36:21 GMT, Alan Bateman <alanb at openjdk.org> wrote:

>> "The timeout values noted in that text are mere examples to convey the detail that application developers need to be aware that the timeout they pass to the connect() method may not influence connection establishment failure due to timeout. They aren't exhaustive. I had considered including 21 in that text too. Alan's suggestion was to mention "60 or 75 seconds". "
>> 
>> Right, the objective is to convey to a developer that when specifying a timeout to the connect method, that this timeout may be superseded by an OS's TCP/IP configuration's Connect timeout settings.
>> 
>> This is all that needs to be said. There is no need to state any typical values, but if you do then those values need to be factually correct, and for the currently supported platforms 60 seconds is not typical, it's 21, 75, and 128 seconds
>> 
>> But if a developer takes guidance from the "typically 60 seconds" statement  on a Windows environment and set a timeout of 50 seconds, they will get
>> IOException is a java.net.ConnectException
>> java.net.ConnectException: Operation timed out
>> 
>> as reported in the original bug and as such, defeats the purpose of the apiNote
>
>> This is all that needs to be said. There is no need to state any typical values, but if you do then those values need to be factually correct, and for the currently supported platforms 60 seconds is not typical, it's 21, 75, and 128 seconds
> 
> The proposed wording in the current draft looks okay. It explains to the reader that establishing a TCP/IP connection is subject to an operating system timeout. It gives a sense of what that timeout might be, it's not hours or days, it's tens of seconds. I don't think we should attempt to list specific timeouts for specific operating system versions and configurations.

why are you insisting on specifying 60 seconds? It does not exist on any supported OS platform. There is no need to specify any value in the apiNote, all it does is add misinformation

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

PR Review Comment: https://git.openjdk.org/jdk/pull/25690#discussion_r2145324159


More information about the net-dev mailing list