Repository: ignite
Updated Branches:
  refs/heads/ignite-7803 [created] 389898dda


IGNITE-7803 Fixed tests.


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

Branch: refs/heads/ignite-7803
Commit: 389898dda870ec4fdaaf4ba3b7224bf93b7c09a7
Parents: caba7cc
Author: Alexey Kuznetsov <akuznet...@apache.org>
Authored: Wed Mar 7 18:27:15 2018 +0700
Committer: Alexey Kuznetsov <akuznet...@apache.org>
Committed: Wed Mar 7 18:27:15 2018 +0700

----------------------------------------------------------------------
 .../client/impl/ClientCacheFlagsCodecTest.java  |  27 +++--
 .../internal/client/GridClientCacheFlag.java    |   6 ++
 .../impl/connection/GridClientConnection.java   |  12 ++-
 .../handlers/cache/GridCacheCommandHandler.java | 102 ++++++++++---------
 .../cache/GridCacheCommandHandlerSelfTest.java  |   9 +-
 .../http/jetty/GridJettyRestHandler.java        |   4 +-
 6 files changed, 94 insertions(+), 66 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/389898dd/modules/clients/src/test/java/org/apache/ignite/internal/client/impl/ClientCacheFlagsCodecTest.java
----------------------------------------------------------------------
diff --git 
a/modules/clients/src/test/java/org/apache/ignite/internal/client/impl/ClientCacheFlagsCodecTest.java
 
b/modules/clients/src/test/java/org/apache/ignite/internal/client/impl/ClientCacheFlagsCodecTest.java
index 22e9a25..1598ea7 100644
--- 
a/modules/clients/src/test/java/org/apache/ignite/internal/client/impl/ClientCacheFlagsCodecTest.java
+++ 
b/modules/clients/src/test/java/org/apache/ignite/internal/client/impl/ClientCacheFlagsCodecTest.java
@@ -18,8 +18,8 @@
 package org.apache.ignite.internal.client.impl;
 
 import java.util.Arrays;
-import java.util.Collections;
 import java.util.EnumSet;
+import java.util.Set;
 import junit.framework.TestCase;
 import org.apache.ignite.internal.client.GridClientCacheFlag;
 import org.apache.ignite.internal.client.impl.connection.GridClientConnection;
