You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ag...@apache.org on 2015/11/02 16:21:28 UTC

ignite git commit: IGNITE-950-new - Fixing keepBinary for return values.

Repository: ignite
Updated Branches:
  refs/heads/ignite-950-new 75340e0d1 -> c04cc6605


IGNITE-950-new - Fixing keepBinary for return values.


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

Branch: refs/heads/ignite-950-new
Commit: c04cc6605a330cd144a67438cec4a3168c8c2f2c
Parents: 75340e0
Author: Alexey Goncharuk <al...@gmail.com>
Authored: Mon Nov 2 18:21:15 2015 +0300
Committer: Alexey Goncharuk <al...@gmail.com>
Committed: Mon Nov 2 18:21:15 2015 +0300

----------------------------------------------------------------------
 .../processors/cache/GridCacheReturn.java       | 21 ++++++++++++--------
 .../distributed/dht/GridDhtTxPrepareFuture.java |  6 +++---
 .../dht/atomic/GridDhtAtomicCache.java          |  3 ++-
 .../dht/atomic/GridNearAtomicUpdateFuture.java  |  6 +++---
 .../local/atomic/GridLocalAtomicCache.java      |  2 +-
 .../transactions/IgniteTxLocalAdapter.java      | 20 +++++++++----------
 6 files changed, 32 insertions(+), 26 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/c04cc660/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheReturn.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheReturn.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheReturn.java
