From 2e5f054ac3ed59761cc03a92aa10481916ac1bb9 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Thu, 1 May 2014 17:55:00 +0200 Subject: [PATCH] BUG-633: allow overriding of channelFactory It turns out netty does not let us override an already-set channelFactory. Reorder customization to detect when such an override is necessary. Change-Id: I99de69b98e4034d4701313942d9ed2a09923375d Signed-off-by: Robert Varga --- .../protocol/framework/AbstractDispatcher.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/opendaylight/commons/protocol-framework/src/main/java/org/opendaylight/protocol/framework/AbstractDispatcher.java b/opendaylight/commons/protocol-framework/src/main/java/org/opendaylight/protocol/framework/AbstractDispatcher.java index 5e55cddf8e..916ef9a88b 100644 --- a/opendaylight/commons/protocol-framework/src/main/java/org/opendaylight/protocol/framework/AbstractDispatcher.java +++ b/opendaylight/commons/protocol-framework/src/main/java/org/opendaylight/protocol/framework/AbstractDispatcher.java @@ -77,9 +77,6 @@ public abstract class AbstractDispatcher, L extends */ protected ChannelFuture createServer(final InetSocketAddress address, final PipelineInitializer initializer) { final ServerBootstrap b = new ServerBootstrap(); - b.group(this.bossGroup, this.workerGroup); - b.channel(NioServerSocketChannel.class); - b.option(ChannelOption.SO_BACKLOG, 128); b.childHandler(new ChannelInitializer() { @Override @@ -87,10 +84,20 @@ public abstract class AbstractDispatcher, L extends initializer.initializeChannel(ch, new DefaultPromise(executor)); } }); - b.childOption(ChannelOption.SO_KEEPALIVE, true); + b.option(ChannelOption.SO_BACKLOG, 128); + b.childOption(ChannelOption.SO_KEEPALIVE, true); customizeBootstrap(b); + if (b.group() == null) { + b.group(bossGroup, workerGroup); + } + try { + b.channel(NioServerSocketChannel.class); + } catch (IllegalStateException e) { + LOG.trace("Not overriding channelFactory on bootstrap {}", b, e); + } + // Bind and start to accept incoming connections. final ChannelFuture f = b.bind(address); LOG.debug("Initiated server {} at {}.", f, address); -- 2.36.6