Repository: camel Updated Branches: refs/heads/camel-2.12.x 8fa0c9f73 -> e6ff4ffa1 refs/heads/camel-2.13.x ce489dc40 -> 8b5dddf38 refs/heads/master 5d5591e19 -> 9105dd7f2
CAMEL-7391: camel-netty - NettyProducer need to use its own timer, due netty issue https://github.com/netty/netty/issues/2424 Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/9105dd7f Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/9105dd7f Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/9105dd7f Branch: refs/heads/master Commit: 9105dd7f2285b53e53e3c1458974f43c0dd02c2e Parents: 5d5591e Author: Claus Ibsen <davscl...@apache.org> Authored: Thu Apr 24 16:08:58 2014 +0200 Committer: Claus Ibsen <davscl...@apache.org> Committed: Thu Apr 24 16:08:58 2014 +0200 ---------------------------------------------------------------------- .../org/apache/camel/component/netty/NettyProducer.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/9105dd7f/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyProducer.java ---------------------------------------------------------------------- diff --git a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyProducer.java b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyProducer.java index f0758c8..50de736 100644 --- a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyProducer.java +++ b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyProducer.java @@ -51,6 +51,8 @@ import org.jboss.netty.channel.socket.nio.NioClientSocketChannelFactory; import org.jboss.netty.channel.socket.nio.NioDatagramChannelFactory; import org.jboss.netty.channel.socket.nio.NioDatagramWorkerPool; import org.jboss.netty.channel.socket.nio.WorkerPool; +import org.jboss.netty.util.HashedWheelTimer; +import org.jboss.netty.util.Timer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -66,6 +68,7 @@ public class NettyProducer extends DefaultAsyncProducer { private BossPool bossPool; private WorkerPool workerPool; private ObjectPool<Channel> pool; + private Timer timer; public NettyProducer(NettyEndpoint nettyEndpoint, NettyConfiguration configuration) { super(nettyEndpoint); @@ -123,6 +126,8 @@ public class NettyProducer extends DefaultAsyncProducer { } } + timer = new HashedWheelTimer(); + // setup pipeline factory ClientPipelineFactory factory = configuration.getClientPipelineFactory(); if (factory != null) { @@ -175,6 +180,11 @@ public class NettyProducer extends DefaultAsyncProducer { pool = null; } + if (timer != null) { + timer.stop(); + timer = null; + } + super.doStop(); } @@ -327,7 +337,7 @@ public class NettyProducer extends DefaultAsyncProducer { if (bp == null) { // create new pool which we should shutdown when stopping as its not shared bossPool = new NettyClientBossPoolBuilder() - .withTimer(getEndpoint().getTimer()) + .withTimer(timer) .withBossCount(configuration.getBossCount()) .withName("NettyClientTCPBoss") .build();