Skip to content

Commit 06e6e85

Browse files
committed
Reuse BalancedResolverGroup.INSTANCE for TCP clients.
We now also register a Shutdown hook to close BalancedResolverGroup. [resolves #412] Signed-off-by: Mark Paluch <[email protected]>
1 parent d4bc33b commit 06e6e85

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

src/main/java/io/r2dbc/postgresql/client/BalancedResolverGroup.java

+9-1
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,21 @@
3030
* @since 0.8.6
3131
*/
3232
final class BalancedResolverGroup extends AddressResolverGroup<InetSocketAddress> {
33+
3334
BalancedResolverGroup() {
3435
}
3536

36-
public static final BalancedResolverGroup INSTANCE = new BalancedResolverGroup();
37+
public static final BalancedResolverGroup INSTANCE;
38+
39+
static {
40+
41+
INSTANCE = new BalancedResolverGroup();
42+
Runtime.getRuntime().addShutdownHook(new Thread(INSTANCE::close, "R2DBC-Postgresql-BalancedResolverGroup-ShutdownHook"));
43+
}
3744

3845
@Override
3946
protected AddressResolver<InetSocketAddress> newResolver(EventExecutor executor) throws Exception {
4047
return new RoundRobinInetAddressResolver(executor, new DefaultNameResolver(executor)).asAddressResolver();
4148
}
49+
4250
}

src/main/java/io/r2dbc/postgresql/client/ReactorNettyClient.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -373,7 +373,7 @@ public static Mono<ReactorNettyClient> connect(SocketAddress socketAddress, Conn
373373
tcpClient = tcpClient.runOn(settings.getRequiredLoopResources());
374374
}
375375

376-
tcpClient = tcpClient.resolver(new BalancedResolverGroup());
376+
tcpClient = tcpClient.resolver(BalancedResolverGroup.INSTANCE);
377377
tcpClient = tcpClient.option(ChannelOption.SO_KEEPALIVE, settings.isTcpKeepAlive());
378378
tcpClient = tcpClient.option(ChannelOption.TCP_NODELAY, settings.isTcpNoDelay());
379379
}

0 commit comments

Comments
 (0)