RFR: 8358496: Concurrent reading from Socket with timeout executes sequentially

Alan Bateman alanb at openjdk.org
Tue Jun 3 14:02:18 UTC 2025


If several threads attempt to read from a Socket's input stream at the same time then all but the winner will block trying to acquire the read lock.  This is okay for untimed-reads but surprising for timed-reads as the timeout is only effective after acquiring the lock. The SocketImpl is changed so that the timeout applies to the total time waiting to acquire and read.

A new test is added to the existing java/net/Socket/Timeouts test. It is migrated from TestNG to a JUnit test as a drive-by change - it's mostly mechanical and the changes kept as minimal as possible.

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

Commit messages:
 - Initial commit

Changes: https://git.openjdk.org/jdk/pull/25614/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=25614&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8358496
  Stats: 173 lines in 2 files changed: 67 ins; 11 del; 95 mod
  Patch: https://git.openjdk.org/jdk/pull/25614.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/25614/head:pull/25614

PR: https://git.openjdk.org/jdk/pull/25614


More information about the net-dev mailing list