# sprint-1 Fixed unwrap for MutableEntry used in Cache.invoke
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/362820e7 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/362820e7 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/362820e7 Branch: refs/heads/ignite-189 Commit: 362820e775985b1f243725f277ab895c08249d9f Parents: 1c5681a Author: sboikov <sboi...@gridgain.com> Authored: Thu Feb 12 11:44:05 2015 +0300 Committer: sboikov <sboi...@gridgain.com> Committed: Thu Feb 12 11:44:05 2015 +0300 ---------------------------------------------------------------------- .../ignite/internal/processors/cache/CacheInvokeEntry.java | 5 ++++- .../processors/cache/IgniteCacheInvokeAbstractTest.java | 4 ++++ 2 files changed, 8 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/362820e7/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheInvokeEntry.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheInvokeEntry.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheInvokeEntry.java index 829c6a0..541993c 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheInvokeEntry.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheInvokeEntry.java @@ -43,6 +43,7 @@ public class CacheInvokeEntry<K, V> implements MutableEntry<K, V> { private boolean modified; /** + * @param cctx Cache context. * @param key Key. * @param val Value. */ @@ -90,7 +91,9 @@ public class CacheInvokeEntry<K, V> implements MutableEntry<K, V> { /** {@inheritDoc} */ @SuppressWarnings("unchecked") @Override public <T> T unwrap(Class<T> cls) { - if(cls.isAssignableFrom(getClass())) + if (cls.equals(Ignite.class)) + return (T)cctx.kernalContext().grid(); + else if (cls.isAssignableFrom(getClass())) return cls.cast(this); throw new IllegalArgumentException("Unwrapping to class is not supported: " + cls); http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/362820e7/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheInvokeAbstractTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheInvokeAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheInvokeAbstractTest.java index 04150e3..a4f8297 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheInvokeAbstractTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheInvokeAbstractTest.java @@ -561,6 +561,10 @@ public abstract class IgniteCacheInvokeAbstractTest extends IgniteCacheAbstractT /** {@inheritDoc} */ @Override public Integer process(MutableEntry<Integer, Integer> e, Object... arguments) throws EntryProcessorException { + Ignite ignite = e.unwrap(Ignite.class); + + assertNotNull(ignite); + if (e.exists()) { Integer val = e.getValue();