IGNITE-709 Bug fix: don't create timeout timer task twice on ping.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/ebc1a983 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/ebc1a983 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/ebc1a983 Branch: refs/heads/ignite-836_2 Commit: ebc1a9832ccdba544ab7773e6aef0c5ba1531394 Parents: 05f1488 Author: sevdokimov <sevdoki...@gridgain.com> Authored: Wed May 13 18:41:50 2015 +0300 Committer: sevdokimov <sevdoki...@gridgain.com> Committed: Wed May 13 18:41:50 2015 +0300 ---------------------------------------------------------------------- .../spi/discovery/tcp/TcpClientDiscoverySpi.java | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ebc1a983/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpi.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpi.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpi.java index 29afb58..3c46515 100644 --- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpi.java +++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpClientDiscoverySpi.java @@ -392,18 +392,18 @@ public class TcpClientDiscoverySpi extends TcpDiscoverySpiAdapter implements Tcp return false; } - sockWriter.sendMessage(new TcpDiscoveryClientPingRequest(getLocalNodeId(), nodeId)); - } - } + final GridFutureAdapter<Boolean> finalFut = fut; - final GridFutureAdapter<Boolean> finalFut = fut; + timer.schedule(new TimerTask() { + @Override public void run() { + if (pingFuts.remove(nodeId, finalFut)) + finalFut.onDone(false); + } + }, netTimeout); - timer.schedule(new TimerTask() { - @Override public void run() { - if (pingFuts.remove(nodeId, finalFut)) - finalFut.onDone(false); + sockWriter.sendMessage(new TcpDiscoveryClientPingRequest(getLocalNodeId(), nodeId)); } - }, netTimeout); + } try { return fut.get();