diff --git a/CHANGELOG.md b/CHANGELOG.md index 58c6825763..fdc8a721b3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,6 +31,7 @@ Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) - Fix `unitTest` task not running the tests in the `test` source set ([#2074](https://github.com/opensearch-project/opensearch-java/pull/2074)) - Run model tests against both JSON mappers instead of picking one at random ([#2085](https://github.com/opensearch-project/opensearch-java/pull/2085)) - Fix currentSize calculation in BulkIngester ([#2113](https://github.com/opensearch-project/opensearch-java/pull/2113)) +- Use protocol version from response (rather than request) ([#2118](https://github.com/opensearch-project/opensearch-java/pull/2118)) ### Changed - Updated API spec download URL to `https://api-spec.opensearch.org` ([#2116](https://github.com/opensearch-project/opensearch-java/pull/2116)) diff --git a/java-client/src/main/java/org/opensearch/client/transport/httpclient5/ApacheHttpClient5Transport.java b/java-client/src/main/java/org/opensearch/client/transport/httpclient5/ApacheHttpClient5Transport.java index 58644b5b69..3712794498 100644 --- a/java-client/src/main/java/org/opensearch/client/transport/httpclient5/ApacheHttpClient5Transport.java +++ b/java-client/src/main/java/org/opensearch/client/transport/httpclient5/ApacheHttpClient5Transport.java @@ -689,7 +689,7 @@ private ResponseT decodeResponse( return rawEndpoint.responseDeserializer( requestLine.getUri(), requestLine.getMethod(), - requestLine.getProtocolVersion().format(), + statusLine.getProtocolVersion().format(), statusLine.getStatusCode(), statusLine.getReasonPhrase(), Arrays.stream(clientResp.getHeaders()) diff --git a/java-client/src/main/java/org/opensearch/client/transport/rest_client/RestClientTransport.java b/java-client/src/main/java/org/opensearch/client/transport/rest_client/RestClientTransport.java index 1d90fba827..5ccbb96191 100644 --- a/java-client/src/main/java/org/opensearch/client/transport/rest_client/RestClientTransport.java +++ b/java-client/src/main/java/org/opensearch/client/transport/rest_client/RestClientTransport.java @@ -281,7 +281,7 @@ private ResponseT getHighLevelResponse( final ResponseT error = rawEndpoint.responseDeserializer( requestLine.getUri(), requestLine.getMethod(), - requestLine.getProtocolVersion().format(), + statusLine.getProtocolVersion().format(), statusLine.getStatusCode(), statusLine.getReasonPhrase(), Arrays.stream(clientResp.getHeaders()) diff --git a/java-client/src/test/java11/org/opensearch/client/opensearch/integTest/AbstractPingAndInfoIT.java b/java-client/src/test/java11/org/opensearch/client/opensearch/integTest/AbstractPingAndInfoIT.java index d951799c33..8da211a2bb 100644 --- a/java-client/src/test/java11/org/opensearch/client/opensearch/integTest/AbstractPingAndInfoIT.java +++ b/java-client/src/test/java11/org/opensearch/client/opensearch/integTest/AbstractPingAndInfoIT.java @@ -15,6 +15,7 @@ import java.util.Collections; import java.util.Map; import org.opensearch.client.opensearch.OpenSearchClient; +import org.opensearch.client.opensearch._types.OpenSearchVersionInfo; import org.opensearch.client.opensearch.core.InfoResponse; import org.opensearch.client.opensearch.generic.Bodies; import org.opensearch.client.opensearch.generic.Requests; @@ -34,7 +35,7 @@ public void testInfo() throws IOException { // compare with what the low level client outputs try (Response response = javaClient().generic().execute(Requests.builder().endpoint("/").method("GET").build())) { assertThat(response.getStatus(), equalTo(200)); - assertThat(response.getProtocol(), equalTo("HTTP/1.1")); + assertThat(response.getProtocol(), equalTo(expectedHttpProtocol(info.version()))); assertThat(response.getBody().isEmpty(), is(false)); Map infoAsMap = response.getBody() @@ -56,4 +57,8 @@ public void testInfo() throws IOException { assertTrue(versionMap.get("number").toString().startsWith(info.version().number())); } } + + protected String expectedHttpProtocol(OpenSearchVersionInfo version) { + return "HTTP/1.1"; + } } diff --git a/java-client/src/test/java11/org/opensearch/client/opensearch/integTest/httpclient5/PingAndInfoIT.java b/java-client/src/test/java11/org/opensearch/client/opensearch/integTest/httpclient5/PingAndInfoIT.java index d9397b9f85..ccfa426a68 100644 --- a/java-client/src/test/java11/org/opensearch/client/opensearch/integTest/httpclient5/PingAndInfoIT.java +++ b/java-client/src/test/java11/org/opensearch/client/opensearch/integTest/httpclient5/PingAndInfoIT.java @@ -8,6 +8,12 @@ package org.opensearch.client.opensearch.integTest.httpclient5; +import org.opensearch.client.opensearch._types.OpenSearchVersionInfo; import org.opensearch.client.opensearch.integTest.AbstractPingAndInfoIT; -public class PingAndInfoIT extends AbstractPingAndInfoIT implements HttpClient5TransportSupport {} +public class PingAndInfoIT extends AbstractPingAndInfoIT implements HttpClient5TransportSupport { + @Override + protected String expectedHttpProtocol(OpenSearchVersionInfo version) { + return isHttps() && version.number().startsWith("3") ? "HTTP/2.0" : "HTTP/1.1"; + } +}