RFR: 8274779: HttpURLConnection: HttpClient and HttpsClient incorrectly check request method when set to POST [v3]
Evan Whelan
ewhelan at openjdk.java.net
Fri Oct 15 14:47:18 UTC 2021
> Hi,
>
> Please review my fix for JDK-8274779 which changes how HttpClient and HttpsClient checks for equality when comparing request methods.
>
> When `HttpURLConnection.setRequestMethod` is passed `new String("POST")` rather than the "POST" String literal, the old behaviour resulted in broken HttpClients being reused from the `KeepAliveCache`.
>
> This is because a call to `HttpClient.available()` was never reachable due to identity equality being used instead of logical equality.
>
> The test case uses an injected KeepAliveCache, to which we put a HttpClient that is unavailable. By comparing the initial HttpClient's `connectTimeout` value to the "cached" client's connectTimeout (1234 vs 4321 respectively) we can assert that these values should never be equal as a new HttpClient should be created in cases where we can no longer use the cached one.
>
> All CI testing is green for this fix.
>
> Kind regards,
> Evan
Evan Whelan has updated the pull request incrementally with two additional commits since the last revision:
- Extracted both connectTimeouts to variables and added copyright header to accessor
- Removed reflection in favour of injected accessor for KeepAliveCache
-------------
Changes:
- all: https://git.openjdk.java.net/jdk/pull/5964/files
- new: https://git.openjdk.java.net/jdk/pull/5964/files/a65e493d..90ab8587
Webrevs:
- full: https://webrevs.openjdk.java.net/?repo=jdk&pr=5964&range=02
- incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=5964&range=01-02
Stats: 46 lines in 3 files changed: 35 ins; 8 del; 3 mod
Patch: https://git.openjdk.java.net/jdk/pull/5964.diff
Fetch: git fetch https://git.openjdk.java.net/jdk pull/5964/head:pull/5964
PR: https://git.openjdk.java.net/jdk/pull/5964
More information about the net-dev
mailing list