More debug info for 'get' futures.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/3de5f98c Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/3de5f98c Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/3de5f98c Branch: refs/heads/ignite-1349 Commit: 3de5f98cf91f17a2848b0ffae8326011e88e7e7e Parents: 3a280a0 Author: sboikov <[email protected]> Authored: Thu Sep 3 11:39:33 2015 +0300 Committer: sboikov <[email protected]> Committed: Thu Sep 3 11:39:33 2015 +0300 ---------------------------------------------------------------------- .../dht/GridPartitionedGetFuture.java | 19 +++++++++++++++-- .../distributed/near/GridNearGetFuture.java | 22 +++++++++++++++++++- .../ignite/internal/util/lang/GridFunc.java | 1 + 3 files changed, 39 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/3de5f98c/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridPartitionedGetFuture.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridPartitionedGetFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridPartitionedGetFuture.java index 82ff69f..2f0de86 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridPartitionedGetFuture.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridPartitionedGetFuture.java @@ -290,7 +290,7 @@ public class GridPartitionedGetFuture<K, V> extends GridCompoundIdentityFuture<M * @param f Future. * @return {@code True} if mini-future. */ - private boolean isMini(IgniteInternalFuture<Map<K, V>> f) { + private boolean isMini(IgniteInternalFuture<?> f) { return f.getClass().equals(MiniFuture.class); } @@ -598,7 +598,22 @@ public class GridPartitionedGetFuture<K, V> extends GridCompoundIdentityFuture<M /** {@inheritDoc} */ @Override public String toString() { - return S.toString(GridPartitionedGetFuture.class, this, super.toString()); + Collection<String> futs = F.viewReadOnly(futures(), new C1<IgniteInternalFuture<?>, String>() { + @SuppressWarnings("unchecked") + @Override public String apply(IgniteInternalFuture<?> f) { + if (isMini(f)) { + return "[node=" + ((MiniFuture)f).node().id() + + ", loc=" + ((MiniFuture)f).node().isLocal() + + ", done=" + f.isDone() + "]"; + } + else + return "[loc=true, done=" + f.isDone() + "]"; + } + }); + + return S.toString(GridPartitionedGetFuture.class, this, + "innerFuts", futs, + "super", super.toString()); } /** http://git-wip-us.apache.org/repos/asf/ignite/blob/3de5f98c/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearGetFuture.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearGetFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearGetFuture.java index 4de8294..9d2113e 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearGetFuture.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearGetFuture.java @@ -291,7 +291,7 @@ public final class GridNearGetFuture<K, V> extends GridCompoundIdentityFuture<Ma * @param f Future. * @return {@code True} if mini-future. */ - private boolean isMini(IgniteInternalFuture<Map<K, V>> f) { + private boolean isMini(IgniteInternalFuture<?> f) { return f.getClass().equals(MiniFuture.class); } @@ -721,6 +721,26 @@ public final class GridNearGetFuture<K, V> extends GridCompoundIdentityFuture<Ma return map; } + /** {@inheritDoc} */ + @Override public String toString() { + Collection<String> futs = F.viewReadOnly(futures(), new C1<IgniteInternalFuture<?>, String>() { + @SuppressWarnings("unchecked") + @Override public String apply(IgniteInternalFuture<?> f) { + if (isMini(f)) { + return "[node=" + ((MiniFuture)f).node().id() + + ", loc=" + ((MiniFuture)f).node().isLocal() + + ", done=" + f.isDone() + "]"; + } + else + return "[loc=true, done=" + f.isDone() + "]"; + } + }); + + return S.toString(GridNearGetFuture.class, this, + "innerFuts", futs, + "super", super.toString()); + } + /** * Mini-future for get operations. Mini-futures are only waiting on a single * node as opposed to multiple nodes. http://git-wip-us.apache.org/repos/asf/ignite/blob/3de5f98c/modules/core/src/main/java/org/apache/ignite/internal/util/lang/GridFunc.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/lang/GridFunc.java b/modules/core/src/main/java/org/apache/ignite/internal/util/lang/GridFunc.java index a9e6cd0..ffeeca0 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/util/lang/GridFunc.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/util/lang/GridFunc.java @@ -1658,6 +1658,7 @@ public class GridFunc { * @return Light-weight view on given collection with provided predicate. */ @SuppressWarnings("RedundantTypeArguments") + @SafeVarargs public static <T1, T2> Collection<T2> viewReadOnly(@Nullable final Collection<? extends T1> c, final IgniteClosure<? super T1, T2> trans, @Nullable final IgnitePredicate<? super T1>... p) { A.notNull(trans, "trans");
