Skip to content

Commit c3585b1

Browse files
committed
Updated timeout computation.
1 parent 7795383 commit c3585b1

File tree

2 files changed

+8
-13
lines changed

2 files changed

+8
-13
lines changed

Diff for: extras/retrofit2/src/main/java/org/asynchttpclient/extras/retrofit/AsyncHttpClientCall.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ public Timeout timeout() {
183183
*/
184184
protected long getRequestTimeoutMillis() {
185185
val config = getHttpClient().getConfig();
186-
val timeout = Math.max(config.getReadTimeout(), config.getRequestTimeout());
186+
val timeout = Math.min(config.getReadTimeout(), config.getRequestTimeout());
187187
return (timeout < 1) ? DEFAULT_EXECUTE_TIMEOUT_MILLIS : timeout;
188188
}
189189

Diff for: extras/retrofit2/src/test/java/org/asynchttpclient/extras/retrofit/AsyncHttpClientCallTest.java

+7-12
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,13 @@
1414

1515
import io.netty.handler.codec.http.DefaultHttpHeaders;
1616
import io.netty.handler.codec.http.EmptyHttpHeaders;
17+
import lombok.*;
1718
import lombok.extern.slf4j.Slf4j;
18-
import lombok.val;
19-
import okhttp3.MediaType;
20-
import okhttp3.Request;
21-
import okhttp3.RequestBody;
19+
import okhttp3.*;
2220
import org.asynchttpclient.AsyncCompletionHandler;
2321
import org.asynchttpclient.AsyncHttpClient;
2422
import org.asynchttpclient.AsyncHttpClientConfig;
2523
import org.asynchttpclient.BoundRequestBuilder;
26-
import org.asynchttpclient.DefaultAsyncHttpClient;
2724
import org.asynchttpclient.DefaultAsyncHttpClientConfig;
2825
import org.asynchttpclient.Response;
2926
import org.mockito.ArgumentCaptor;
@@ -37,10 +34,8 @@
3734
import java.util.Arrays;
3835
import java.util.Collection;
3936
import java.util.concurrent.ExecutionException;
40-
import java.util.concurrent.TimeUnit;
4137
import java.util.concurrent.TimeoutException;
4238
import java.util.concurrent.atomic.AtomicInteger;
43-
import java.util.concurrent.atomic.AtomicReference;
4439
import java.util.function.Consumer;
4540
import java.util.function.Supplier;
4641

@@ -339,18 +334,18 @@ void shouldReturnTimeoutSpecifiedInAHCInstanceConfig() {
339334
when(httpClient.getConfig()).thenReturn(config);
340335

341336
// then
342-
assertEquals(call.getRequestTimeoutMillis(), SECONDS.toMillis(6));
343-
assertEquals(call.timeout().timeoutNanos(), SECONDS.toNanos(6));
337+
assertEquals(call.getRequestTimeoutMillis(), SECONDS.toMillis(5));
338+
assertEquals(call.timeout().timeoutNanos(), SECONDS.toNanos(5));
344339

345340
// when: set read timeout to 10 seconds, req timeout to 7s
346341
config = cfgBuilder.setReadTimeout((int) SECONDS.toMillis(10))
347342
.setRequestTimeout((int) SECONDS.toMillis(7))
348343
.build();
349344
when(httpClient.getConfig()).thenReturn(config);
350345

351-
// then:
352-
assertEquals(call.getRequestTimeoutMillis(), SECONDS.toMillis(10));
353-
assertEquals(call.timeout().timeoutNanos(), SECONDS.toNanos(10));
346+
// then: request timeout is considered by AHC if read timeout is bigger than request timeout
347+
assertEquals(call.getRequestTimeoutMillis(), SECONDS.toMillis(7));
348+
assertEquals(call.timeout().timeoutNanos(), SECONDS.toNanos(7));
354349
}
355350

356351
private void givenResponseIsProduced(AsyncHttpClient client, Response response) {

0 commit comments

Comments
 (0)