Repository: incubator-ignite Updated Branches: refs/heads/ignite-285 3021ef8d0 -> 3cbc0ca39
IGNITE-285 - Fixing read committed mode for transaction. Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/3cbc0ca3 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/3cbc0ca3 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/3cbc0ca3 Branch: refs/heads/ignite-285 Commit: 3cbc0ca392a4622c81028f5815b1319db9097f41 Parents: 3021ef8 Author: Alexey Goncharuk <agoncha...@gridgain.com> Authored: Tue Feb 17 19:29:04 2015 -0800 Committer: Alexey Goncharuk <agoncha...@gridgain.com> Committed: Tue Feb 17 19:29:04 2015 -0800 ---------------------------------------------------------------------- .../processors/cache/transactions/IgniteTxLocalAdapter.java | 8 ++++++++ .../distributed/near/IgniteCacheNearReadCommittedTest.java | 3 +++ 2 files changed, 11 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/3cbc0ca3/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 8ffe224..f1efff6 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 @@ -1346,6 +1346,14 @@ public abstract class IgniteTxLocalAdapter<K, V> extends IgniteTxAdapter<K, V> break; // While loop. } + finally { + if (cacheCtx.isNear() && entry != null && readCommitted()) { + if (cacheCtx.affinity().belongs(cacheCtx.localNode(), entry.key(), topVer)) { + if (entry.markObsolete(xidVer)) + cacheCtx.cache().removeEntry(entry); + } + } + } } } } http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/3cbc0ca3/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheNearReadCommittedTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheNearReadCommittedTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheNearReadCommittedTest.java index 8de0509..d5aec53 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheNearReadCommittedTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/IgniteCacheNearReadCommittedTest.java @@ -29,6 +29,7 @@ import static org.apache.ignite.transactions.TransactionIsolation.*; /** * */ +@SuppressWarnings("RedundantMethodOverride") public class IgniteCacheNearReadCommittedTest extends GridCacheAbstractSelfTest { /** {@inheritDoc} */ @Override protected int gridCount() { @@ -55,6 +56,8 @@ public class IgniteCacheNearReadCommittedTest extends GridCacheAbstractSelfTest cache.put(key, key); + assertEquals(1, cache.localSize()); + try (Transaction tx = ignite(0).transactions().txStart(PESSIMISTIC, READ_COMMITTED)) { assertEquals(key, cache.get(key));