Skip to content

Commit c832d5f

Browse files
committed
Polishing contribution
Fixes gh-33556
1 parent 453e796 commit c832d5f

File tree

2 files changed

+15
-13
lines changed

2 files changed

+15
-13
lines changed

spring-web/src/main/java/org/springframework/http/client/HttpComponentsClientHttpRequestFactory.java

+6-13
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,6 @@ public class HttpComponentsClientHttpRequestFactory implements ClientHttpRequest
7373

7474
private long connectionRequestTimeout = -1;
7575

76-
7776
private long readTimeout = -1;
7877

7978
/**
@@ -138,7 +137,7 @@ public void setConnectTimeout(int connectTimeout) {
138137
* handshakes or CONNECT requests; for that, it is required to
139138
* use the {@link SocketConfig} on the
140139
* {@link HttpClient} itself.
141-
* @param connectTimeout the timeout as {@code Duration}.
140+
* @param connectTimeout the timeout as a {@code Duration}.
142141
* @since 6.1
143142
* @see RequestConfig#getConnectTimeout()
144143
* @see SocketConfig#getSoTimeout
@@ -155,7 +154,8 @@ public void setConnectTimeout(Duration connectTimeout) {
155154
* A timeout value of 0 specifies an infinite timeout.
156155
* <p>Additional properties can be configured by specifying a
157156
* {@link RequestConfig} instance on a custom {@link HttpClient}.
158-
* @param connectionRequestTimeout the timeout value to request a connection in milliseconds
157+
* @param connectionRequestTimeout the timeout value to request a connection
158+
* in milliseconds
159159
* @see RequestConfig#getConnectionRequestTimeout()
160160
*/
161161
public void setConnectionRequestTimeout(int connectionRequestTimeout) {
@@ -169,7 +169,8 @@ public void setConnectionRequestTimeout(int connectionRequestTimeout) {
169169
* A timeout value of 0 specifies an infinite timeout.
170170
* <p>Additional properties can be configured by specifying a
171171
* {@link RequestConfig} instance on a custom {@link HttpClient}.
172-
* @param connectionRequestTimeout the timeout value to request a connection as {@code Duration}.
172+
* @param connectionRequestTimeout the timeout value to request a connection
173+
* as a {@code Duration}.
173174
* @since 6.1
174175
* @see RequestConfig#getConnectionRequestTimeout()
175176
*/
@@ -184,10 +185,6 @@ public void setConnectionRequestTimeout(Duration connectionRequestTimeout) {
184185
* A timeout value of 0 specifies an infinite timeout.
185186
* <p>Additional properties can be configured by specifying a
186187
* {@link RequestConfig} instance on a custom {@link HttpClient}.
187-
* <p>This options does not affect connection timeouts for SSL
188-
* handshakes or CONNECT requests; for that, it is required to
189-
* use the {@link SocketConfig} on the
190-
* {@link HttpClient} itself.
191188
* @param readTimeout the timeout value in milliseconds
192189
* @since 6.2
193190
* @see RequestConfig#getResponseTimeout()
@@ -202,11 +199,7 @@ public void setReadTimeout(int readTimeout) {
202199
* A timeout value of 0 specifies an infinite timeout.
203200
* <p>Additional properties can be configured by specifying a
204201
* {@link RequestConfig} instance on a custom {@link HttpClient}.
205-
* <p>This options does not affect connection timeouts for SSL
206-
* handshakes or CONNECT requests; for that, it is required to
207-
* use the {@link SocketConfig} on the
208-
* {@link HttpClient} itself.
209-
* @param readTimeout the timeout as {@code Duration}.
202+
* @param readTimeout the timeout as a {@code Duration}.
210203
* @since 6.2
211204
* @see RequestConfig#getResponseTimeout()
212205
*/

spring-web/src/test/java/org/springframework/http/client/HttpComponentsClientHttpRequestFactoryTests.java

+9
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
import java.io.InputStreamReader;
2020
import java.net.URI;
21+
import java.time.Duration;
2122
import java.util.stream.Stream;
2223

2324
import org.apache.hc.client5.http.classic.HttpClient;
@@ -66,6 +67,7 @@ void assertCustomConfig() throws Exception {
6667
HttpComponentsClientHttpRequestFactory hrf = new HttpComponentsClientHttpRequestFactory(httpClient);
6768
hrf.setConnectTimeout(1234);
6869
hrf.setConnectionRequestTimeout(4321);
70+
hrf.setReadTimeout(5678);
6971

7072
URI uri = URI.create(baseUrl + "/status/ok");
7173
HttpComponentsClientHttpRequest request = (HttpComponentsClientHttpRequest) hrf.createRequest(uri, HttpMethod.GET);
@@ -76,6 +78,7 @@ void assertCustomConfig() throws Exception {
7678
RequestConfig requestConfig = (RequestConfig) config;
7779
assertThat(requestConfig.getConnectTimeout()).as("Wrong custom connection timeout").isEqualTo(Timeout.of(1234, MILLISECONDS));
7880
assertThat(requestConfig.getConnectionRequestTimeout()).as("Wrong custom connection request timeout").isEqualTo(Timeout.of(4321, MILLISECONDS));
81+
assertThat(requestConfig.getResponseTimeout()).as("Wrong custom response timeout").isEqualTo(Timeout.of(5678, MILLISECONDS));
7982
}
8083

8184
@Test
@@ -105,6 +108,7 @@ void localSettingsOverrideClientDefaultSettings() throws Exception {
105108
RequestConfig defaultConfig = RequestConfig.custom()
106109
.setConnectTimeout(1234, MILLISECONDS)
107110
.setConnectionRequestTimeout(6789, MILLISECONDS)
111+
.setResponseTimeout(4321, MILLISECONDS)
108112
.build();
109113
CloseableHttpClient client = mock(CloseableHttpClient.class,
110114
withSettings().extraInterfaces(Configurable.class));
@@ -113,10 +117,12 @@ void localSettingsOverrideClientDefaultSettings() throws Exception {
113117

114118
HttpComponentsClientHttpRequestFactory hrf = new HttpComponentsClientHttpRequestFactory(client);
115119
hrf.setConnectTimeout(5000);
120+
hrf.setReadTimeout(Duration.ofMillis(4000));
116121

117122
RequestConfig requestConfig = retrieveRequestConfig(hrf);
118123
assertThat(requestConfig.getConnectTimeout()).isEqualTo(Timeout.of(5000, MILLISECONDS));
119124
assertThat(requestConfig.getConnectionRequestTimeout()).isEqualTo(Timeout.of(6789, MILLISECONDS));
125+
assertThat(requestConfig.getResponseTimeout()).isEqualTo(Timeout.of(4000, MILLISECONDS));
120126
}
121127

122128
@Test
@@ -141,15 +147,18 @@ public HttpClient getHttpClient() {
141147
RequestConfig requestConfig = retrieveRequestConfig(hrf);
142148
assertThat(requestConfig.getConnectionRequestTimeout()).isEqualTo(Timeout.of(5000, MILLISECONDS));
143149
assertThat(requestConfig.getConnectTimeout()).isEqualTo(RequestConfig.DEFAULT.getConnectTimeout());
150+
assertThat(requestConfig.getResponseTimeout()).isEqualTo(RequestConfig.DEFAULT.getResponseTimeout());
144151

145152
// Update the Http client so that it returns an updated config
146153
RequestConfig updatedDefaultConfig = RequestConfig.custom()
147154
.setConnectTimeout(1234, MILLISECONDS).build();
148155
given(configurable.getConfig()).willReturn(updatedDefaultConfig);
149156
hrf.setConnectionRequestTimeout(7000);
157+
hrf.setReadTimeout(4000);
150158
RequestConfig requestConfig2 = retrieveRequestConfig(hrf);
151159
assertThat(requestConfig2.getConnectTimeout()).isEqualTo(Timeout.of(1234, MILLISECONDS));
152160
assertThat(requestConfig2.getConnectionRequestTimeout()).isEqualTo(Timeout.of(7000, MILLISECONDS));
161+
assertThat(requestConfig2.getResponseTimeout()).isEqualTo(Timeout.of(4000, MILLISECONDS));
153162
}
154163

155164
@ParameterizedTest

0 commit comments

Comments
 (0)