ignite-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sevdoki...@apache.org
Subject [09/50] incubator-ignite git commit: #ignite-758: add test for keep portable iterator.
Date Tue, 21 Apr 2015 16:42:29 GMT
#ignite-758: add test for keep portable iterator.


Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/6224b7ef
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/6224b7ef
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/6224b7ef

Branch: refs/heads/ignite-709
Commit: 6224b7efd5b9f6ec50b4ce64b8ff7a3849e1fe04
Parents: a64810a
Author: ivasilinets <ivasilinets@gridgain.com>
Authored: Fri Apr 17 16:57:19 2015 +0300
Committer: ivasilinets <ivasilinets@gridgain.com>
Committed: Fri Apr 17 16:57:19 2015 +0300

----------------------------------------------------------------------
 .../internal/processors/cache/GridCacheAdapter.java | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/6224b7ef/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
index 694f3d8..9bd5653 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
@@ -3670,12 +3670,13 @@ public abstract class GridCacheAdapter<K, V> implements IgniteInternalCache<K,
V
     /**
      * @return JCache Iterator.
      */
-    private Iterator<Cache.Entry<K, V>> localIteratorHonorExpirePolicy() {
+    private Iterator<Cache.Entry<K, V>> localIteratorHonorExpirePolicy(final
CacheOperationContext opCtx) {
         return F.iterator(iterator(),
             new IgniteClosure<Cache.Entry<K, V>, Cache.Entry<K, V>>() {
-                private IgniteCacheExpiryPolicy expiryPlc = ctx.cache().expiryPolicy(ctx.expiry());
+                private IgniteCacheExpiryPolicy expiryPlc = ctx.cache().expiryPolicy(opCtx.expiry());
 
                 @Override public Cache.Entry<K, V> apply(Cache.Entry<K, V> lazyEntry)
{
+                    CacheOperationContext prev = ctx.gate().enter(opCtx);
                     try {
                         V val = localPeek(lazyEntry.getKey(), CachePeekModes.ONHEAP_ONLY,
expiryPlc);
 
@@ -3684,6 +3685,9 @@ public abstract class GridCacheAdapter<K, V> implements IgniteInternalCache<K,
V
                     catch (IgniteCheckedException e) {
                         throw CU.convertToCacheException(e);
                     }
+                    finally {
+                        ctx.gate().leave(prev);
+                    }
                 }
             }, false
         );
@@ -3695,12 +3699,12 @@ public abstract class GridCacheAdapter<K, V> implements IgniteInternalCache<K,
V
     public Iterator<Cache.Entry<K, V>> igniteIterator() {
         GridCacheContext ctx0 = ctx.isNear() ? ctx.near().dht().context() : ctx;
 
-        if (!ctx0.isSwapOrOffheapEnabled() && ctx0.kernalContext().discovery().size()
== 1)
-            return localIteratorHonorExpirePolicy();
-
         final CacheOperationContext opCtx = ctx.operationContextPerCall();
 
-        CacheQueryFuture<Map.Entry<K, V>> fut = ctx0.queries().createScanQuery(null,
false)
+        if (!ctx0.isSwapOrOffheapEnabled() && ctx0.kernalContext().discovery().size()
== 1)
+            return localIteratorHonorExpirePolicy(opCtx);
+
+        CacheQueryFuture<Map.Entry<K, V>> fut = ctx0.queries().createScanQuery(null,
ctx.keepPortable())
             .keepAll(false)
             .execute();
 


Mime
View raw message