ignite-3212 Fixed issue with message send failure and late discovery event.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/6c06bd82 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/6c06bd82 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/6c06bd82 Branch: refs/heads/ignite-3212 Commit: 6c06bd822cf1c6247aaf0adcfc7962ebfa16152e Parents: 548ea43 Author: sboikov <[email protected]> Authored: Thu Jun 2 14:18:06 2016 +0300 Committer: sboikov <[email protected]> Committed: Thu Jun 2 14:18:06 2016 +0300 ---------------------------------------------------------------------- .../distributed/GridCacheTxRecoveryFuture.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/6c06bd82/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryFuture.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryFuture.java index 9fba6cd..b1f1e19 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryFuture.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryFuture.java @@ -399,14 +399,20 @@ public class GridCacheTxRecoveryFuture extends GridCompoundIdentityFuture<Boolea } /** {@inheritDoc} */ - @Override public boolean onNodeLeft(UUID nodeId) { - for (IgniteInternalFuture<?> fut : futures()) + @Override public boolean onNodeLeft(final UUID nodeId) { + for (IgniteInternalFuture<?> fut : futures()) { if (isMini(fut)) { - MiniFuture f = (MiniFuture)fut; + final MiniFuture f = (MiniFuture) fut; - if (f.nodeId().equals(nodeId)) - f.onNodeLeft(nodeId); + if (f.nodeId().equals(nodeId)) { + cctx.kernalContext().closure().runLocalSafe(new Runnable() { + @Override public void run() { + f.onNodeLeft(nodeId); + } + }); + } } + } return true; }
