# ignite-656

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

Branch: refs/heads/ignite-646
Commit: 42b96fcae3af8a8c878c54ef2234ce469e8cf027
Parents: 92d27f5
Author: sboikov <sboi...@gridgain.com>
Authored: Thu Apr 23 17:10:20 2015 +0300
Committer: sboikov <sboi...@gridgain.com>
Committed: Thu Apr 23 17:10:20 2015 +0300

----------------------------------------------------------------------
 .../cache/distributed/dht/GridDhtLockFuture.java      | 10 +++-------
 .../cache/transactions/IgniteTxLocalAdapter.java      | 14 ++++++++++----
 2 files changed, 13 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/42b96fca/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockFuture.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockFuture.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockFuture.java
index 7263dfe..dd893ab 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockFuture.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtLockFuture.java
@@ -958,18 +958,14 @@ public final class GridDhtLockFuture<K, V> extends 
GridCompoundIdentityFuture<Bo
      *
      */
     private void loadMissingFromStore() {
-        if (cctx.loadPreviousValue() && cctx.readThrough() && (needReturnVal 
|| read)) {
+        if (!skipStore && cctx.loadPreviousValue() && cctx.readThrough() && 
(needReturnVal || read)) {
             final Map<KeyCacheObject, GridDhtCacheEntry> loadMap = new 
LinkedHashMap<>();
 
             final GridCacheVersion ver = version();
 
             for (GridDhtCacheEntry entry : entries) {
-                if (!entry.hasValue()) {
-                    IgniteTxEntry txEntry = tx != null ? 
tx.entry(entry.txKey()) : null;
-
-                    if (txEntry == null || !txEntry.skipStore())
-                        loadMap.put(entry.key(), entry);
-                }
+                if (!entry.hasValue())
+                    loadMap.put(entry.key(), entry);
             }
 
             try {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/42b96fca/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
index 500a094..dfce09c 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
@@ -1729,8 +1729,6 @@ public abstract class IgniteTxLocalAdapter extends 
IgniteTxAdapter
                                             deserializePortable,
                                             false);
                                     }
-                                    else if (txEntry.skipStore())
-                                        missed.remove(cacheKey);
 
                                     // Even though we bring the value back 
from lock acquisition,
                                     // we still need to recheck primary node 
for consistent values
@@ -1832,10 +1830,18 @@ public abstract class IgniteTxLocalAdapter extends 
IgniteTxAdapter
                     if (missed.isEmpty())
                         return new GridFinishedFuture<>(retMap);
 
+                    IgniteInternalFuture<Map<K, V>> fut0 = 
checkMissed(cacheCtx,
+                        retMap,
+                        missed,
+                        redos,
+                        deserializePortable,
+                        skipVals,
+                        keepCacheObjects,
+                        skipStore);
+
                     return new GridEmbeddedFuture<>(
                         // First future.
-                        checkMissed(cacheCtx, retMap, missed, redos, 
deserializePortable, skipVals, keepCacheObjects,
-                            skipStore),
+                        fut0,
                         // Closure that returns another future, based on 
result from first.
                         new PMC<Map<K, V>>() {
                             @Override public IgniteInternalFuture<Map<K, V>> 
postMiss(Map<K, V> map) {

Reply via email to