Skip to content

Commit e06c2a6

Browse files
shawkinsmanusa
authored andcommitted
fix #4911: redefining readTimeout as just HttpRequest.timeout
1 parent 98c1e6f commit e06c2a6

File tree

13 files changed

+46
-49
lines changed

13 files changed

+46
-49
lines changed

httpclient-jdk/src/main/java/io/fabric8/kubernetes/client/jdkhttp/JdkHttpClientImpl.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -258,9 +258,9 @@ public CompletableFuture<HttpResponse<AsyncBody>> consumeBytesDirect(StandardHtt
258258
java.net.http.HttpRequest.Builder requestBuilder(StandardHttpRequest request) {
259259
java.net.http.HttpRequest.Builder requestBuilder = java.net.http.HttpRequest.newBuilder();
260260

261-
Duration readTimeout = request.getReadTimeout();
262-
if (readTimeout != null && !java.time.Duration.ZERO.equals(readTimeout)) {
263-
requestBuilder.timeout(readTimeout);
261+
Duration timeout = request.getTimeout();
262+
if (timeout != null && !java.time.Duration.ZERO.equals(timeout)) {
263+
requestBuilder.timeout(timeout);
264264
}
265265

266266
request.headers().entrySet().stream()
@@ -311,9 +311,9 @@ public CompletableFuture<WebSocketResponse> buildWebSocketDirect(
311311
if (standardWebSocketBuilder.getSubprotocol() != null) {
312312
newBuilder.subprotocols(standardWebSocketBuilder.getSubprotocol());
313313
}
314-
Duration readTimeout = request.getReadTimeout();
315-
if (readTimeout != null && !java.time.Duration.ZERO.equals(readTimeout)) {
316-
newBuilder.connectTimeout(readTimeout);
314+
Duration timeout = request.getTimeout();
315+
if (timeout != null && !java.time.Duration.ZERO.equals(timeout)) {
316+
newBuilder.connectTimeout(timeout);
317317
}
318318

319319
AtomicLong queueSize = new AtomicLong();

httpclient-jetty/src/main/java/io/fabric8/kubernetes/client/jetty/JettyHttpClient.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -99,8 +99,8 @@ private Request newRequest(StandardHttpRequest originalRequest) {
9999
final var request = requestBuilder.build();
100100

101101
var jettyRequest = jetty.newRequest(request.uri()).method(request.method());
102-
if (originalRequest.getReadTimeout() != null) {
103-
jettyRequest.timeout(originalRequest.getReadTimeout().toMillis(), TimeUnit.MILLISECONDS);
102+
if (originalRequest.getTimeout() != null) {
103+
jettyRequest.timeout(originalRequest.getTimeout().toMillis(), TimeUnit.MILLISECONDS);
104104
}
105105
jettyRequest.headers(m -> request.headers().forEach((k, l) -> l.forEach(v -> m.add(k, v))));
106106

@@ -143,8 +143,8 @@ public CompletableFuture<WebSocketResponse> buildWebSocketDirect(StandardWebSock
143143
cur.setSubProtocols(standardWebSocketBuilder.getSubprotocol());
144144
}
145145
cur.setHeaders(request.headers());
146-
if (request.getReadTimeout() != null) {
147-
cur.setTimeout(request.getReadTimeout().toMillis(), TimeUnit.MILLISECONDS);
146+
if (request.getTimeout() != null) {
147+
cur.setTimeout(request.getTimeout().toMillis(), TimeUnit.MILLISECONDS);
148148
}
149149
// Extra-future required because we can't Map the UpgradeException to a WebSocketHandshakeException easily
150150
final CompletableFuture<WebSocketResponse> future = new CompletableFuture<>();

httpclient-okhttp/src/main/java/io/fabric8/kubernetes/client/okhttp/OkHttpClientImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -296,9 +296,9 @@ private CompletableFuture<HttpResponse<AsyncBody>> sendAsync(StandardHttpRequest
296296
CompletableFuture<HttpResponse<AsyncBody>> future = new CompletableFuture<>();
297297

298298
okhttp3.OkHttpClient.Builder clientBuilder = null;
299-
if (request.getReadTimeout() != null) {
299+
if (request.getTimeout() != null) {
300300
clientBuilder = httpClient.newBuilder();
301-
clientBuilder.readTimeout(request.getReadTimeout());
301+
clientBuilder.callTimeout(request.getTimeout());
302302
}
303303
if (request.isForStreaming()) {
304304
if (clientBuilder == null) {

httpclient-vertx/src/main/java/io/fabric8/kubernetes/client/vertx/VertxHttpClient.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,8 @@ public CompletableFuture<WebSocketResponse> buildWebSocketDirect(StandardWebSock
6969

7070
final StandardHttpRequest request = standardWebSocketBuilder.asHttpRequest();
7171

72-
if (request.getReadTimeout() != null) {
73-
options.setTimeout(request.getReadTimeout().toMillis());
72+
if (request.getTimeout() != null) {
73+
options.setTimeout(request.getTimeout().toMillis());
7474
}
7575

7676
request.headers().entrySet().stream()
@@ -107,8 +107,8 @@ public CompletableFuture<HttpResponse<AsyncBody>> consumeBytesDirect(StandardHtt
107107
options.setAbsoluteURI(request.uri().toString());
108108
options.setMethod(HttpMethod.valueOf(request.method()));
109109

110-
if (request.getReadTimeout() != null) {
111-
options.setTimeout(request.getReadTimeout().toMillis());
110+
if (request.getTimeout() != null) {
111+
options.setTimeout(request.getTimeout().toMillis());
112112
}
113113

114114
// Proxy authorization is handled manually since the proxyAuthorization value is the actual header

kubernetes-client-api/src/main/java/io/fabric8/kubernetes/client/http/HttpRequest.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,9 +99,11 @@ default Builder post(Map<String, String> formData) {
9999
Builder expectContinue();
100100

101101
/**
102-
* Sets the read timeout for normal http requests.
102+
* Sets the full request cycle timeout.
103+
* <br>
104+
* Defaults to 0, meaning no timeout
103105
*/
104-
Builder readTimeout(long readTimeout, TimeUnit unit);
106+
Builder timeout(long timeout, TimeUnit unit);
105107

106108
/**
107109
* Sets the request to be used for streaming.

kubernetes-client-api/src/main/java/io/fabric8/kubernetes/client/http/StandardHttpClient.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ public CompletableFuture<HttpResponse<AsyncBody>> consumeBytes(HttpRequest reque
8686

8787
retryWithExponentialBackoff(result, () -> consumeBytesOnce(standardHttpRequest, consumer), request.uri(),
8888
HttpResponse::code,
89-
r -> r.body().cancel(), standardHttpRequest.getReadTimeout());
89+
r -> r.body().cancel(), standardHttpRequest.getTimeout());
9090
return result;
9191
}
9292

@@ -226,7 +226,7 @@ final CompletableFuture<WebSocket> buildWebSocket(StandardWebSocketBuilder stand
226226
retryWithExponentialBackoff(intermediate, () -> buildWebSocketOnce(standardWebSocketBuilder, listener),
227227
request.uri(),
228228
r -> Optional.of(r.webSocketUpgradeResponse).map(HttpResponse::code).orElse(null),
229-
r -> Optional.ofNullable(r.webSocket).ifPresent(w -> w.sendClose(1000, null)), request.getReadTimeout());
229+
r -> Optional.ofNullable(r.webSocket).ifPresent(w -> w.sendClose(1000, null)), request.getTimeout());
230230

231231
CompletableFuture<WebSocket> result = new CompletableFuture<>();
232232

kubernetes-client-api/src/main/java/io/fabric8/kubernetes/client/http/StandardHttpRequest.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ public long getLength() {
9595
private final String bodyString;
9696
private final BodyContent body;
9797
private final boolean expectContinue;
98-
private final Duration readTimeout;
98+
private final Duration timeout;
9999
private final boolean forStreaming;
100100

101101
/**
@@ -111,7 +111,7 @@ public StandardHttpRequest(Map<String, List<String>> headers, URI uri, String me
111111
}
112112

113113
StandardHttpRequest(Map<String, List<String>> headers, URI uri, String method, String bodyString,
114-
BodyContent body, boolean expectContinue, String contentType, Duration readTimeout, boolean forStreaming) {
114+
BodyContent body, boolean expectContinue, String contentType, Duration timeout, boolean forStreaming) {
115115
super(headers);
116116
this.id = UUID.randomUUID();
117117
this.uri = uri;
@@ -120,7 +120,7 @@ public StandardHttpRequest(Map<String, List<String>> headers, URI uri, String me
120120
this.body = body;
121121
this.expectContinue = expectContinue;
122122
this.contentType = contentType;
123-
this.readTimeout = readTimeout;
123+
this.timeout = timeout;
124124
this.forStreaming = forStreaming;
125125
}
126126

@@ -167,8 +167,8 @@ public boolean isForStreaming() {
167167
return forStreaming;
168168
}
169169

170-
public Duration getReadTimeout() {
171-
return readTimeout;
170+
public Duration getTimeout() {
171+
return timeout;
172172
}
173173

174174
public static final class Builder extends AbstractBasicBuilder<Builder> implements HttpRequest.Builder {
@@ -178,7 +178,7 @@ public static final class Builder extends AbstractBasicBuilder<Builder> implemen
178178
private String bodyAsString;
179179
private boolean expectContinue;
180180
private String contentType;
181-
protected Duration readTimeout;
181+
protected Duration timeout;
182182
protected boolean forStreaming;
183183

184184
public Builder() {
@@ -192,19 +192,19 @@ public Builder(StandardHttpRequest original) {
192192
body = original.body;
193193
expectContinue = original.expectContinue;
194194
contentType = original.contentType;
195-
readTimeout = original.readTimeout;
195+
timeout = original.timeout;
196196
forStreaming = original.forStreaming;
197197
}
198198

199199
@Override
200200
public StandardHttpRequest build() {
201201
return new StandardHttpRequest(getHeaders(), Objects.requireNonNull(getUri()), method, bodyAsString, body, expectContinue,
202-
contentType, readTimeout, forStreaming);
202+
contentType, timeout, forStreaming);
203203
}
204204

205205
@Override
206-
public HttpRequest.Builder readTimeout(long readTimeout, TimeUnit unit) {
207-
this.readTimeout = Duration.ofNanos(unit.toNanos(readTimeout));
206+
public HttpRequest.Builder timeout(long timeout, TimeUnit unit) {
207+
this.timeout = Duration.ofNanos(unit.toNanos(timeout));
208208
return this;
209209
}
210210

kubernetes-client-api/src/main/java/io/fabric8/kubernetes/client/http/StandardWebSocketBuilder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ public StandardHttpRequest asHttpRequest() {
7979

8080
@Override
8181
public Builder connectTimeout(long timeout, TimeUnit timeUnit) {
82-
this.builder.readTimeout(timeout, timeUnit);
82+
this.builder.timeout(timeout, timeUnit);
8383
return this;
8484
}
8585

kubernetes-client-api/src/test/java/io/fabric8/kubernetes/client/http/StandardHttpClientTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,7 @@ void testClosePreviousBeforeRetry() throws Exception {
216216
@Test
217217
void testRequestTimeout() throws Exception {
218218
CompletableFuture<HttpResponse<AsyncBody>> consumeFuture = client.consumeBytes(
219-
client.newHttpRequestBuilder().uri("http://localhost").readTimeout(1, TimeUnit.MILLISECONDS).build(),
219+
client.newHttpRequestBuilder().uri("http://localhost").timeout(1, TimeUnit.MILLISECONDS).build(),
220220
(value, asyncBody) -> {
221221
});
222222

kubernetes-client/src/main/java/io/fabric8/kubernetes/client/dsl/internal/BaseOperation.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -401,7 +401,7 @@ public L list(Integer limitVal, String continueVal) {
401401
public CompletableFuture<L> submitList(ListOptions listOptions) {
402402
try {
403403
URL fetchListUrl = fetchListUrl(getNamespacedUrl(), defaultListOptions(listOptions, null));
404-
HttpRequest.Builder requestBuilder = withReadTimeout(httpClient.newHttpRequestBuilder()).url(fetchListUrl);
404+
HttpRequest.Builder requestBuilder = withRequestTimeout(httpClient.newHttpRequestBuilder()).url(fetchListUrl);
405405
Type refinedType = listType.equals(DefaultKubernetesResourceList.class)
406406
? Serialization.jsonMapper().getTypeFactory().constructParametricType(listType, type)
407407
: listType;

0 commit comments

Comments
 (0)