index 22b9f8d..2f5a6ff 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheReturn.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheReturn.java
@@ -101,13 +101,13 @@ public class GridCacheReturn implements Externalizable, Message {
      * @param v Value.
      * @param success Success flag.
      */
-    public GridCacheReturn(GridCacheContext cctx, boolean loc, Object v, boolean success) {
+    public GridCacheReturn(GridCacheContext cctx, boolean loc, boolean keepBinary, Object v, boolean success) {
         this.loc = loc;
         this.success = success;
 
         if (v != null) {
             if (v instanceof CacheObject)
-                initValue(cctx, (CacheObject)v);
+                initValue(cctx, (CacheObject)v, keepBinary);
             else {
                 assert loc;
 
@@ -152,8 +152,8 @@ public class GridCacheReturn implements Externalizable, Message {
      * @param v Value.
      * @return This instance for chaining.
      */
-    public GridCacheReturn value(GridCacheContext cctx, CacheObject v) {
-        initValue(cctx, v);
+    public GridCacheReturn value(GridCacheContext cctx, CacheObject v, boolean keepBinary) {
+        initValue(cctx, v, keepBinary);
 
         return this;
     }
@@ -171,10 +171,15 @@ public class GridCacheReturn implements Externalizable, Message {
      * @param success Success flag to set.
      * @return This instance for chaining.
      */
-    public GridCacheReturn set(GridCacheContext cctx, @Nullable CacheObject cacheObj, boolean success) {
+    public GridCacheReturn set(
+        GridCacheContext cctx,
+        @Nullable CacheObject cacheObj,
+        boolean success,
+        boolean keepBinary
+    ) {
         this.success = success;
 
-        initValue(cctx, cacheObj);
+        initValue(cctx, cacheObj, keepBinary);
 
         return this;
     }
@@ -183,9 +188,9 @@ public class GridCacheReturn implements Externalizable, Message {
      * @param cctx Cache context.
      * @param cacheObj Cache object.
      */
-    private void initValue(GridCacheContext cctx, @Nullable CacheObject cacheObj) {
+    private void initValue(GridCacheContext cctx, @Nullable CacheObject cacheObj, boolean keepBinary) {
         if (loc)
-            v = CU.value(cacheObj, cctx, true);
+            v = cctx.cacheObjectContext().unwrapPortableIfNeeded(cacheObj, keepBinary, true);
         else {
             assert cacheId == 0 || cacheId == cctx.cacheId();
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/c04cc660/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 42cd9a3..87c44f7 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
@@ -316,7 +316,7 @@ public final class GridDhtTxPrepareFuture extends GridCompoundFuture<IgniteInter
      *
      */
     private void onEntriesLocked() {
-        ret = new GridCacheReturn(null, tx.localResult(), null, true);
+        ret = new GridCacheReturn(null, tx.localResult(), true, null, true);
 
         for (IgniteTxEntry writeEntry : writes) {
             IgniteTxEntry txEntry = tx.entry(writeEntry.txKey());
@@ -404,7 +404,7 @@ public final class GridDhtTxPrepareFuture extends GridCompoundFuture<IgniteInter
                             }
                         }
                         else if (retVal)
-                            ret.value(cacheCtx, val);
+                            ret.value(cacheCtx, val, txEntry.keepBinary());
                     }
 
                     if (hasFilters && !cacheCtx.isAll(cached, txEntry.filters())) {
@@ -1553,7 +1553,7 @@ public final class GridDhtTxPrepareFuture extends GridCompoundFuture<IgniteInter
                                         false, null, null, null, false);
 
                                 if (retVal && !invoke)
-                                    ret.value(cacheCtx, info.value());
+                                    ret.value(cacheCtx, info.value(), false);
                             }
 
                             break;

http://git-wip-us.apache.org/repos/asf/ignite/blob/c04cc660/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
index 167a334..715a763 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
@@ -1199,7 +1199,7 @@ public class GridDhtAtomicCache<K, V> extends GridDhtCacheAdapter<K, V> {
                         }
 
                         if (retVal == null)
-                            retVal = new GridCacheReturn(ctx, node.isLocal(), null, true);
+                            retVal = new GridCacheReturn(ctx, node.isLocal(), true, null, true);
 
                         res.returnValue(retVal);
 
@@ -1883,6 +1883,7 @@ public class GridDhtAtomicCache<K, V> extends GridDhtCacheAdapter<K, V> {
 
                         retVal = new GridCacheReturn(ctx,
                             node.isLocal(),
+                            req.keepBinary(),
                             req.returnValue() ? ret : null,
                             updRes.success());
                     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/c04cc660/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java
index ae768ff..02c62d8 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java
@@ -479,7 +479,7 @@ public class GridNearAtomicUpdateFuture extends GridFutureAdapter<Object>
                 cctx.io().send(req.nodeId(), req, cctx.ioPolicy());
 
                 if (syncMode == FULL_ASYNC)
-                    onDone(new GridCacheReturn(cctx, true, null, true));
+                    onDone(new GridCacheReturn(cctx, true, true, null, true));
             }
             catch (IgniteCheckedException e) {
                 state.onSendError(req, e);
@@ -528,7 +528,7 @@ public class GridNearAtomicUpdateFuture extends GridFutureAdapter<Object>
         }
 
         if (syncMode == FULL_ASYNC)
-            onDone(new GridCacheReturn(cctx, true, null, true));
+            onDone(new GridCacheReturn(cctx, true, true, null, true));
     }
 
     /**
@@ -898,7 +898,7 @@ public class GridNearAtomicUpdateFuture extends GridFutureAdapter<Object>
                 assert pendingMappings != null;
 
                 if (size == 0)
-                    onDone(new GridCacheReturn(cctx, true, null, true));
+                    onDone(new GridCacheReturn(cctx, true, true, null, true));
                 else
                     doUpdate(pendingMappings);
             }

http://git-wip-us.apache.org/repos/asf/ignite/blob/c04cc660/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/atomic/GridLocalAtomicCache.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/atomic/GridLocalAtomicCache.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/atomic/GridLocalAtomicCache.java
index 3032261..dd01c88 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/atomic/GridLocalAtomicCache.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/atomic/GridLocalAtomicCache.java
@@ -1045,7 +1045,7 @@ public class GridLocalAtomicCache<K, V> extends GridCacheAdapter<K, V> {
         if (err != null)
             throw err;
 
-        Object ret = res == null ? null : rawRetval ? new GridCacheReturn(ctx,  true, res.get2(), res.get1()) :
+        Object ret = res == null ? null : rawRetval ? new GridCacheReturn(ctx,  true, keepPortable, res.get2(), res.get1()) :
             (retval || op == TRANSFORM) ? res.get2() : res.get1();
 
         if (op == TRANSFORM && ret == null)

http://git-wip-us.apache.org/repos/asf/ignite/blob/c04cc660/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 7783d45..1001b36 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
@@ -2059,7 +2059,7 @@ public abstract class IgniteTxLocalAdapter extends IgniteTxAdapter
         @Nullable Map<KeyCacheObject, GridCacheVersion> drRmvMap,
         boolean skipStore,
         final boolean singleRmv,
-        boolean keepBinary
+        final boolean keepBinary
     ) {
         assert retval || invokeMap == null;
 
@@ -2200,7 +2200,7 @@ public abstract class IgniteTxLocalAdapter extends IgniteTxAdapter
                             if (old != null && hasFilters && !filter(entry.context(), cacheKey, old, filter)) {
                                 skipped = skip(skipped, cacheKey);
 
-                                ret.set(cacheCtx, old, false);
+                                ret.set(cacheCtx, old, false, keepBinary);
 
                                 if (!readCommitted()) {
                                     // Enlist failed filters as reads for non-read-committed mode,
@@ -2271,7 +2271,7 @@ public abstract class IgniteTxLocalAdapter extends IgniteTxAdapter
                                         assert txEntry.op() != TRANSFORM : txEntry;
 
                                         if (retval)
-                                            ret.set(cacheCtx, null, true);
+                                            ret.set(cacheCtx, null, true, keepBinary);
                                         else
                                             ret.success(true);
                                     }
@@ -2284,7 +2284,7 @@ public abstract class IgniteTxLocalAdapter extends IgniteTxAdapter
                                     }
 
                                     if (retval && !transform)
-                                        ret.set(cacheCtx, old, true);
+                                        ret.set(cacheCtx, old, true, keepBinary);
                                     else {
                                         if (txEntry.op() == TRANSFORM) {
                                             GridCacheVersion ver;
@@ -2312,7 +2312,7 @@ public abstract class IgniteTxLocalAdapter extends IgniteTxAdapter
                             // Pessimistic.
                             else {
                                 if (retval && !transform)
-                                    ret.set(cacheCtx, old, true);
+                                    ret.set(cacheCtx, old, true, keepBinary);
                                 else
                                     ret.success(true);
                             }
@@ -2340,7 +2340,7 @@ public abstract class IgniteTxLocalAdapter extends IgniteTxAdapter
                         if (hasFilters && !filter(entry.context(), cacheKey, v, filter)) {
                             skipped = skip(skipped, cacheKey);
 
-                            ret.set(cacheCtx, v, false);
+                            ret.set(cacheCtx, v, false, keepBinary);
 
                             continue;
                         }
@@ -2387,7 +2387,7 @@ public abstract class IgniteTxLocalAdapter extends IgniteTxAdapter
                         txEntry.markValid();
 
                         if (retval && !transform)
-                            ret.set(cacheCtx, v, true);
+                            ret.set(cacheCtx, v, true, keepBinary);
                         else
                             ret.success(true);
                     }
@@ -2429,7 +2429,7 @@ public abstract class IgniteTxLocalAdapter extends IgniteTxAdapter
                             assert !hasFilters && !retval;
                             assert val == null || Boolean.TRUE.equals(val) : val;
 
-                            ret.set(cacheCtx, null, val != null);
+                            ret.set(cacheCtx, null, val != null, keepBinary);
                         }
                         else {
                             CacheObject cacheVal = cacheCtx.toCacheObject(val);
@@ -2454,7 +2454,7 @@ public abstract class IgniteTxLocalAdapter extends IgniteTxAdapter
                             else {
                                 boolean success = !hasFilters || isAll(e.context(), key, cacheVal, filter);
 
-                                ret.set(cacheCtx, cacheVal, success);
+                                ret.set(cacheCtx, cacheVal, success, keepBinary);
                             }
                         }
                     }
@@ -2605,7 +2605,7 @@ public abstract class IgniteTxLocalAdapter extends IgniteTxAdapter
                             }
                         }
                         else
-                            ret.value(cacheCtx, v);
+                            ret.value(cacheCtx, v, txEntry.keepBinary());
                     }
 
                     boolean pass = F.isEmpty(filter) || cacheCtx.isAll(cached, filter);