mirror of
https://github.com/spring-projects/spring-framework.git
synced 2026-09-17 16:30:28 +00:00
Handle zero readTimeout in JdkClientHttpRequestFactory
Closes gh-37232 Signed-off-by: Tran Ngoc Nhan <ngocnhan.tran1996@gmail.com>
This commit is contained in:
committed by
Brian Clozel
parent
2d478f7d9b
commit
85c8bb674c
+2
-2
@@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+23
@@ -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/");
|
||||
|
||||
Reference in New Issue
Block a user