Merge branch '7.0.x'

This commit is contained in:
Brian Clozel
2026-09-04 17:09:36 +02:00
2 changed files with 25 additions and 2 deletions
@@ -86,7 +86,7 @@ public class JdkClientHttpRequestFactory implements ClientHttpRequestFactory {
* @see java.net.http.HttpRequest.Builder#timeout
*/
public void setReadTimeout(int readTimeout) {
this.readTimeout = Duration.ofMillis(readTimeout);
this.readTimeout = readTimeout == 0 ? null : Duration.ofMillis(readTimeout);
}
/**
@@ -95,7 +95,7 @@ public class JdkClientHttpRequestFactory implements ClientHttpRequestFactory {
* @see java.net.http.HttpRequest.Builder#timeout
*/
public void setReadTimeout(Duration readTimeout) {
this.readTimeout = readTimeout;
this.readTimeout = Duration.ZERO.equals(readTimeout) ? null : readTimeout;
}
/**
@@ -19,6 +19,7 @@ package org.springframework.http.client;
import java.io.IOException;
import java.net.URI;
import java.nio.charset.StandardCharsets;
import java.time.Duration;
import org.jspecify.annotations.Nullable;
import org.junit.jupiter.api.AfterAll;
@@ -109,6 +110,28 @@ class JdkClientHttpRequestFactoryTests extends AbstractHttpRequestFactoryTests {
}
}
@Test
void readTimeoutZeroShouldNotThrowException() throws Exception {
((JdkClientHttpRequestFactory) factory).setReadTimeout(0);
URI uri = URI.create(this.baseUrl + "/methods/get");
ClientHttpRequest request =
new BufferingClientHttpRequestFactory(this.factory).createRequest(uri, HttpMethod.GET);
try (ClientHttpResponse response = request.execute()) {
assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
}
}
@Test
void readTimeoutDurationZeroShouldNotThrowException() throws Exception {
((JdkClientHttpRequestFactory) factory).setReadTimeout(Duration.ZERO);
URI uri = URI.create(this.baseUrl + "/methods/get");
ClientHttpRequest request =
new BufferingClientHttpRequestFactory(this.factory).createRequest(uri, HttpMethod.GET);
try (ClientHttpResponse response = request.execute()) {
assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
}
}
@Test
void compressionDisabled() throws IOException {
URI uri = URI.create(baseUrl + "/compress/");