RFR: 8330572: jdk.internal.net.http.HttpConnection calls an expensive checkOpen() when returning a HTTP/1.1 connection to the pool

Jaikiran Pai jpai at openjdk.org
Thu Apr 18 13:52:03 UTC 2024


Can I please get a review of this change which proposes to fix the issue reported in https://bugs.openjdk.org/browse/JDK-8330572?

As noted in that issue, the internal method `checkOpen()` should only be called when picking a non-TLS HTTP/1.1 connection from the pool and before handing it out. That method should not be called in any other places.

The commit in this PR addresses that by removing the call to `checkOpen()` when the connection is being returned back to the pool. The `checkOpen()` call which does a socket channel read is now replaced with a `isOpen()` call which is just a state check.

Existing tests in tier2 continue to pass with this change. A test repeat of 50 of test/jdk/java/net/httpclient tests too passes without any regressions. No new test has been added given the nature of this change.

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

Commit messages:
 - 8330572: jdk.internal.net.http.HttpConnection calls an expensive checkOpen() when returning a HTTP/1.1 connection to the pool

Changes: https://git.openjdk.org/jdk/pull/18840/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=18840&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8330572
  Stats: 2 lines in 1 file changed: 0 ins; 0 del; 2 mod
  Patch: https://git.openjdk.org/jdk/pull/18840.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/18840/head:pull/18840

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


More information about the net-dev mailing list