You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by av...@apache.org on 2015/12/24 11:58:15 UTC
[12/50] [abbrv] ignite git commit: IGNITE-2190 - Fixing
deserialization during scan query. - Fixes #355.
IGNITE-2190 - Fixing deserialization during scan query. - Fixes #355.
Signed-off-by: Alexey Goncharuk <al...@gmail.com>
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/81458f51
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/81458f51
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/81458f51
Branch: refs/heads/master
Commit: 81458f51c40f58b169da178bd7a572d3c9fe01ff
Parents: 2848680
Author: Alexey Goncharuk <al...@gmail.com>
Authored: Mon Dec 21 18:54:38 2015 +0300
Committer: Alexey Goncharuk <al...@gmail.com>
Committed: Mon Dec 21 18:54:38 2015 +0300
----------------------------------------------------------------------
.../internal/binary/BinaryObjectImpl.java | 20 +-
.../processors/cache/IgniteCacheProxy.java | 5 +-
.../cache/query/GridCacheQueryManager.java | 8 +-
.../processors/query/GridQueryProcessor.java | 10 +-
.../IgniteCacheBinaryObjectsScanSelfTest.java | 137 +++++++++
.../cache/IgniteCacheAbstractQuerySelfTest.java | 300 +++++++++++++------
.../IgniteCacheReplicatedQuerySelfTest.java | 10 +-
.../local/IgniteCacheLocalQuerySelfTest.java | 2 +-
.../IgniteBinaryCacheQueryTestSuite.java | 2 +
9 files changed, 379 insertions(+), 115 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/81458f51/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectImpl.java
index 2342766..d712eb8 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectImpl.java
@@ -532,7 +532,8 @@ public final class BinaryObjectImpl extends BinaryObjectExImpl implements Extern
* @return Object.
*/
private Object deserializeValue(@Nullable CacheObjectContext coCtx) {
- BinaryReaderExImpl reader = reader(null);
+ BinaryReaderExImpl reader = reader(null,
+ coCtx != null ? coCtx.kernalContext().config().getClassLoader() : null);
Object obj0 = reader.deserialize();
@@ -560,10 +561,23 @@ public final class BinaryObjectImpl extends BinaryObjectExImpl implements Extern
* @param rCtx Reader context.
* @return Reader.
*/
- private BinaryReaderExImpl reader(@Nullable BinaryReaderHandles rCtx) {
+ private BinaryReaderExImpl reader(@Nullable BinaryReaderHandles rCtx, @Nullable ClassLoader ldr) {
+ if (ldr == null)
+ ldr = ctx.configuration().getClassLoader();
+
return new BinaryReaderExImpl(ctx,
BinaryHeapInputStream.create(arr, start),
- ctx.configuration().getClassLoader(),
+ ldr,
rCtx);
}
+
+ /**
+ * Create new reader for this object.
+ *
+ * @param rCtx Reader context.
+ * @return Reader.
+ */
+ private BinaryReaderExImpl reader(@Nullable BinaryReaderHandles rCtx) {
+ return reader(rCtx, null);
+ }
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/81458f51/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java
index 1768ecf..3dada6f 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java
@@ -618,7 +618,7 @@ public class IgniteCacheProxy<K, V> extends AsyncSupportAdapter<IgniteCache<K, V
validate(qry);
- CacheOperationContext opCtxCall = ctx.operationContextPerCall();
+ final CacheOperationContext opCtxCall = ctx.operationContextPerCall();
if (qry instanceof ContinuousQuery)
return (QueryCursor<R>)queryContinuous((ContinuousQuery<K, V>)qry, qry.isLocal(),
@@ -630,7 +630,8 @@ public class IgniteCacheProxy<K, V> extends AsyncSupportAdapter<IgniteCache<K, V
if (isReplicatedDataNode() || ctx.isLocal() || qry.isLocal())
return (QueryCursor<R>)new QueryCursorImpl<>(new Iterable<Cache.Entry<K, V>>() {
@Override public Iterator<Cache.Entry<K, V>> iterator() {
- return ctx.kernalContext().query().queryLocal(ctx, p);
+ return ctx.kernalContext().query().queryLocal(ctx, p,
+ opCtxCall != null && opCtxCall.isKeepBinary());
}
});
http://git-wip-us.apache.org/repos/asf/ignite/blob/81458f51/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java
index 15502a0..8f0cab7 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java
@@ -807,8 +807,7 @@ public abstract class GridCacheQueryManager<K, V> extends GridCacheManagerAdapte
throws IgniteCheckedException {
IgniteInternalCache<K, V> prj0 = cctx.cache();
- if (qry.keepBinary())
- prj0 = prj0.keepBinary();
+ prj0 = prj0.keepBinary();
final IgniteInternalCache<K, V> prj = prj0;
@@ -863,7 +862,7 @@ public abstract class GridCacheQueryManager<K, V> extends GridCacheManagerAdapte
@Override public K next() {
KeyCacheObject key = iter0.next();
- return key.value(cctx.cacheObjectContext(), false);
+ return (K)cctx.unwrapBinaryIfNeeded(key, true);
}
@Override public void remove() {
@@ -906,8 +905,7 @@ public abstract class GridCacheQueryManager<K, V> extends GridCacheManagerAdapte
CacheObject cacheVal =
entry != null ? entry.peek(true, false, false, topVer, expiryPlc) : null;
- // TODO 950 nocopy
- val = (V)cctx.cacheObjectContext().unwrapBinaryIfNeeded(cacheVal, qry.keepBinary());
+ val = (V)cctx.cacheObjectContext().unwrapBinaryIfNeeded(cacheVal, true);
}
catch (GridCacheEntryRemovedException e) {
val = null;
http://git-wip-us.apache.org/repos/asf/ignite/blob/81458f51/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
index 28b854c..7d1311f 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
@@ -841,7 +841,11 @@ public class GridQueryProcessor extends GridProcessorAdapter {
* @param qry Query.
* @return Cursor.
*/
- public <K, V> Iterator<Cache.Entry<K, V>> queryLocal(final GridCacheContext<?, ?> cctx, final SqlQuery qry) {
+ public <K, V> Iterator<Cache.Entry<K, V>> queryLocal(
+ final GridCacheContext<?, ?> cctx,
+ final SqlQuery qry,
+ final boolean keepBinary
+ ) {
if (!busyLock.enterBusy())
throw new IllegalStateException("Failed to execute query (grid is stopping).");
@@ -887,8 +891,8 @@ public class GridQueryProcessor extends GridProcessorAdapter {
IgniteBiTuple<K, V> t = i.next();
return new CacheEntryImpl<>(
- t.getKey(),
- t.getValue());
+ (K)cctx.unwrapBinaryIfNeeded(t.getKey(), keepBinary, false),
+ (V)cctx.unwrapBinaryIfNeeded(t.getValue(), keepBinary, false));
}
@Override public void remove() {
http://git-wip-us.apache.org/repos/asf/ignite/blob/81458f51/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheBinaryObjectsScanSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheBinaryObjectsScanSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheBinaryObjectsScanSelfTest.java
new file mode 100644
index 0000000..07f3833
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheBinaryObjectsScanSelfTest.java
@@ -0,0 +1,137 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.cache;
+
+import java.util.List;
+import javax.cache.Cache;
+import org.apache.ignite.Ignite;
+import org.apache.ignite.IgniteCache;
+import org.apache.ignite.cache.query.ScanQuery;
+import org.apache.ignite.configuration.CacheConfiguration;
+import org.apache.ignite.configuration.IgniteConfiguration;
+import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
+import org.apache.ignite.testframework.GridTestUtils;
+import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
+
+/**
+ *
+ */
+public class IgniteCacheBinaryObjectsScanSelfTest extends GridCommonAbstractTest {
+ /** */
+ private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
+
+ /** */
+ private static final String PERSON_CLS_NAME = "org.apache.ignite.tests.p2p.cache.Person";
+
+ /** */
+ private static final String PERSON_KEY_CLS_NAME = "org.apache.ignite.tests.p2p.cache.PersonKey";
+
+ /** */
+ private static ClassLoader ldr;
+
+ /** {@inheritDoc} */
+ @Override protected void beforeTestsStarted() throws Exception {
+ ldr = getExternalClassLoader();
+
+ startGrids(3);
+
+ startGrid("client");
+
+ populateCache(ldr);
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void afterTestsStopped() throws Exception {
+ ldr = null;
+ }
+
+ /** {@inheritDoc} */
+ @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
+ IgniteConfiguration cfg = super.getConfiguration(gridName);
+
+ TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
+
+ discoSpi.setIpFinder(IP_FINDER);
+
+ cfg.setDiscoverySpi(discoSpi);
+ cfg.setIncludeEventTypes(new int[0]);
+
+ cfg.setMarshaller(null);
+ cfg.setPeerClassLoadingEnabled(false);
+
+ if ("client".equals(gridName)) {
+ cfg.setClientMode(true);
+
+ cfg.setClassLoader(ldr);
+ }
+
+ return cfg;
+ }
+
+ /**
+ * @param ldr Class loader.
+ * @throws Exception If failed.
+ */
+ private void populateCache(ClassLoader ldr) throws Exception {
+ Class<?> keyCls = ldr.loadClass(PERSON_KEY_CLS_NAME);
+ Class<?> cls = ldr.loadClass(PERSON_CLS_NAME);
+
+ Ignite client = grid("client");
+
+ CacheConfiguration<Object, Object> cfg = new CacheConfiguration<>("testCache");
+
+ IgniteCache<Object, Object> cache = client.getOrCreateCache(cfg);
+
+ for (int i = 0; i < 100; i++) {
+ Object key = keyCls.newInstance();
+
+ GridTestUtils.setFieldValue(key, "id", i);
+
+ cache.put(key, cls.newInstance());
+ }
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ public void testScanNoClasses() throws Exception {
+ Ignite client = grid("client");
+
+ IgniteCache<Object, Object> cache = client.cache("testCache");
+
+ List<Cache.Entry<Object, Object>> entries = cache.query(new ScanQuery<>()).getAll();
+
+ assertEquals(100, entries.size());
+
+ for (Cache.Entry<Object, Object> entry : entries) {
+ assertEquals(PERSON_KEY_CLS_NAME, entry.getKey().getClass().getName());
+ assertEquals(PERSON_CLS_NAME, entry.getValue().getClass().getName());
+ }
+
+ entries = cache.query(new ScanQuery<>(1)).getAll();
+
+ assertFalse(entries.isEmpty());
+
+ for (Cache.Entry<Object, Object> entry : entries) {
+ assertEquals(PERSON_KEY_CLS_NAME, entry.getKey().getClass().getName());
+ assertEquals(PERSON_CLS_NAME, entry.getValue().getClass().getName());
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/81458f51/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAbstractQuerySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAbstractQuerySelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAbstractQuerySelfTest.java
index 79c41f8..3782596 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAbstractQuerySelfTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheAbstractQuerySelfTest.java
@@ -44,6 +44,7 @@ import javax.cache.expiry.TouchedExpiryPolicy;
import org.apache.ignite.Ignite;
import org.apache.ignite.IgniteCache;
import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.binary.BinaryObject;
import org.apache.ignite.cache.CacheAtomicityMode;
import org.apache.ignite.cache.CacheMode;
import org.apache.ignite.cache.CachePeekMode;
@@ -65,6 +66,7 @@ import org.apache.ignite.events.CacheQueryExecutedEvent;
import org.apache.ignite.events.CacheQueryReadEvent;
import org.apache.ignite.events.Event;
import org.apache.ignite.internal.IgniteKernal;
+import org.apache.ignite.internal.binary.BinaryMarshaller;
import org.apache.ignite.internal.processors.cache.distributed.replicated.IgniteCacheReplicatedQuerySelfTest;
import org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager;
import org.apache.ignite.internal.processors.cache.query.QueryCursorEx;
@@ -110,9 +112,6 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac
/** */
private static final TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
- /** */
- protected Ignite ignite;
-
/**
* @return Grid count.
*/
@@ -207,18 +206,34 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac
return false;
}
- /** {@inheritDoc} */
- @Override protected void beforeTest() throws Exception {
- ignite = startGridsMultiThreaded(gridCount());
+ /**
+ * @return Ignite instance.
+ */
+ protected Ignite ignite() {
+ return grid(0);
}
/** {@inheritDoc} */
@Override protected void afterTest() throws Exception {
+ super.afterTest();
+
+ ignite().cache(null).removeAll();
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void beforeTestsStarted() throws Exception {
+ super.beforeTestsStarted();
+
+ startGridsMultiThreaded(gridCount());
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void afterTestsStopped() throws Exception {
+ super.afterTestsStopped();
+
stopAllGrids();
store.reset();
-
- ignite = null;
}
/**
@@ -227,7 +242,7 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac
* @throws Exception In case of error.
*/
public void testDifferentKeyTypes() throws Exception {
- final IgniteCache<Object, Object> cache = ignite.cache(null);
+ final IgniteCache<Object, Object> cache = ignite().cache(null);
cache.put(1, "value");
@@ -247,7 +262,7 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac
* @throws Exception In case of error.
*/
public void testDifferentValueTypes() throws Exception {
- IgniteCache<Integer, Object> cache = ignite.cache(null);
+ IgniteCache<Integer, Object> cache = ignite().cache(null);
cache.put(7, "value");
@@ -262,7 +277,7 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac
* @throws Exception In case of error.
*/
public void testStringType() throws Exception {
- IgniteCache<Integer, String> cache = ignite.cache(null);
+ IgniteCache<Integer, String> cache = ignite().cache(null);
cache.put(666, "test");
@@ -281,7 +296,7 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac
* @throws Exception In case of error.
*/
public void testIntegerType() throws Exception {
- IgniteCache<Integer, Integer> cache = ignite.cache(null);
+ IgniteCache<Integer, Integer> cache = ignite().cache(null);
int key = 898;
@@ -307,7 +322,7 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac
*/
public void testUserDefinedFunction() throws IgniteCheckedException {
// Without alias.
- final IgniteCache<Object, Object> cache = ignite.cache(null);
+ final IgniteCache<Object, Object> cache = ignite().cache(null);
QueryCursor<List<?>> qry = cache.query(new SqlFieldsQuery("select square(1), square(2)"));
@@ -359,10 +374,10 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac
* @throws Exception If failed.
*/
public void testExpiration() throws Exception {
- ignite.cache(null).
+ ignite().cache(null).
withExpiryPolicy(new TouchedExpiryPolicy(new Duration(MILLISECONDS, 1000))).put(7, 1);
- IgniteCache<Integer, Integer> cache = ignite.cache(null);
+ IgniteCache<Integer, Integer> cache = ignite().cache(null);
List<Cache.Entry<Integer, Integer>> qry =
cache.query(new SqlQuery<Integer, Integer>(Integer.class, "1=1")).getAll();
@@ -384,7 +399,7 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac
* @throws Exception If failed.
*/
public void testIllegalBounds() throws Exception {
- IgniteCache<Integer, Integer> cache = ignite.cache(null);
+ IgniteCache<Integer, Integer> cache = ignite().cache(null);
cache.put(1, 1);
cache.put(2, 2);
@@ -401,7 +416,7 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac
* @throws Exception In case of error.
*/
public void testComplexType() throws Exception {
- IgniteCache<Key, GridCacheQueryTestValue> cache = ignite.cache(null);
+ IgniteCache<Key, GridCacheQueryTestValue> cache = ignite().cache(null);
GridCacheQueryTestValue val1 = new GridCacheQueryTestValue();
@@ -431,6 +446,41 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac
}
/**
+ * @throws Exception In case of error.
+ */
+ public void testComplexTypeKeepBinary() throws Exception {
+ if (ignite().configuration().getMarshaller() == null || ignite().configuration().getMarshaller() instanceof BinaryMarshaller) {
+ IgniteCache<Key, GridCacheQueryTestValue> cache = ignite().cache(null);
+
+ GridCacheQueryTestValue val1 = new GridCacheQueryTestValue();
+
+ val1.setField1("field1");
+ val1.setField2(1);
+ val1.setField3(1L);
+
+ GridCacheQueryTestValue val2 = new GridCacheQueryTestValue();
+
+ val2.setField1("field2");
+ val2.setField2(2);
+ val2.setField3(2L);
+ val2.setField6(null);
+
+ cache.put(new Key(100500), val1);
+ cache.put(new Key(100501), val2);
+
+ QueryCursor<Cache.Entry<BinaryObject, BinaryObject>> qry = cache.withKeepBinary()
+ .query(new SqlQuery<BinaryObject, BinaryObject>(GridCacheQueryTestValue.class,
+ "fieldName='field1' and field2=1 and field3=1 and id=100500 and embeddedField2=11 and x=3"));
+
+ Cache.Entry<BinaryObject, BinaryObject> entry = F.first(qry.getAll());
+
+ assertNotNull(entry);
+ assertEquals(100500L, entry.getKey().field("id"));
+ assertEquals(val1, entry.getValue().deserialize());
+ }
+ }
+
+ /**
* Complex key type.
*/
private static class Key {
@@ -471,7 +521,7 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac
* @throws Exception In case of error.
*/
public void testSelectQuery() throws Exception {
- IgniteCache<Integer, String> cache = ignite.cache(null);
+ IgniteCache<Integer, String> cache = ignite().cache(null);
cache.put(10, "value");
@@ -490,7 +540,7 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac
* @throws Exception In case of error.
*/
public void testObjectQuery() throws Exception {
- IgniteCache<Integer, ObjectValue> cache = ignite.cache(null);
+ IgniteCache<Integer, ObjectValue> cache = ignite().cache(null);
ObjectValue val = new ObjectValue("test", 0);
@@ -528,7 +578,7 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac
* @throws Exception In case of error.
*/
public void testObjectQueryWithSwap() throws Exception {
- IgniteCache<Integer, ObjectValue> cache = ignite.cache(null);
+ IgniteCache<Integer, ObjectValue> cache = ignite().cache(null);
boolean partitioned = cache.getConfiguration(CacheConfiguration.class).getCacheMode() == PARTITIONED;
@@ -621,7 +671,7 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac
* @throws Exception In case of error.
*/
public void testFullTextSearch() throws Exception {
- IgniteCache<Integer, ObjectValue> cache = ignite.cache(null);
+ IgniteCache<Integer, ObjectValue> cache = ignite().cache(null);
// Try to execute on empty cache first.
QueryCursor<Cache.Entry<Integer, ObjectValue>> qry =
@@ -668,7 +718,7 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac
* @throws Exception In case of error.
*/
public void testScanQuery() throws Exception {
- IgniteCache<Integer, String> c1 = ignite.cache(null);
+ IgniteCache<Integer, String> c1 = ignite().cache(null);
c1.put(777, "value");
@@ -695,7 +745,7 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac
* @throws Exception In case of error.
*/
public void testScanPartitionQuery() throws Exception {
- IgniteCache<Integer, Integer> cache = ignite.cache(null);
+ IgniteCache<Integer, Integer> cache = ignite().cache(null);
GridCacheContext cctx = ((IgniteCacheProxy)cache).context();
@@ -739,7 +789,7 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac
* @throws Exception In case of error.
*/
public void testTwoObjectsTextSearch() throws Exception {
- IgniteCache<Object, Object> c = ignite.cache(null);
+ IgniteCache<Object, Object> c = ignite().cache(null);
c.put(1, new ObjectValue("ObjectValue str", 1));
c.put("key", new ObjectValueOther("ObjectValueOther str"));
@@ -762,7 +812,7 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac
* @throws Exception If failed.
*/
public void testEmptyObject() throws Exception {
- IgniteCache<EmptyObject, EmptyObject> cache = ignite.cache(null);
+ IgniteCache<EmptyObject, EmptyObject> cache = ignite().cache(null);
cache.put(new EmptyObject(1), new EmptyObject(2));
@@ -778,7 +828,7 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac
* @throws Exception If failed.
*/
public void testPrimitiveType() throws Exception {
- IgniteCache<Integer, Integer> cache = ignite.cache(null);
+ IgniteCache<Integer, Integer> cache = ignite().cache(null);
cache.put(1, 1);
cache.put(2, 2);
@@ -815,7 +865,7 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac
* @throws Exception If failed.
*/
private void testPaginationIterator(@Nullable String cacheName) throws Exception {
- IgniteCache<Integer, Integer> cache = ignite.cache(cacheName);
+ IgniteCache<Integer, Integer> cache = ignite().cache(cacheName);
for (int i = 0; i < 50; i++)
cache.put(i, i);
@@ -857,7 +907,7 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac
* @throws Exception If failed.
*/
private void testPaginationGet(@Nullable String cacheName) throws Exception {
- IgniteCache<Integer, Integer> cache = ignite.cache(cacheName);
+ IgniteCache<Integer, Integer> cache = ignite().cache(cacheName);
for (int i = 0; i < 50; i++)
cache.put(i, i);
@@ -885,7 +935,7 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac
* @throws Exception If failed.
*/
public void testScanFilters() throws Exception {
- IgniteCache<Integer, Integer> cache = ignite.cache(null);
+ IgniteCache<Integer, Integer> cache = ignite().cache(null);
for (int i = 0; i < 50; i++)
cache.put(i, i);
@@ -921,7 +971,7 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac
* @throws IgniteCheckedException if failed.
*/
public void testBadHashObjectKey() throws IgniteCheckedException {
- IgniteCache<BadHashKeyObject, Byte> cache = ignite.cache(null);
+ IgniteCache<BadHashKeyObject, Byte> cache = ignite().cache(null);
cache.put(new BadHashKeyObject("test_key1"), (byte)1);
cache.put(new BadHashKeyObject("test_key0"), (byte)10);
@@ -935,7 +985,7 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac
* @throws IgniteCheckedException if failed.
*/
public void testTextIndexedKey() throws IgniteCheckedException {
- IgniteCache<ObjectValue, Long> cache = ignite.cache(null);
+ IgniteCache<ObjectValue, Long> cache = ignite().cache(null);
cache.put(new ObjectValue("test_key1", 10), 19L);
cache.put(new ObjectValue("test_key0", 11), 11005L);
@@ -950,7 +1000,7 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac
* @throws Exception If failed.
*/
public void testOrderByOnly() throws Exception {
- IgniteCache<Integer, Integer> cache = ignite.cache(null);
+ IgniteCache<Integer, Integer> cache = ignite().cache(null);
for (int i = 0; i < 10; i++)
cache.put(i, i);
@@ -980,7 +1030,7 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac
* @throws Exception If failed.
*/
public void testLimitOnly() throws Exception {
- IgniteCache<Integer, Integer> cache = ignite.cache(null);
+ IgniteCache<Integer, Integer> cache = ignite().cache(null);
for (int i = 0; i < 10; i++)
cache.put(i, i);
@@ -1008,7 +1058,7 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac
* @throws Exception If failed.
*/
public void testArray() throws Exception {
- IgniteCache<Integer, ArrayObject> cache = ignite.cache(null);
+ IgniteCache<Integer, ArrayObject> cache = ignite().cache(null);
cache.put(1, new ArrayObject(new Long[]{1L, null, 3L}));
cache.put(2, new ArrayObject(new Long[] {4L, 5L, 6L}));
@@ -1038,7 +1088,7 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac
* @throws Exception If failed.
*/
public void testFieldsQueryMetadata() throws Exception {
- IgniteCache<UUID, Person> cache = ignite.cache(null);
+ IgniteCache<UUID, Person> cache = ignite().cache(null);
for (int i = 0; i < 100; i++)
cache.put(UUID.randomUUID(), new Person("name-" + i, (i + 1) * 100));
@@ -1062,8 +1112,10 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac
private void checkSqlQueryEvents() throws Exception {
final CountDownLatch execLatch = new CountDownLatch(cacheMode() == REPLICATED ? 1 : gridCount());
+ IgnitePredicate[] lsnrs = new IgnitePredicate[gridCount()];
+
for (int i = 0; i < gridCount(); i++) {
- grid(i).events().localListen(new IgnitePredicate<Event>() {
+ IgnitePredicate<Event> pred = new IgnitePredicate<Event>() {
@Override public boolean apply(Event evt) {
assert evt instanceof CacheQueryExecutedEvent;
@@ -1073,26 +1125,36 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac
assertNotNull(qe.clause());
assertNull(qe.scanQueryFilter());
assertNull(qe.continuousQueryFilter());
- assertArrayEquals(new Integer[] { 10 }, qe.arguments());
+ assertArrayEquals(new Integer[] {10}, qe.arguments());
execLatch.countDown();
return true;
}
- }, EVT_CACHE_QUERY_EXECUTED);
+ };
+
+ grid(i).events().localListen(pred, EVT_CACHE_QUERY_EXECUTED);
+
+ lsnrs[i] = pred;
}
- IgniteCache<Integer, Integer> cache = ignite.cache(null);
+ try {
+ IgniteCache<Integer, Integer> cache = ignite().cache(null);
- for (int i = 0; i < 20; i++)
- cache.put(i, i);
+ for (int i = 0; i < 20; i++)
+ cache.put(i, i);
- QueryCursor<Cache.Entry<Integer, Integer>> q =
- cache.query(new SqlQuery<Integer, Integer>(Integer.class, "_key >= ?").setArgs(10));
+ QueryCursor<Cache.Entry<Integer, Integer>> q =
+ cache.query(new SqlQuery<Integer, Integer>(Integer.class, "_key >= ?").setArgs(10));
- q.getAll();
+ q.getAll();
- assert execLatch.await(1000, MILLISECONDS);
+ assert execLatch.await(1000, MILLISECONDS);
+ }
+ finally {
+ for (int i = 0; i < gridCount(); i++)
+ grid(i).events().stopLocalListen(lsnrs[i], EVT_CACHE_QUERY_EXECUTED);
+ }
}
/**
@@ -1110,8 +1172,11 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac
final CountDownLatch latch = new CountDownLatch(10);
final CountDownLatch execLatch = new CountDownLatch(cacheMode() == REPLICATED ? 1 : gridCount());
+ IgnitePredicate[] objReadLsnrs = new IgnitePredicate[gridCount()];
+ IgnitePredicate[] qryExecLsnrs = new IgnitePredicate[gridCount()];
+
for (int i = 0; i < gridCount(); i++) {
- grid(i).events().localListen(new IgnitePredicate<Event>() {
+ IgnitePredicate<Event> pred = new IgnitePredicate<Event>() {
@Override public boolean apply(Event evt) {
assert evt instanceof CacheQueryReadEvent;
@@ -1132,9 +1197,12 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac
return true;
}
- }, EVT_CACHE_QUERY_OBJECT_READ);
+ };
+
+ grid(i).events().localListen(pred, EVT_CACHE_QUERY_OBJECT_READ);
+ objReadLsnrs[i] = pred;
- grid(i).events().localListen(new IgnitePredicate<Event>() {
+ IgnitePredicate<Event> execPred = new IgnitePredicate<Event>() {
@Override public boolean apply(Event evt) {
assert evt instanceof CacheQueryExecutedEvent;
@@ -1153,31 +1221,42 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac
return true;
}
- }, EVT_CACHE_QUERY_EXECUTED);
+ };
+
+ grid(i).events().localListen(execPred, EVT_CACHE_QUERY_EXECUTED);
+ qryExecLsnrs[i] = execPred;
}
- IgniteCache<Integer, Integer> cache = ignite.cache(null);
+ try {
+ IgniteCache<Integer, Integer> cache = ignite().cache(null);
- for (int i = 0; i < 20; i++)
- cache.put(i, i);
+ for (int i = 0; i < 20; i++)
+ cache.put(i, i);
- IgniteBiPredicate<Integer, Integer> filter = new IgniteBiPredicate<Integer, Integer>() {
- @Override public boolean apply(Integer k, Integer v) {
- return k >= 10;
- }
- };
+ IgniteBiPredicate<Integer, Integer> filter = new IgniteBiPredicate<Integer, Integer>() {
+ @Override public boolean apply(Integer k, Integer v) {
+ return k >= 10;
+ }
+ };
- QueryCursor<Cache.Entry<Integer, Integer>> q = cache.query(new ScanQuery<>(filter));
+ QueryCursor<Cache.Entry<Integer, Integer>> q = cache.query(new ScanQuery<>(filter));
- q.getAll();
+ q.getAll();
- assert latch.await(1000, MILLISECONDS);
- assert execLatch.await(1000, MILLISECONDS);
+ assert latch.await(1000, MILLISECONDS);
+ assert execLatch.await(1000, MILLISECONDS);
- assertEquals(10, map.size());
+ assertEquals(10, map.size());
- for (int i = 10; i < 20; i++)
- assertEquals(i, map.get(i).intValue());
+ for (int i = 10; i < 20; i++)
+ assertEquals(i, map.get(i).intValue());
+ }
+ finally {
+ for (int i = 0; i < gridCount(); i++) {
+ grid(i).events().stopLocalListen(objReadLsnrs[i]);
+ grid(i).events().stopLocalListen(qryExecLsnrs[i]);
+ }
+ }
}
/**
@@ -1188,8 +1267,11 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac
final CountDownLatch latch = new CountDownLatch(2);
final CountDownLatch execLatch = new CountDownLatch(cacheMode() == REPLICATED ? 1 : gridCount());
+ IgnitePredicate[] objReadLsnrs = new IgnitePredicate[gridCount()];
+ IgnitePredicate[] qryExecLsnrs = new IgnitePredicate[gridCount()];
+
for (int i = 0; i < gridCount(); i++) {
- grid(i).events().localListen(new IgnitePredicate<Event>() {
+ IgnitePredicate<Event> objReadPred = new IgnitePredicate<Event>() {
@Override public boolean apply(Event evt) {
assert evt instanceof CacheQueryReadEvent;
@@ -1210,9 +1292,12 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac
return true;
}
- }, EVT_CACHE_QUERY_OBJECT_READ);
+ };
- grid(i).events().localListen(new IgnitePredicate<Event>() {
+ grid(i).events().localListen(objReadPred, EVT_CACHE_QUERY_OBJECT_READ);
+ objReadLsnrs[i] = objReadPred;
+
+ IgnitePredicate<Event> qryExecPred = new IgnitePredicate<Event>() {
@Override public boolean apply(Event evt) {
assert evt instanceof CacheQueryExecutedEvent;
@@ -1231,30 +1316,41 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac
return true;
}
- }, EVT_CACHE_QUERY_EXECUTED);
+ };
+
+ grid(i).events().localListen(qryExecPred, EVT_CACHE_QUERY_EXECUTED);
+ qryExecLsnrs[i] = qryExecPred;
}
- IgniteCache<UUID, Person> cache = ignite.cache(null);
+ try {
+ IgniteCache<UUID, Person> cache = ignite().cache(null);
- UUID k1 = UUID.randomUUID();
- UUID k2 = UUID.randomUUID();
- UUID k3 = UUID.randomUUID();
+ UUID k1 = UUID.randomUUID();
+ UUID k2 = UUID.randomUUID();
+ UUID k3 = UUID.randomUUID();
- cache.put(k1, new Person("Bob White", 1000));
- cache.put(k2, new Person("Tom White", 1000));
- cache.put(k3, new Person("Mike Green", 1000));
+ cache.put(k1, new Person("Bob White", 1000));
+ cache.put(k2, new Person("Tom White", 1000));
+ cache.put(k3, new Person("Mike Green", 1000));
- QueryCursor<Cache.Entry<UUID, Person>> q = cache.query(new TextQuery<UUID, Person>(Person.class, "White"));
+ QueryCursor<Cache.Entry<UUID, Person>> q = cache.query(new TextQuery<UUID, Person>(Person.class, "White"));
- q.getAll();
+ q.getAll();
- assert latch.await(1000, MILLISECONDS);
- assert execLatch.await(1000, MILLISECONDS);
+ assert latch.await(1000, MILLISECONDS);
+ assert execLatch.await(1000, MILLISECONDS);
- assertEquals(2, map.size());
+ assertEquals(2, map.size());
- assertEquals("Bob White", map.get(k1).name());
- assertEquals("Tom White", map.get(k2).name());
+ assertEquals("Bob White", map.get(k1).name());
+ assertEquals("Tom White", map.get(k2).name());
+ }
+ finally {
+ for (int i = 0; i < gridCount(); i++) {
+ grid(i).events().stopLocalListen(objReadLsnrs[i]);
+ grid(i).events().stopLocalListen(qryExecLsnrs[i]);
+ }
+ }
}
/**
@@ -1263,8 +1359,10 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac
public void testFieldsQueryEvents() throws Exception {
final CountDownLatch execLatch = new CountDownLatch(cacheMode() == REPLICATED ? 1 : gridCount());
+ IgnitePredicate[] qryExecLsnrs = new IgnitePredicate[gridCount()];
+
for (int i = 0; i < gridCount(); i++) {
- grid(i).events().localListen(new IgnitePredicate<Event>() {
+ IgnitePredicate<Event> pred = new IgnitePredicate<Event>() {
@Override public boolean apply(Event evt) {
assert evt instanceof CacheQueryExecutedEvent;
@@ -1274,26 +1372,35 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac
assertNotNull(qe.clause());
assertNull(qe.scanQueryFilter());
assertNull(qe.continuousQueryFilter());
- assertArrayEquals(new Integer[]{10}, qe.arguments());
+ assertArrayEquals(new Integer[] {10}, qe.arguments());
execLatch.countDown();
return true;
}
- }, EVT_CACHE_QUERY_EXECUTED);
+ };
+
+ grid(i).events().localListen(pred, EVT_CACHE_QUERY_EXECUTED);
+ qryExecLsnrs[i] = pred;
}
- IgniteCache<UUID, Person> cache = ignite.cache(null);
+ try {
+ IgniteCache<UUID, Person> cache = ignite().cache(null);
- for (int i = 1; i <= 20; i++)
- cache.put(UUID.randomUUID(), new Person("Person " + i, i));
+ for (int i = 1; i <= 20; i++)
+ cache.put(UUID.randomUUID(), new Person("Person " + i, i));
- QueryCursor<List<?>> q = cache.query(new SqlFieldsQuery("select _key, name from Person where salary > ?").
- setArgs(10));
+ QueryCursor<List<?>> q = cache.query(new SqlFieldsQuery("select _key, name from Person where salary > ?").
+ setArgs(10));
- q.getAll();
+ q.getAll();
- assert execLatch.await(1000, MILLISECONDS);
+ assert execLatch.await(1000, MILLISECONDS);
+ }
+ finally {
+ for (int i = 0; i < gridCount(); i++)
+ grid(i).events().stopLocalListen(qryExecLsnrs[i]);
+ }
}
/**
@@ -1574,7 +1681,7 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac
/**
*
*/
- private static class BadHashKeyObject implements Serializable {
+ private static class BadHashKeyObject implements Serializable, Comparable<BadHashKeyObject> {
/** */
@QuerySqlField(index = false)
private final String str;
@@ -1583,7 +1690,7 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac
* @param str String.
*/
private BadHashKeyObject(String str) {
- this.str = str;
+ this.str = str == null ? "" : str;
}
/** {@inheritDoc} */
@@ -1602,6 +1709,11 @@ public abstract class IgniteCacheAbstractQuerySelfTest extends GridCommonAbstrac
}
/** {@inheritDoc} */
+ @Override public int compareTo(BadHashKeyObject o) {
+ return str.compareTo(o.str);
+ }
+
+ /** {@inheritDoc} */
@Override public String toString() {
return S.toString(BadHashKeyObject.class, this);
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/81458f51/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/IgniteCacheReplicatedQuerySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/IgniteCacheReplicatedQuerySelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/IgniteCacheReplicatedQuerySelfTest.java
index 9c52f92..e462cce 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/IgniteCacheReplicatedQuerySelfTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/IgniteCacheReplicatedQuerySelfTest.java
@@ -22,7 +22,6 @@ import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;
import java.lang.reflect.Field;
-import java.sql.ResultSet;
import java.util.Collection;
import java.util.Iterator;
import java.util.Map;
@@ -41,7 +40,6 @@ import org.apache.ignite.cache.query.annotations.QuerySqlField;
import org.apache.ignite.events.DiscoveryEvent;
import org.apache.ignite.events.Event;
import org.apache.ignite.events.EventType;
-import org.apache.ignite.internal.IgniteInternalFuture;
import org.apache.ignite.internal.IgniteKernal;
import org.apache.ignite.internal.processors.cache.GridCacheContext;
import org.apache.ignite.internal.processors.cache.IgniteCacheAbstractQuerySelfTest;
@@ -49,8 +47,6 @@ import org.apache.ignite.internal.processors.cache.query.GridCacheQueryManager;
import org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing;
import org.apache.ignite.internal.util.future.GridFutureAdapter;
import org.apache.ignite.internal.util.lang.GridCloseableIterator;
-import org.apache.ignite.internal.util.typedef.F;
-import org.apache.ignite.internal.util.typedef.PA;
import org.apache.ignite.internal.util.typedef.X;
import org.apache.ignite.internal.util.typedef.internal.S;
import org.apache.ignite.internal.util.typedef.internal.U;
@@ -112,8 +108,8 @@ public class IgniteCacheReplicatedQuerySelfTest extends IgniteCacheAbstractQuery
}
/** {@inheritDoc} */
- @Override protected void beforeTest() throws Exception {
- super.beforeTest();
+ @Override protected void beforeTestsStarted() throws Exception {
+ super.beforeTestsStarted();
ignite1 = grid(0);
ignite2 = grid(1);
@@ -322,7 +318,7 @@ public class IgniteCacheReplicatedQuerySelfTest extends IgniteCacheAbstractQuery
* @throws Exception If failed.
*/
public void testLostIterator() throws Exception {
- IgniteCache<Integer, Integer> cache = ignite.cache(null);
+ IgniteCache<Integer, Integer> cache = ignite().cache(null);
for (int i = 0; i < 1000; i++)
cache.put(i, i);
http://git-wip-us.apache.org/repos/asf/ignite/blob/81458f51/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/local/IgniteCacheLocalQuerySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/local/IgniteCacheLocalQuerySelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/local/IgniteCacheLocalQuerySelfTest.java
index 9a4d168..64d48e3 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/local/IgniteCacheLocalQuerySelfTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/local/IgniteCacheLocalQuerySelfTest.java
@@ -47,7 +47,7 @@ public class IgniteCacheLocalQuerySelfTest extends IgniteCacheAbstractQuerySelfT
* @throws Exception If test failed.
*/
public void testQueryLocal() throws Exception {
- IgniteCache<Integer, String> cache = ignite.cache(null);
+ IgniteCache<Integer, String> cache = ignite().cache(null);
cache.put(1, "value1");
cache.put(2, "value2");
http://git-wip-us.apache.org/repos/asf/ignite/blob/81458f51/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteBinaryCacheQueryTestSuite.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteBinaryCacheQueryTestSuite.java b/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteBinaryCacheQueryTestSuite.java
index 6abc2d4..1f5d6d1 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteBinaryCacheQueryTestSuite.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteBinaryCacheQueryTestSuite.java
@@ -33,6 +33,7 @@ import org.apache.ignite.internal.processors.cache.GridCacheQueryInternalKeysSel
import org.apache.ignite.internal.processors.cache.GridCacheQuerySerializationSelfTest;
import org.apache.ignite.internal.processors.cache.GridCacheReduceQueryMultithreadedSelfTest;
import org.apache.ignite.internal.processors.cache.IgniteBinaryObjectFieldsQuerySelfTest;
+import org.apache.ignite.internal.processors.cache.IgniteCacheBinaryObjectsScanSelfTest;
import org.apache.ignite.internal.processors.cache.IgniteCacheCollocatedQuerySelfTest;
import org.apache.ignite.internal.processors.cache.IgniteCacheDuplicateEntityConfigurationSelfTest;
import org.apache.ignite.internal.processors.cache.IgniteCacheFieldsQueryNoDataSelfTest;
@@ -159,6 +160,7 @@ public class IgniteBinaryCacheQueryTestSuite extends TestSuite {
suite.addTestSuite(GridCacheReduceQueryMultithreadedSelfTest.class);
suite.addTestSuite(GridCacheCrossCacheQuerySelfTest.class);
suite.addTestSuite(GridCacheQuerySerializationSelfTest.class);
+ suite.addTestSuite(IgniteCacheBinaryObjectsScanSelfTest.class);
// Scan queries.
suite.addTestSuite(CacheScanPartitionQueryFallbackSelfTest.class);