Repository: ignite Updated Branches: refs/heads/master ed9c1377c -> d7111f3ee
IGNITE-10623 More graceful error handling when node is stopping - Fixes #5623. Signed-off-by: Alexey Goncharuk <alexey.goncha...@gmail.com> Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/d7111f3e Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/d7111f3e Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/d7111f3e Branch: refs/heads/master Commit: d7111f3eec448009a6d3c9ff3731ac2e121660f2 Parents: ed9c137 Author: EdShangGG <eshangar...@gridgain.com> Authored: Tue Dec 11 18:37:45 2018 +0300 Committer: Alexey Goncharuk <alexey.goncha...@gmail.com> Committed: Tue Dec 11 18:39:45 2018 +0300 ---------------------------------------------------------------------- .../processors/cache/GridCacheMvccManager.java | 23 ++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/d7111f3e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMvccManager.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMvccManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMvccManager.java index a512a82..0281631 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMvccManager.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMvccManager.java @@ -422,11 +422,26 @@ public class GridCacheMvccManager extends GridCacheSharedManagerAdapter { * @param err Error. */ private void cancelClientFutures(IgniteCheckedException err) { - for (GridCacheFuture<?> fut : activeFutures()) - ((GridFutureAdapter)fut).onDone(err); + cancelFuturesWithException(err, activeFutures()); + cancelFuturesWithException(err, atomicFuts.values()); + } - for (GridCacheAtomicFuture<?> future : atomicFuts.values()) - ((GridFutureAdapter)future).onDone(err); + /** + * @param err Error to complete future with. + * @param futures Collection of futures. + */ + private void cancelFuturesWithException( + IgniteCheckedException err, + Collection<? extends IgniteInternalFuture<?>> futures + ) { + for (IgniteInternalFuture<?> fut : futures) { + try { + ((GridFutureAdapter)fut).onDone(err); + } + catch (Exception e) { + U.warn(log, "Failed to complete future on node stop (will ignore): " + fut, e); + } + } } /**