ARTEMIS-1287/ARTEMIS-1292 Fixing intermittent failure on reconnects
Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/41a03de0 Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/41a03de0 Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/41a03de0 Branch: refs/heads/master Commit: 41a03de02fac02f4af1dd7280997144948ddd924 Parents: de4ea0f Author: Clebert Suconic <[email protected]> Authored: Mon Jul 17 09:11:39 2017 -0400 Committer: Clebert Suconic <[email protected]> Committed: Tue Jul 18 10:24:39 2017 -0400 ---------------------------------------------------------------------- .../core/protocol/core/ServerSessionPacketHandler.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/41a03de0/artemis-server/src/main/java/org/apache/activemq/artemis/core/protocol/core/ServerSessionPacketHandler.java ---------------------------------------------------------------------- diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/protocol/core/ServerSessionPacketHandler.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/protocol/core/ServerSessionPacketHandler.java index bd97939..06fb288 100644 --- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/protocol/core/ServerSessionPacketHandler.java +++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/protocol/core/ServerSessionPacketHandler.java @@ -180,8 +180,11 @@ public class ServerSessionPacketHandler implements ChannelHandler { this.callExecutor = server.getExecutorFactory().getExecutor(); - // TODO: I wish I could figure out how to create this through OrderedExecutor - this.packetActor = new Actor<>(server.getThreadPool(), this::onMessagePacket); + // In an optimized way packetActor should use the threadPool as the parent executor + // directly from server.getThreadPool(); + // However due to how transferConnection is handled we need to + // use the same executor + this.packetActor = new Actor<>(callExecutor, this::onMessagePacket); if (conn instanceof NettyConnection) { direct = ((NettyConnection) conn).isDirectDeliver();
