Skip to content

Commit 5138a9c

Browse files
authored
[java] Allow resuing devtools instance with JDK 11 client (#13165)
Fixes #12882
1 parent 3041af3 commit 5138a9c

File tree

2 files changed

+12
-3
lines changed

2 files changed

+12
-3
lines changed

java/src/org/openqa/selenium/devtools/Connection.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424

2525
import java.io.Closeable;
2626
import java.io.StringReader;
27+
import java.net.URI;
28+
import java.net.URISyntaxException;
2729
import java.time.Duration;
2830
import java.util.ArrayList;
2931
import java.util.HashMap;
@@ -51,6 +53,7 @@
5153
import org.openqa.selenium.json.Json;
5254
import org.openqa.selenium.json.JsonInput;
5355
import org.openqa.selenium.json.JsonOutput;
56+
import org.openqa.selenium.remote.http.ClientConfig;
5457
import org.openqa.selenium.remote.http.HttpClient;
5558
import org.openqa.selenium.remote.http.HttpRequest;
5659
import org.openqa.selenium.remote.http.WebSocket;
@@ -72,7 +75,7 @@ public class Connection implements Closeable {
7275
new ConcurrentHashMap<>();
7376
private final ReadWriteLock callbacksLock = new ReentrantReadWriteLock(true);
7477
private final Map<Event<?>, List<Consumer<?>>> eventCallbacks = new HashMap<>();
75-
private final HttpClient client;
78+
private HttpClient client;
7679
private final String url;
7780
private final AtomicBoolean isClosed;
7881

@@ -90,6 +93,14 @@ boolean isClosed() {
9093
}
9194

9295
void reopen() {
96+
HttpClient.Factory clientFactory = HttpClient.Factory.createDefault();
97+
ClientConfig wsConfig = null;
98+
try {
99+
wsConfig = ClientConfig.defaultConfig().baseUri(new URI(this.url));
100+
} catch (URISyntaxException e) {
101+
LOG.warning(e.getMessage());
102+
}
103+
this.client = clientFactory.createClient(wsConfig);
93104
this.socket = this.client.openSocket(new HttpRequest(GET, url), new Listener());
94105
}
95106

java/test/org/openqa/selenium/devtools/DevToolsReuseTest.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,13 @@
1919

2020
import static org.assertj.core.api.Assertions.assertThat;
2121

22-
import org.junit.jupiter.api.Disabled;
2322
import org.junit.jupiter.api.Test;
2423
import org.openqa.selenium.WebDriver;
2524
import org.openqa.selenium.remote.Augmenter;
2625

2726
class DevToolsReuseTest extends DevToolsTestBase {
2827

2928
@Test
30-
@Disabled("JDK HTTP Client cannot get reused")
3129
public void shouldBeAbleToCloseDevToolsAndCreateNewInstance() {
3230
WebDriver driver = new Augmenter().augment(this.driver);
3331

0 commit comments

Comments
 (0)