Skip to content

Commit 63f7b50

Browse files
author
Simon Stewart
committed
Use the same timings for OkHttp as we do for the Apache HttpClient
1 parent 027bb4f commit 63f7b50

File tree

1 file changed

+20
-4
lines changed

1 file changed

+20
-4
lines changed

java/client/src/org/openqa/selenium/remote/internal/OkHttpClient.java

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
package org.openqa.selenium.remote.internal;
1919

20-
import static java.util.concurrent.TimeUnit.MINUTES;
20+
import static java.util.concurrent.TimeUnit.MILLISECONDS;
2121

2222
import com.google.common.base.Strings;
2323

@@ -35,8 +35,9 @@
3535

3636
import java.io.IOException;
3737
import java.net.URL;
38+
import java.time.Duration;
39+
import java.util.Objects;
3840
import java.util.Optional;
39-
import java.util.concurrent.TimeUnit;
4041

4142
public class OkHttpClient implements HttpClient {
4243

@@ -118,15 +119,30 @@ public void close() {
118119

119120
public static class Factory implements HttpClient.Factory {
120121

121-
private ConnectionPool pool = new ConnectionPool();
122+
private final ConnectionPool pool = new ConnectionPool();
123+
private final long connectionTimeout;
124+
private final long readTimeout;
125+
126+
public Factory() {
127+
this(Duration.ofMinutes(2), Duration.ofHours(3));
128+
}
129+
130+
public Factory(Duration connectionTimeout, Duration readTimeout) {
131+
Objects.requireNonNull(connectionTimeout, "Connection timeout cannot be null");
132+
Objects.requireNonNull(readTimeout, "Read timeout cannot be null");
133+
134+
this.connectionTimeout = connectionTimeout.toMillis();
135+
this.readTimeout = readTimeout.toMillis();
136+
}
122137

123138
@Override
124139
public HttpClient createClient(URL url) {
125140
okhttp3.OkHttpClient.Builder client = new okhttp3.OkHttpClient.Builder()
126141
.connectionPool(pool)
127142
.followRedirects(true)
128143
.followSslRedirects(true)
129-
.readTimeout(0, MINUTES);
144+
.readTimeout(readTimeout, MILLISECONDS)
145+
.connectTimeout(connectionTimeout, MILLISECONDS);
130146

131147
String info = url.getUserInfo();
132148
if (!Strings.isNullOrEmpty(info)) {

0 commit comments

Comments
 (0)