@@ -37,16 +37,13 @@ public class ClientCacheFlagsCodecTest extends TestCase {
      */
     public void testEncodingDecodingFullness() {
         for (GridClientCacheFlag f : GridClientCacheFlag.values()) {
-            if (f == KEEP_BINARIES)
-                continue;
-
-            int bits = 
GridClientConnection.encodeCacheFlags(Collections.singleton(f));
+            int bits = GridClientConnection.encodeCacheFlags(EnumSet.of(f));
 
             assertTrue(bits != 0);
 
-            boolean out = GridCacheCommandHandler.parseCacheFlags(bits);
+            Set<GridClientCacheFlag> out = 
GridCacheCommandHandler.parseCacheFlags(bits);
 
-            assertEquals(out, true);
+            assertTrue(out.contains(f));
         }
     }
 
@@ -54,9 +51,10 @@ public class ClientCacheFlagsCodecTest extends TestCase {
      * Tests that groups of client flags can be correctly converted to 
corresponding server flag groups.
      */
     public void testGroupEncodingDecoding() {
-        // all
+        // All
         doTestGroup(GridClientCacheFlag.values());
-        // none
+
+        // None
         doTestGroup();
     }
 
@@ -64,15 +62,14 @@ public class ClientCacheFlagsCodecTest extends TestCase {
      * @param flags Client flags to be encoded, decoded and checked.
      */
     private void doTestGroup(GridClientCacheFlag... flags) {
-        EnumSet<GridClientCacheFlag> flagSet = F.isEmpty(flags) ? 
EnumSet.noneOf(GridClientCacheFlag.class) :
-            EnumSet.copyOf(Arrays.asList(flags));
+        EnumSet<GridClientCacheFlag> flagSet = F.isEmpty(flags)
+            ? EnumSet.noneOf(GridClientCacheFlag.class)
+            : EnumSet.copyOf(Arrays.asList(flags));
 
         int bits = GridClientConnection.encodeCacheFlags(flagSet);
 
-        boolean out = GridCacheCommandHandler.parseCacheFlags(bits);
-
-        int length = flagSet.contains(KEEP_BINARIES) ? flagSet.size() - 1 : 
flagSet.size();
+        Set<GridClientCacheFlag> out = 
GridCacheCommandHandler.parseCacheFlags(bits);
 
-        assertEquals(length > 0, out);
+        assertTrue(out.containsAll(flagSet));
     }
 }

http://git-wip-us.apache.org/repos/asf/ignite/blob/389898dd/modules/core/src/main/java/org/apache/ignite/internal/client/GridClientCacheFlag.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/client/GridClientCacheFlag.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/client/GridClientCacheFlag.java
index 2e4831e..d131467 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/client/GridClientCacheFlag.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/client/GridClientCacheFlag.java
@@ -49,4 +49,10 @@ public enum GridClientCacheFlag {
     public static GridClientCacheFlag fromOrdinal(int ord) {
         return ord >= 0 && ord < VALS.length ? VALS[ord] : null;
     }
+
+    /** */
+    public static final int SKIP_STORE_MASK = 0b1;
+
+    /** */
+    public static final int KEEP_BINARIES_MASK = 0b10;
 }

http://git-wip-us.apache.org/repos/asf/ignite/blob/389898dd/modules/core/src/main/java/org/apache/ignite/internal/client/impl/connection/GridClientConnection.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/client/impl/connection/GridClientConnection.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/client/impl/connection/GridClientConnection.java
index 0d7b9e3..ef01609 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/client/impl/connection/GridClientConnection.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/client/impl/connection/GridClientConnection.java
@@ -37,6 +37,11 @@ import 
org.apache.ignite.internal.client.impl.GridClientFutureCallback;
 import org.apache.ignite.internal.util.typedef.F;
 import org.jetbrains.annotations.Nullable;
 
+import static 
org.apache.ignite.internal.client.GridClientCacheFlag.KEEP_BINARIES;
+import static 
org.apache.ignite.internal.client.GridClientCacheFlag.KEEP_BINARIES_MASK;
+import static org.apache.ignite.internal.client.GridClientCacheFlag.SKIP_STORE;
+import static 
org.apache.ignite.internal.client.GridClientCacheFlag.SKIP_STORE_MASK;
+
 /**
  * Facade for all possible network communications between client and server. 
Introduced to hide
  * protocol implementation (TCP, HTTP) from client code.
@@ -114,8 +119,11 @@ public abstract class GridClientConnection {
     public static int encodeCacheFlags(Collection<GridClientCacheFlag> 
flagSet) {
         int bits = 0;
 
-        if (flagSet.contains(GridClientCacheFlag.SKIP_STORE))
-            bits |= 1;
+        if (flagSet.contains(SKIP_STORE))
+            bits |= SKIP_STORE_MASK;
+
+        if (flagSet.contains(KEEP_BINARIES))
+            bits |= KEEP_BINARIES_MASK;
 
         return bits;
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/389898dd/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/cache/GridCacheCommandHandler.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/cache/GridCacheCommandHandler.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/cache/GridCacheCommandHandler.java
index 0a545b4..9b35199 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/cache/GridCacheCommandHandler.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/cache/GridCacheCommandHandler.java
@@ -51,6 +51,7 @@ import org.apache.ignite.internal.GridKernalContext;
 import org.apache.ignite.internal.IgniteEx;
 import org.apache.ignite.internal.IgniteInternalFuture;
 import org.apache.ignite.internal.IgniteKernal;
+import org.apache.ignite.internal.client.GridClientCacheFlag;
 import org.apache.ignite.internal.managers.discovery.GridDiscoveryManager;
 import org.apache.ignite.internal.processors.cache.CacheConfigurationOverride;
 import org.apache.ignite.internal.processors.cache.CacheInvokeEntry;
@@ -83,6 +84,10 @@ import static org.apache.ignite.cache.CacheMode.PARTITIONED;
 import static org.apache.ignite.cache.CacheMode.REPLICATED;
 import static org.apache.ignite.cache.CacheWriteSynchronizationMode.FULL_SYNC;
 import static org.apache.ignite.internal.GridClosureCallMode.BALANCE;
+import static 
org.apache.ignite.internal.client.GridClientCacheFlag.KEEP_BINARIES;
+import static 
org.apache.ignite.internal.client.GridClientCacheFlag.KEEP_BINARIES_MASK;
+import static org.apache.ignite.internal.client.GridClientCacheFlag.SKIP_STORE;
+import static 
org.apache.ignite.internal.client.GridClientCacheFlag.SKIP_STORE_MASK;
 import static 
org.apache.ignite.internal.processors.query.QueryUtils.TEMPLATE_PARTITIONED;
 import static 
org.apache.ignite.internal.processors.query.QueryUtils.TEMPLATE_REPLICATED;
 import static 
org.apache.ignite.internal.processors.rest.GridRestCommand.ATOMIC_DECREMENT;
@@ -185,16 +190,22 @@ public class GridCacheCommandHandler extends 
GridRestCommandHandlerAdapter {
      * Retrieves cache flags from corresponding bits.
      *
      * @param cacheFlagsBits Integer representation of cache flags bit set.
-     * @return Skip store flag.
+     * @return Cache flags.
      */
-    public static boolean parseCacheFlags(int cacheFlagsBits) {
-        if (cacheFlagsBits == 0)
-            return false;
+    public static Set<GridClientCacheFlag> parseCacheFlags(int cacheFlagsBits) 
{
+        boolean skipStore = (cacheFlagsBits & SKIP_STORE_MASK) != 0;
+        boolean keepBinaries = (cacheFlagsBits & KEEP_BINARIES_MASK) != 0;
 
-        if ((cacheFlagsBits & 1) != 0)
-            return true;
+        if (skipStore & keepBinaries)
+            return EnumSet.of(SKIP_STORE, KEEP_BINARIES);
 
-        return false;
+        if (skipStore)
+            return EnumSet.of(SKIP_STORE);
+
+        if (keepBinaries)
+            return EnumSet.of(KEEP_BINARIES);
+
+        return EnumSet.noneOf(GridClientCacheFlag.class);
     }
 
     /**
@@ -377,7 +388,7 @@ public class GridCacheCommandHandler extends 
GridRestCommandHandlerAdapter {
 
         final Object key = req0.key();
 
-        final boolean skipStore = parseCacheFlags(req0.cacheFlags());
+        final Set<GridClientCacheFlag> cacheFlags = 
parseCacheFlags(req0.cacheFlags());
 
         try {
             GridRestCommand cmd = req0.command();
@@ -447,70 +458,70 @@ public class GridCacheCommandHandler extends 
GridRestCommandHandlerAdapter {
                 }
 
                 case CACHE_CONTAINS_KEYS: {
-                    fut = executeCommand(req.destinationId(), req.clientId(), 
cacheName, skipStore, key,
+                    fut = executeCommand(req.destinationId(), req.clientId(), 
cacheName, cacheFlags, key,
                         new ContainsKeysCommand(getKeys(req0)));
 
                     break;
                 }
 
                 case CACHE_CONTAINS_KEY: {
-                    fut = executeCommand(req.destinationId(), req.clientId(), 
cacheName, skipStore, key,
+                    fut = executeCommand(req.destinationId(), req.clientId(), 
cacheName, cacheFlags, key,
                         new ContainsKeyCommand(key));
 
                     break;
                 }
 
                 case CACHE_GET: {
-                    fut = executeCommand(req.destinationId(), req.clientId(), 
cacheName, skipStore, key,
+                    fut = executeCommand(req.destinationId(), req.clientId(), 
cacheName, cacheFlags, key,
                         new GetCommand(key));
 
                     break;
                 }
 
                 case CACHE_GET_AND_PUT: {
-                    fut = executeCommand(req.destinationId(), req.clientId(), 
cacheName, skipStore, key,
+                    fut = executeCommand(req.destinationId(), req.clientId(), 
cacheName, cacheFlags, key,
                         new GetAndPutCommand(key, getValue(req0)));
 
                     break;
                 }
 
                 case CACHE_GET_AND_REPLACE: {
-                    fut = executeCommand(req.destinationId(), req.clientId(), 
cacheName, skipStore, key,
+                    fut = executeCommand(req.destinationId(), req.clientId(), 
cacheName, cacheFlags, key,
                         new GetAndReplaceCommand(key, getValue(req0)));
 
                     break;
                 }
 
                 case CACHE_GET_AND_PUT_IF_ABSENT: {
-                    fut = executeCommand(req.destinationId(), req.clientId(), 
cacheName, skipStore, key,
+                    fut = executeCommand(req.destinationId(), req.clientId(), 
cacheName, cacheFlags, key,
                         new GetAndPutIfAbsentCommand(key, getValue(req0)));
 
                     break;
                 }
 
                 case CACHE_PUT_IF_ABSENT: {
-                    fut = executeCommand(req.destinationId(), req.clientId(), 
cacheName, skipStore, key,
+                    fut = executeCommand(req.destinationId(), req.clientId(), 
cacheName, cacheFlags, key,
                         new PutIfAbsentCommand(key, ttl, getValue(req0)));
 
                     break;
                 }
 
                 case CACHE_GET_ALL: {
-                    fut = executeCommand(req.destinationId(), req.clientId(), 
cacheName, skipStore, key,
+                    fut = executeCommand(req.destinationId(), req.clientId(), 
cacheName, cacheFlags, key,
                         new GetAllCommand(getKeys(req0)));
 
                     break;
                 }
 
                 case CACHE_PUT: {
-                    fut = executeCommand(req.destinationId(), req.clientId(), 
cacheName, skipStore, key, new
+                    fut = executeCommand(req.destinationId(), req.clientId(), 
cacheName, cacheFlags, key, new
                         PutCommand(key, ttl, getValue(req0)));
 
                     break;
                 }
 
                 case CACHE_ADD: {
-                    fut = executeCommand(req.destinationId(), req.clientId(), 
cacheName, skipStore, key,
+                    fut = executeCommand(req.destinationId(), req.clientId(), 
cacheName, cacheFlags, key,
                         new AddCommand(key, ttl, getValue(req0)));
 
                     break;
@@ -533,35 +544,35 @@ public class GridCacheCommandHandler extends 
GridRestCommandHandlerAdapter {
                     // HashMap wrapping for correct serialization
                     map = new HashMap<>(map);
 
-                    fut = executeCommand(req.destinationId(), req.clientId(), 
cacheName, skipStore, key,
+                    fut = executeCommand(req.destinationId(), req.clientId(), 
cacheName, cacheFlags, key,
                         new PutAllCommand(map));
 
                     break;
                 }
 
                 case CACHE_REMOVE: {
-                    fut = executeCommand(req.destinationId(), req.clientId(), 
cacheName, skipStore, key,
+                    fut = executeCommand(req.destinationId(), req.clientId(), 
cacheName, cacheFlags, key,
                         new RemoveCommand(key));
 
                     break;
                 }
 
                 case CACHE_REMOVE_VALUE: {
-                    fut = executeCommand(req.destinationId(), req.clientId(), 
cacheName, skipStore, key,
+                    fut = executeCommand(req.destinationId(), req.clientId(), 
cacheName, cacheFlags, key,
                         new RemoveValueCommand(key, getValue(req0)));
 
                     break;
                 }
 
                 case CACHE_REPLACE_VALUE: {
-                    fut = executeCommand(req.destinationId(), req.clientId(), 
cacheName, skipStore, key,
+                    fut = executeCommand(req.destinationId(), req.clientId(), 
cacheName, cacheFlags, key,
                         new ReplaceValueCommand(key, getValue(req0), 
req0.value2()));
 
                     break;
                 }
 
                 case CACHE_GET_AND_REMOVE: {
-                    fut = executeCommand(req.destinationId(), req.clientId(), 
cacheName, skipStore, key,
+                    fut = executeCommand(req.destinationId(), req.clientId(), 
cacheName, cacheFlags, key,
                         new GetAndRemoveCommand(key));
 
                     break;
@@ -573,7 +584,7 @@ public class GridCacheCommandHandler extends 
GridRestCommandHandlerAdapter {
                     // HashSet wrapping for correct serialization
                     Set<Object> keys = map == null ? null : new 
HashSet<>(map.keySet());
 
-                    fut = executeCommand(req.destinationId(), req.clientId(), 
cacheName, skipStore, key,
+                    fut = executeCommand(req.destinationId(), req.clientId(), 
cacheName, cacheFlags, key,
                         new RemoveAllCommand(keys));
 
                     break;
@@ -589,7 +600,7 @@ public class GridCacheCommandHandler extends 
GridRestCommandHandlerAdapter {
                     GridCompoundFuture compFut = new GridCompoundFuture();
 
                     for (Object cName : cacheNames)
-                        compFut.add(executeCommand(req.destinationId(), 
req.clientId(), (String)cName, skipStore, key,
+                        compFut.add(executeCommand(req.destinationId(), 
req.clientId(), (String)cName, cacheFlags, key,
                             new RemoveAllCommand(null)));
 
                     compFut.markInitialized();
@@ -623,7 +634,7 @@ public class GridCacheCommandHandler extends 
GridRestCommandHandlerAdapter {
                     if (val == null)
                         throw new 
IgniteCheckedException(GridRestCommandHandlerAdapter.missingParameter("val"));
 
-                    fut = executeCommand(req.destinationId(), req.clientId(), 
cacheName, skipStore, key,
+                    fut = executeCommand(req.destinationId(), req.clientId(), 
cacheName, cacheFlags, key,
                         new ReplaceCommand(key, ttl, val));
 
                     break;
@@ -633,21 +644,21 @@ public class GridCacheCommandHandler extends 
GridRestCommandHandlerAdapter {
                     final Object val1 = req0.value();
                     final Object val2 = req0.value2();
 
-                    fut = executeCommand(req.destinationId(), req.clientId(), 
cacheName, skipStore, key,
+                    fut = executeCommand(req.destinationId(), req.clientId(), 
cacheName, cacheFlags, key,
                         new CasCommand(val2, val1, key));
 
                     break;
                 }
 
                 case CACHE_APPEND: {
-                    fut = executeCommand(req.destinationId(), req.clientId(), 
cacheName, skipStore, key,
+                    fut = executeCommand(req.destinationId(), req.clientId(), 
cacheName, cacheFlags, key,
                         new AppendCommand(key, req0));
 
                     break;
                 }
 
                 case CACHE_PREPEND: {
-                    fut = executeCommand(req.destinationId(), req.clientId(), 
cacheName, skipStore, key,
+                    fut = executeCommand(req.destinationId(), req.clientId(), 
cacheName, cacheFlags, key,
                         new PrependCommand(key, req0));
 
                     break;
@@ -680,12 +691,7 @@ public class GridCacheCommandHandler extends 
GridRestCommandHandlerAdapter {
 
             return fut;
         }
-        catch (IgniteException e) {
-            U.error(log, "Failed to execute cache command: " + req, e);
-
-            return new GridFinishedFuture<>(e);
-        }
-        catch (IgniteCheckedException e) {
+        catch (IgniteException | IgniteCheckedException e) {
             U.error(log, "Failed to execute cache command: " + req, e);
 
             return new GridFinishedFuture<>(e);
@@ -741,7 +747,7 @@ public class GridCacheCommandHandler extends 
GridRestCommandHandlerAdapter {
      * @param destId Target node Id for the operation. If {@code null} - 
operation could be executed anywhere.
      * @param clientId Client ID.
      * @param cacheName Cache name.
-     * @param skipStore Skip store.
+     * @param cacheFlags Cache flags.
      * @param key Key to set affinity mapping in the response.
      * @param op Operation to perform.
      * @return Operation result in future.
@@ -751,7 +757,7 @@ public class GridCacheCommandHandler extends 
GridRestCommandHandlerAdapter {
         @Nullable UUID destId,
         UUID clientId,
         final String cacheName,
-        final boolean skipStore,
+        final Set<GridClientCacheFlag> cacheFlags,
         final Object key,
         final CacheProjectionCommand op) throws IgniteCheckedException {
 
@@ -761,8 +767,10 @@ public class GridCacheCommandHandler extends 
GridRestCommandHandlerAdapter {
         if (locExec) {
             IgniteInternalCache<?, ?> prj = localCache(cacheName)
                 .forSubjectId(clientId)
-                .setSkipStore(skipStore)
-                .keepBinary();
+                .setSkipStore(cacheFlags.contains(SKIP_STORE));
+
+            if (cacheFlags.contains(KEEP_BINARIES))
+                prj = prj.keepBinary();
 
             return op.apply((IgniteInternalCache<Object, Object>)prj, ctx).
                 chain(resultWrapper((IgniteInternalCache<Object, Object>)prj, 
key));
@@ -773,7 +781,7 @@ public class GridCacheCommandHandler extends 
GridRestCommandHandlerAdapter {
             ctx.task().setThreadContext(TC_NO_FAILOVER, true);
 
             return ctx.closure().callAsync(BALANCE,
-                new FlaggedCacheOperationCallable(clientId, cacheName, 
skipStore, op, key),
+                new FlaggedCacheOperationCallable(clientId, cacheName, 
cacheFlags, op, key),
                 prj.nodes());
         }
     }
@@ -902,7 +910,7 @@ public class GridCacheCommandHandler extends 
GridRestCommandHandlerAdapter {
         /** */
         private final String cacheName;
         /** */
-        private final boolean skipStore;
+        private final Set<GridClientCacheFlag> cacheFlags;
         /** */
         private final CacheProjectionCommand op;
         /** */
@@ -916,19 +924,19 @@ public class GridCacheCommandHandler extends 
GridRestCommandHandlerAdapter {
         /**
          * @param clientId Client ID.
          * @param cacheName Cache name.
-         * @param skipStore Skip store.
+         * @param cacheFlags Cache flags.
          * @param op Operation.
          * @param key Key.
          */
         private FlaggedCacheOperationCallable(UUID clientId,
             String cacheName,
-            boolean skipStore,
+            Set<GridClientCacheFlag> cacheFlags,
             CacheProjectionCommand op,
             Object key
         ) {
             this.clientId = clientId;
             this.cacheName = cacheName;
-            this.skipStore = skipStore;
+            this.cacheFlags = cacheFlags;
             this.op = op;
             this.key = key;
         }
@@ -937,8 +945,10 @@ public class GridCacheCommandHandler extends 
GridRestCommandHandlerAdapter {
         @Override public GridRestResponse call() throws Exception {
             IgniteInternalCache<?, ?> prj = cache(g, cacheName)
                 .forSubjectId(clientId)
-                .setSkipStore(skipStore)
-                .keepBinary();
+                .setSkipStore(cacheFlags.contains(SKIP_STORE));
+
+            if (cacheFlags.contains(KEEP_BINARIES))
+                prj = prj.keepBinary();
 
             // Need to apply both operation and response transformation 
remotely
             // as cache could be inaccessible on local node and

http://git-wip-us.apache.org/repos/asf/ignite/blob/389898dd/modules/core/src/test/java/org/apache/ignite/internal/processors/rest/handlers/cache/GridCacheCommandHandlerSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/rest/handlers/cache/GridCacheCommandHandlerSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/rest/handlers/cache/GridCacheCommandHandlerSelfTest.java
index e34992f..c94ebd8 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/rest/handlers/cache/GridCacheCommandHandlerSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/rest/handlers/cache/GridCacheCommandHandlerSelfTest.java
@@ -277,10 +277,15 @@ public class GridCacheCommandHandlerSelfTest extends 
GridCommonAbstractTest {
 
                             return fut;
                         }
+
                         // Rewriting flagOn result to keep intercepting 
invocations after it.
-                        else if ("setSkipStore".equals(mtd.getName()))
+                        if ("setSkipStore".equals(mtd.getName()))
+                            return proxy;
+
+                        if ("forSubjectId".equals(mtd.getName()))
                             return proxy;
-                        else if ("forSubjectId".equals(mtd.getName()))
+
+                        if ("keepBinary".equals(mtd.getName()))
                             return proxy;
 
                         return mtd.invoke(cache, args);

http://git-wip-us.apache.org/repos/asf/ignite/blob/389898dd/modules/rest-http/src/main/java/org/apache/ignite/internal/processors/rest/protocols/http/jetty/GridJettyRestHandler.java
----------------------------------------------------------------------
diff --git 
a/modules/rest-http/src/main/java/org/apache/ignite/internal/processors/rest/protocols/http/jetty/GridJettyRestHandler.java
 
b/modules/rest-http/src/main/java/org/apache/ignite/internal/processors/rest/protocols/http/jetty/GridJettyRestHandler.java
index 1d80eea..85398cc 100644
--- 
a/modules/rest-http/src/main/java/org/apache/ignite/internal/processors/rest/protocols/http/jetty/GridJettyRestHandler.java
+++ 
b/modules/rest-http/src/main/java/org/apache/ignite/internal/processors/rest/protocols/http/jetty/GridJettyRestHandler.java
@@ -67,6 +67,7 @@ import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import org.jetbrains.annotations.Nullable;
 
+import static 
org.apache.ignite.internal.client.GridClientCacheFlag.KEEP_BINARIES_MASK;
 import static 
org.apache.ignite.internal.processors.rest.GridRestCommand.CACHE_CONTAINS_KEYS;
 import static 
org.apache.ignite.internal.processors.rest.GridRestCommand.CACHE_GET_ALL;
 import static 
org.apache.ignite.internal.processors.rest.GridRestCommand.CACHE_PUT_ALL;
@@ -625,7 +626,8 @@ public class GridJettyRestHandler extends AbstractHandler {
                 if (val1 != null)
                     restReq0.value(val1);
 
-                restReq0.cacheFlags(intValue("cacheFlags", params, 0));
+                // Cache operations via REST will use binary objects.
+                restReq0.cacheFlags(intValue("cacheFlags", params, 
KEEP_BINARIES_MASK));
                 restReq0.ttl(longValue("exp", params, null));
 
                 if (cmd == CACHE_GET_ALL || cmd == CACHE_PUT_ALL || cmd == 
CACHE_REMOVE_ALL ||

Reply via email to