You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2016/12/09 09:57:35 UTC

[2/8] ignite git commit: IGNITE-3699: Fixed ttl calculation for invoke in transaction mode

IGNITE-3699: Fixed ttl calculation for invoke in transaction mode


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

Branch: refs/heads/ignite-3699
Commit: ff608f2244cb80d521833d7ecbb5c31c8e81af4b
Parents: 431bdb0
Author: Amir Akhmedov <am...@gmail.com>
Authored: Mon Sep 5 22:30:51 2016 -0400
Committer: Amir Akhmedov <am...@gmail.com>
Committed: Mon Sep 5 22:30:51 2016 -0400

----------------------------------------------------------------------
 .../distributed/dht/GridDhtTxPrepareFuture.java |  4 ++-
 ...eCacheExpiryPolicyWithStoreAbstractTest.java | 33 +++++++++++++++++++-
 2 files changed, 35 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/ff608f22/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
index 3cb0fbc..a6f9033 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtTxPrepareFuture.java
@@ -432,7 +432,9 @@ public final class GridDhtTxPrepareFuture extends GridCompoundFuture<IgniteInter
 
                             if (op == NOOP) {
                                 if (expiry != null) {
-                                    long ttl = CU.toTtl(expiry.getExpiryForAccess());
+                                    long ttl = txEntry.previousValue() == null ?
+                                            CU.toTtl(expiry.getExpiryForCreation()) :
+                                            CU.toTtl(expiry.getExpiryForAccess());
 
                                     txEntry.ttl(ttl);
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/ff608f22/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/expiry/IgniteCacheExpiryPolicyWithStoreAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/expiry/IgniteCacheExpiryPolicyWithStoreAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/expiry/IgniteCacheExpiryPolicyWithStoreAbstractTest.java
index fb0254a..a88443e 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/expiry/IgniteCacheExpiryPolicyWithStoreAbstractTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/expiry/IgniteCacheExpiryPolicyWithStoreAbstractTest.java
@@ -25,7 +25,6 @@ import javax.cache.integration.CompletionListenerFuture;
 import javax.cache.processor.EntryProcessor;
 import javax.cache.processor.MutableEntry;
 import org.apache.ignite.IgniteCache;
-import org.apache.ignite.cache.CacheAtomicityMode;
 import org.apache.ignite.cache.CachePeekMode;
 import org.apache.ignite.cache.store.CacheStore;
 import org.apache.ignite.configuration.CacheConfiguration;
@@ -149,6 +148,38 @@ public abstract class IgniteCacheExpiryPolicyWithStoreAbstractTest extends Ignit
         storeMap.put(key, 100);
 
         try {
+            Integer res = cache.invoke(key, new EntryProcessor<Integer, Integer, Integer>() {
+                @Override public Integer process(MutableEntry<Integer, Integer> e, Object... args) {
+                    return e.getValue();
+                }
+            });
+
+            assertEquals((Integer)100, res);
+
+            checkTtl(key, 500, true);
+
+            assertEquals((Integer)100, cache.localPeek(key, CachePeekMode.ONHEAP));
+
+            U.sleep(600);
+
+            checkExpired(key);
+        }
+        finally {
+            cache.removeAll();
+        }
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testGetReadThrough() throws Exception {
+        IgniteCache<Integer, Integer> cache = jcache(0);
+
+        final Integer key = primaryKeys(cache, 1, 100_000).get(0);
+
+        storeMap.put(key, 100);
+
+        try {
             Integer res = cache.get(key);
 
             assertEquals((Integer)100, res);