diff --git a/src/main/java/io/vertx/core/http/impl/HttpChannelConnector.java b/src/main/java/io/vertx/core/http/impl/HttpChannelConnector.java index acbf70950..472cff78c 100644 --- a/src/main/java/io/vertx/core/http/impl/HttpChannelConnector.java +++ b/src/main/java/io/vertx/core/http/impl/HttpChannelConnector.java @@ -114,7 +114,6 @@ class HttpChannelConnector implements ConnectionProvider { Bootstrap bootstrap = new Bootstrap(); bootstrap.group(context.nettyEventLoop()); - bootstrap.channelFactory(client.getVertx().transport().channelFactory(domainSocket)); applyConnectionOptions(domainSocket, bootstrap); diff --git a/src/main/java/io/vertx/core/net/impl/AsyncResolveConnectHelper.java b/src/main/java/io/vertx/core/net/impl/AsyncResolveConnectHelper.java index c109c5ef4..bfc47d51c 100644 --- a/src/main/java/io/vertx/core/net/impl/AsyncResolveConnectHelper.java +++ b/src/main/java/io/vertx/core/net/impl/AsyncResolveConnectHelper.java @@ -35,7 +35,12 @@ public class AsyncResolveConnectHelper { SocketAddress socketAddress, ServerBootstrap bootstrap) { Promise promise = vertx.getAcceptorEventLoopGroup().next().newPromise(); - bootstrap.channelFactory(vertx.transport().serverChannelFactory(socketAddress.path() != null)); + try { + bootstrap.channelFactory(vertx.transport().serverChannelFactory(socketAddress.path() != null)); + } catch (Exception e) { + promise.setFailure(e); + return promise; + } if (socketAddress.path() != null) { java.net.SocketAddress converted = vertx.transport().convert(socketAddress, true); ChannelFuture future = bootstrap.bind(converted); diff --git a/src/main/java/io/vertx/core/net/impl/ChannelProvider.java b/src/main/java/io/vertx/core/net/impl/ChannelProvider.java index 70d681d09..5ce07a0ec 100644 --- a/src/main/java/io/vertx/core/net/impl/ChannelProvider.java +++ b/src/main/java/io/vertx/core/net/impl/ChannelProvider.java @@ -77,6 +77,12 @@ public final class ChannelProvider { } private void connect(SocketAddress remoteAddress, SocketAddress peerAddress, String serverName, boolean ssl, Promise p) { + try { + bootstrap.channelFactory(context.owner().transport().channelFactory(remoteAddress.path() != null)); + } catch (Exception e) { + p.setFailure(e); + return; + } if (proxyOptions != null) { handleProxyConnect(remoteAddress, peerAddress, serverName, ssl, p); } else { diff --git a/src/main/java/io/vertx/core/net/impl/NetClientImpl.java b/src/main/java/io/vertx/core/net/impl/NetClientImpl.java index 049a46eee..ac3ddddca 100644 --- a/src/main/java/io/vertx/core/net/impl/NetClientImpl.java +++ b/src/main/java/io/vertx/core/net/impl/NetClientImpl.java @@ -197,7 +197,6 @@ public class NetClientImpl implements MetricsProvider, NetClient { sslHelper.validate(vertx); Bootstrap bootstrap = new Bootstrap(); bootstrap.group(context.nettyEventLoop()); - bootstrap.channelFactory(vertx.transport().channelFactory(remoteAddress.path() != null)); applyConnectionOptions(remoteAddress.path() != null, bootstrap);