IGNITE-2236: Reworked "ignoreChildFailures" - it is removed.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/f688f10e Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/f688f10e Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/f688f10e Branch: refs/heads/ignite-2236 Commit: f688f10e68d453094d5b20657c7f39ad4e4bb505 Parents: 0e59144 Author: vozerov-gridgain <voze...@gridgain.com> Authored: Wed Dec 23 16:02:41 2015 +0300 Committer: vozerov-gridgain <voze...@gridgain.com> Committed: Wed Dec 23 16:02:41 2015 +0300 ---------------------------------------------------------------------- .../processors/cache/GridCacheMvccManager.java | 17 ++++++++-- ...arOptimisticSerializableTxPrepareFuture.java | 6 ++-- .../GridNearPessimisticTxPrepareFuture.java | 6 ++-- .../util/future/GridCompoundFuture.java | 33 ++++---------------- 4 files changed, 28 insertions(+), 34 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/f688f10e/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 a297773..c30bcb4 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 @@ -978,9 +978,7 @@ public class GridCacheMvccManager extends GridCacheSharedManagerAdapter { */ @SuppressWarnings("unchecked") public IgniteInternalFuture<?> finishAtomicUpdates(AffinityTopologyVersion topVer) { - GridCompoundFuture<Object, Object> res = new GridCompoundFuture<>(); - - res.ignoreChildFailures(ClusterTopologyCheckedException.class, CachePartialUpdateCheckedException.class); + GridCompoundFuture<Object, Object> res = new FinishAtomicUpdateFuture(); for (GridCacheAtomicFuture<?> fut : atomicFuts.values()) { IgniteInternalFuture<Void> complete = fut.completeFuture(topVer); @@ -1219,6 +1217,19 @@ public class GridCacheMvccManager extends GridCacheSharedManagerAdapter { } /** + * Finish atomic update future. + */ + private static class FinishAtomicUpdateFuture extends GridCompoundFuture<Object, Object> { + /** {@inheritDoc} */ + @Override protected boolean ignoreFailure(Throwable err) { + Class cls = err.getClass(); + + return ClusterTopologyCheckedException.class.isAssignableFrom(cls) || + CachePartialUpdateCheckedException.class.isAssignableFrom(cls); + } + } + + /** * Thread local for pending MVCC candidates. */ private static class MvccCandidateThreadLocal extends ThreadLocal<ArrayList<GridCacheMvccCandidate>> { http://git-wip-us.apache.org/repos/asf/ignite/blob/f688f10e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticSerializableTxPrepareFuture.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticSerializableTxPrepareFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticSerializableTxPrepareFuture.java index f52b3fc..a2b5520 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticSerializableTxPrepareFuture.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticSerializableTxPrepareFuture.java @@ -88,9 +88,11 @@ public class GridNearOptimisticSerializableTxPrepareFuture extends GridNearOptim super(cctx, tx); assert tx.optimistic() && tx.serializable() : tx; + } - // Should wait for all mini futures completion before finishing tx. - ignoreChildFailures(IgniteCheckedException.class); + /** {@inheritDoc} */ + @Override protected boolean ignoreFailure(Throwable err) { + return IgniteCheckedException.class.isAssignableFrom(err.getClass()); } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/ignite/blob/f688f10e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearPessimisticTxPrepareFuture.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearPessimisticTxPrepareFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearPessimisticTxPrepareFuture.java index ffe5373..0f0121c 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearPessimisticTxPrepareFuture.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearPessimisticTxPrepareFuture.java @@ -63,9 +63,11 @@ public class GridNearPessimisticTxPrepareFuture extends GridNearTxPrepareFutureA super(cctx, tx); assert tx.pessimistic() : tx; + } - // Should wait for all mini futures completion before finishing tx. - ignoreChildFailures(IgniteCheckedException.class); + /** {@inheritDoc} */ + @Override protected boolean ignoreFailure(Throwable err) { + return IgniteCheckedException.class.isAssignableFrom(err.getClass()); } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/ignite/blob/f688f10e/modules/core/src/main/java/org/apache/ignite/internal/util/future/GridCompoundFuture.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/future/GridCompoundFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/util/future/GridCompoundFuture.java index 6812aec..4d9029f 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/util/future/GridCompoundFuture.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/util/future/GridCompoundFuture.java @@ -64,9 +64,6 @@ public class GridCompoundFuture<T, R> extends GridFutureAdapter<R> { @GridToStringInclude private IgniteReducer<T, R> rdc; - /** Exceptions to ignore. */ - private Class<? extends Throwable>[] ignoreChildFailures; - /** * Updated via {@link #flagsUpd}. * @@ -142,11 +139,13 @@ public class GridCompoundFuture<T, R> extends GridFutureAdapter<R> { } /** - * @param ignoreChildFailures Flag indicating whether compound future should ignore child futures failures. + * Checks if this compound future should ignore this particular exception. + * + * @param err Exception to check. + * @return {@code True} if this error should be ignored. */ - @SafeVarargs - public final void ignoreChildFailures(Class<? extends Throwable>... ignoreChildFailures) { - this.ignoreChildFailures = ignoreChildFailures; + protected boolean ignoreFailure(Throwable err) { + return false; } /** @@ -278,26 +277,6 @@ public class GridCompoundFuture<T, R> extends GridFutureAdapter<R> { } } - /** - * Checks if this compound future should ignore this particular exception. - * - * @param err Exception to check. - * @return {@code True} if this error should be ignored. - */ - private boolean ignoreFailure(@Nullable Throwable err) { - if (err == null) - return true; - - if (ignoreChildFailures != null) { - for (Class<? extends Throwable> ignoreCls : ignoreChildFailures) { - if (ignoreCls.isAssignableFrom(err.getClass())) - return true; - } - } - - return false; - } - /** {@inheritDoc} */ @Override public String toString() { return S.toString(GridCompoundFuture.class, this,