ignite-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sboi...@apache.org
Subject [16/42] incubator-ignite git commit: #ignite-629: Clone on get.
Date Tue, 31 Mar 2015 14:34:52 GMT
#ignite-629: Clone on get.


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

Branch: refs/heads/ignite-sprint-3
Commit: 2062fecfa560fc474faa617f52d43af9b90fd46b
Parents: 3381630
Author: ivasilinets <vasilinetc.ira@gmail.com>
Authored: Sun Mar 29 22:43:51 2015 +0300
Committer: ivasilinets <vasilinetc.ira@gmail.com>
Committed: Sun Mar 29 22:43:51 2015 +0300

----------------------------------------------------------------------
 .../datastructures/GridCacheAtomicReferenceImpl.java         | 8 +++++++-
 .../datastructures/GridCacheAtomicStampedImpl.java           | 8 +++++++-
 2 files changed, 14 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/2062fecf/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/GridCacheAtomicReferenceImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/GridCacheAtomicReferenceImpl.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/GridCacheAtomicReferenceImpl.java
index 4a4efdd..273ae35 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/GridCacheAtomicReferenceImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/GridCacheAtomicReferenceImpl.java
@@ -18,6 +18,8 @@
 package org.apache.ignite.internal.processors.datastructures;
 
 import org.apache.ignite.*;
+import org.apache.ignite.cache.CacheAtomicityMode;
+import org.apache.ignite.cache.CacheMode;
 import org.apache.ignite.internal.*;
 import org.apache.ignite.internal.processors.cache.*;
 import org.apache.ignite.internal.processors.cache.transactions.*;
@@ -68,7 +70,11 @@ public final class GridCacheAtomicReferenceImpl<T> implements GridCacheAtomicRef
     /** Callable for {@link #get} operation */
     private final Callable<T> getCall = new Callable<T>() {
         @Override public T call() throws Exception {
-            GridCacheAtomicReferenceValue<T> ref = atomicView.get(key);
+            boolean clone = ctx.cache().configuration().getCacheMode() == CacheMode.LOCAL
&&
+                ctx.cache().configuration().getAtomicityMode() == CacheAtomicityMode.ATOMIC;
+
+            GridCacheAtomicReferenceValue<T> ref = clone ? X.cloneObject(atomicView.get(key),
false, true) :
+                atomicView.get(key);
 
             if (ref == null)
                 throw new IgniteCheckedException("Failed to find atomic reference with given
name: " + name);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/2062fecf/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/GridCacheAtomicStampedImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/GridCacheAtomicStampedImpl.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/GridCacheAtomicStampedImpl.java
index 64f32fc..86b19af 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/GridCacheAtomicStampedImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/datastructures/GridCacheAtomicStampedImpl.java
@@ -18,6 +18,8 @@
 package org.apache.ignite.internal.processors.datastructures;
 
 import org.apache.ignite.*;
+import org.apache.ignite.cache.CacheAtomicityMode;
+import org.apache.ignite.cache.CacheMode;
 import org.apache.ignite.internal.*;
 import org.apache.ignite.internal.processors.cache.*;
 import org.apache.ignite.internal.processors.cache.transactions.*;
@@ -70,7 +72,11 @@ public final class GridCacheAtomicStampedImpl<T, S> implements GridCacheAtomicSt
     /** Callable for {@link #get()} operation */
     private final Callable<IgniteBiTuple<T, S>> getCall = new Callable<IgniteBiTuple<T,
S>>() {
         @Override public IgniteBiTuple<T, S> call() throws Exception {
-            GridCacheAtomicStampedValue<T, S> stmp = atomicView.get(key);
+            boolean clone = ctx.cache().configuration().getCacheMode() == CacheMode.LOCAL
&&
+                ctx.cache().configuration().getAtomicityMode() == CacheAtomicityMode.ATOMIC;
+
+            GridCacheAtomicStampedValue<T, S> stmp = clone ? X.cloneObject(atomicView.get(key),
false, true) :
+                atomicView.get(key);
 
             if (stmp == null)
                 throw new IgniteCheckedException("Failed to find atomic stamped with given
name: " + name);


Mime
View raw message