IGNITE-2083 EntryProcessor is called twice on primary node in transactional cache
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/da3f323d Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/da3f323d Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/da3f323d Branch: refs/heads/ignite-1537 Commit: da3f323d71ae064808c710746a352b08372a2f45 Parents: bfaa9de Author: sboikov <[email protected]> Authored: Mon Dec 7 09:16:05 2015 +0300 Committer: sboikov <[email protected]> Committed: Mon Dec 7 09:37:24 2015 +0300 ---------------------------------------------------------------------- .../distributed/dht/GridDhtTxPrepareFuture.java | 15 +++++++++++---- .../GridCachePartitionedHitsAndMissesSelfTest.java | 4 ++-- 2 files changed, 13 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/da3f323d/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 bd80781..3829e28 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 @@ -337,6 +337,13 @@ public final class GridDhtTxPrepareFuture extends GridCompoundFuture<IgniteInter cacheCtx.config().isLoadPreviousValue() && !txEntry.skipStore(); + boolean evt = retVal || txEntry.op() == TRANSFORM; + + EntryProcessor entryProc = null; + + if (evt && txEntry.op() == TRANSFORM) + entryProc = F.first(txEntry.entryProcessors()).get1(); + CacheObject val = cached.innerGet( tx, /*swap*/true, @@ -344,11 +351,11 @@ public final class GridDhtTxPrepareFuture extends GridCompoundFuture<IgniteInter /*fail fast*/false, /*unmarshal*/true, /*metrics*/retVal, - /*event*/retVal, + /*event*/evt, /*tmp*/false, - null, - null, - null, + tx.subjectId(), + entryProc, + tx.resolveTaskName(), null, txEntry.keepBinary()); http://git-wip-us.apache.org/repos/asf/ignite/blob/da3f323d/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedHitsAndMissesSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedHitsAndMissesSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedHitsAndMissesSelfTest.java index a2ae2e1..02eb9d8 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedHitsAndMissesSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedHitsAndMissesSelfTest.java @@ -121,8 +121,8 @@ public class GridCachePartitionedHitsAndMissesSelfTest extends GridCommonAbstrac } // Check that invoke and loader updated metrics - assertEquals(CNT, hits); - assertEquals(CNT, misses); + assertEquals(CNT / 2, hits); + assertEquals(CNT / 2, misses); } finally { stopAllGrids();
