Skip to content

Commit 88f2c95

Browse files
committed
Keep references on NetClient in socks proxies to avoid them being collected during tests
1 parent 85ba0fa commit 88f2c95

File tree

2 files changed

+15
-5
lines changed

2 files changed

+15
-5
lines changed

vertx-core/src/test/java/io/vertx/test/proxy/Socks4Proxy.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ public class Socks4Proxy extends TestProxyBase<Socks4Proxy> {
4343
public static final int DEFAULT_PORT = 11080;
4444

4545
private NetServer server;
46+
private NetClient client;
4647

4748
@Override
4849
public int defaultPort() {
@@ -59,6 +60,7 @@ public int defaultPort() {
5960
public Socks4Proxy start(Vertx vertx) throws Exception {
6061
NetServerOptions options = new NetServerOptions();
6162
options.setHost("localhost").setPort(port);
63+
client = vertx.createNetClient(new NetClientOptions());
6264
server = vertx.createNetServer(options);
6365
server.connectHandler(socket -> {
6466
socket.handler(buffer -> {
@@ -94,8 +96,7 @@ public Socks4Proxy start(Vertx vertx) throws Exception {
9496
port = Integer.valueOf(forceUri.substring(forceUri.indexOf(':') + 1));
9597
}
9698
log.debug("connecting to " + host + ":" + port);
97-
NetClient netClient = vertx.createNetClient(new NetClientOptions());
98-
netClient.connect(port, host).onComplete(result -> {
99+
client.connect(port, host).onComplete(result -> {
99100
if (result.succeeded()) {
100101
localAddresses.add(result.result().localAddress().toString());
101102
log.debug("writing: " + toHex(connectResponse));
@@ -159,8 +160,12 @@ private String toHex(Buffer buffer) {
159160
@Override
160161
public void stop() {
161162
if (server != null) {
162-
server.close();
163+
server.close().await();
163164
server = null;
164165
}
166+
if (client != null) {
167+
client.close().await();
168+
client = null;
169+
}
165170
}
166171
}

vertx-core/src/test/java/io/vertx/test/proxy/SocksProxy.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ public class SocksProxy extends TestProxyBase<SocksProxy> {
5151
public static final int DEFAULT_PORT = 11080;
5252

5353
private NetServer server;
54+
private NetClient client;
5455

5556
@Override
5657
public int defaultPort() {
@@ -68,6 +69,7 @@ public SocksProxy start(Vertx vertx) throws Exception {
6869
NetServerOptions options = new NetServerOptions();
6970
options.setHost("localhost").setPort(port);
7071
server = vertx.createNetServer(options);
72+
client = vertx.createNetClient(new NetClientOptions());
7173
server.connectHandler(socket -> {
7274
socket.handler(buffer -> {
7375
String username = nextUserName();
@@ -115,8 +117,7 @@ public SocksProxy start(Vertx vertx) throws Exception {
115117
port = Integer.valueOf(forceUri.substring(forceUri.indexOf(':') + 1));
116118
}
117119
log.debug("connecting to " + host + ":" + port);
118-
NetClient netClient = vertx.createNetClient(new NetClientOptions());
119-
netClient.connect(port, host).onComplete(result -> {
120+
client.connect(port, host).onComplete(result -> {
120121
if (result.succeeded()) {
121122
localAddresses.add(result.result().localAddress().toString());
122123
log.debug("writing: " + toHex(connectResponse));
@@ -206,5 +207,9 @@ public void stop() {
206207
server.close();
207208
server = null;
208209
}
210+
if (client != null) {
211+
client.close().await();
212+
client = null;
213+
}
209214
}
210215
}

0 commit comments

Comments
 (0)