Hi

I have the following code:

IgniteCache<String, String> skipCache = 
IgniteUtil.getCache("skipCache").withKeepBinary();
ScanQuery<Long, BinaryObject> scan = new ScanQuery<>();
List<Cache.Entry<Long, BinaryObject>> result = skipCache.query(scan).getAll();

This returns all the data in my cache. However, once I start using a predicate 
I get no data:

ScanQuery<Long, BinaryObject> scan = new ScanQuery<>((key, value) -> {
                System.out.println(key + " = " + value);
                return true;
});
List<Cache.Entry<Long, BinaryObject>> result = skipCache.query(scan).getAll();

If I try to define the ScanQuery with an Inner class:

ScanQuery<Long, BinaryObject> scan = new ScanQuery<>(new 
IgniteBiPredicate<Long, BinaryObject>()
{
    @Override
    public boolean apply(Long aLong, BinaryObject binaryObject)
    {
        return true;
    }
});

I get exception:

javax.cache.CacheException: class org.apache.ignite.IgniteCheckedException: 
Query execution failed: GridCacheQueryBean [qry=GridCacheQueryAdapter 
[type=SCAN, clsName=null, clause=null, 
filter=no.toyota.gatekeeper.test.ApplicationTest$1@67af833b, transform=null, 
part=null, incMeta=false, metrics=GridCacheQueryMetricsAdapter 
[minTime=9223372036854775807, maxTime=0, sumTime=0, avgTime=0.0, execs=0, 
completed=0, fails=0], pageSize=1024, timeout=0, keepAll=true, 
incBackups=false, dedup=false, 
prj=org.apache.ignite.internal.cluster.ClusterGroupAdapter@40d4009d, 
keepBinary=true, subjId=30d3339d-98d1-4b28-b86a-5eb8b440d7b4, taskHash=0], 
rdc=null, trans=null]

                at 
org.apache.ignite.internal.processors.cache.GridCacheUtils.convertToCacheException(GridCacheUtils.java:1287)
                at 
org.apache.ignite.internal.processors.cache.query.GridCacheQueryFutureAdapter.next(GridCacheQueryFutureAdapter.java:171)
                at 
org.apache.ignite.internal.processors.cache.query.GridCacheDistributedQueryManager$5.onHasNext(GridCacheDistributedQueryManager.java:634)
                at 
org.apache.ignite.internal.util.GridCloseableIteratorAdapter.hasNextX(GridCloseableIteratorAdapter.java:53)
                at 
org.apache.ignite.internal.util.lang.GridIteratorAdapter.hasNext(GridIteratorAdapter.java:45)
                at 
org.apache.ignite.internal.processors.cache.QueryCursorImpl.getAll(QueryCursorImpl.java:114)
                at 
no.toyota.gatekeeper.test.ApplicationTest.testMatch(ApplicationTest.java:476)
                at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
                at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                at java.lang.reflect.Method.invoke(Method.java:498)
                at 
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
                at 
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
                at 
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
                at 
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
                at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
                at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
                at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
                at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
                at 
org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
                at 
org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
                at 
org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
                at 
org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
                at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
                at org.junit.runners.Suite.runChild(Suite.java:128)
                at org.junit.runners.Suite.runChild(Suite.java:27)
                at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
                at 
org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
                at 
org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
                at 
org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
                at 
org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
                at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
                at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
                at 
com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
                at 
com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
                at 
com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
                at 
com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
Caused by: class org.apache.ignite.IgniteCheckedException: Query execution 
failed: GridCacheQueryBean [qry=GridCacheQueryAdapter [type=SCAN, clsName=null, 
clause=null, filter=no.toyota.gatekeeper.test.ApplicationTest$1@67af833b, 
transform=null, part=null, incMeta=false, metrics=GridCacheQueryMetricsAdapter 
[minTime=9223372036854775807, maxTime=0, sumTime=0, avgTime=0.0, execs=0, 
completed=0, fails=0], pageSize=1024, timeout=0, keepAll=true, 
incBackups=false, dedup=false, 
prj=org.apache.ignite.internal.cluster.ClusterGroupAdapter@40d4009d, 
keepBinary=true, subjId=30d3339d-98d1-4b28-b86a-5eb8b440d7b4, taskHash=0], 
rdc=null, trans=null]
                at 
org.apache.ignite.internal.processors.cache.query.GridCacheQueryFutureAdapter.checkError(GridCacheQueryFutureAdapter.java:257)
                at 
org.apache.ignite.internal.processors.cache.query.GridCacheQueryFutureAdapter.internalIterator(GridCacheQueryFutureAdapter.java:315)
                at 
org.apache.ignite.internal.processors.cache.query.GridCacheQueryFutureAdapter.next(GridCacheQueryFutureAdapter.java:161)
                ... 35 more
Caused by: class org.apache.ignite.IgniteCheckedException: Failed to execute 
query on node [query=GridCacheQueryBean [qry=GridCacheQueryAdapter [type=SCAN, 
clsName=null, clause=null, 
filter=no.toyota.gatekeeper.test.ApplicationTest$1@67af833b, transform=null, 
part=null, incMeta=false, metrics=GridCacheQueryMetricsAdapter 
[minTime=9223372036854775807, maxTime=0, sumTime=0, avgTime=0.0, execs=0, 
completed=0, fails=0], pageSize=1024, timeout=0, keepAll=true, 
incBackups=false, dedup=false, 
prj=org.apache.ignite.internal.cluster.ClusterGroupAdapter@40d4009d, 
keepBinary=true, subjId=30d3339d-98d1-4b28-b86a-5eb8b440d7b4, taskHash=0], 
rdc=null, trans=null], nodeId=6c37177d-be30-4c80-886a-51536df8cc76]
                at 
org.apache.ignite.internal.processors.cache.query.GridCacheQueryFutureAdapter.onPage(GridCacheQueryFutureAdapter.java:383)
                at 
org.apache.ignite.internal.processors.cache.query.GridCacheDistributedQueryManager.processQueryResponse(GridCacheDistributedQueryManager.java:398)
                at 
org.apache.ignite.internal.processors.cache.query.GridCacheDistributedQueryManager.access$000(GridCacheDistributedQueryManager.java:63)
                at 
org.apache.ignite.internal.processors.cache.query.GridCacheDistributedQueryManager$1.apply(GridCacheDistributedQueryManager.java:93)
                at 
org.apache.ignite.internal.processors.cache.query.GridCacheDistributedQueryManager$1.apply(GridCacheDistributedQueryManager.java:91)
                at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.processMessage(GridCacheIoManager.java:1060)
                at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.onMessage0(GridCacheIoManager.java:579)
                at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.access$700(GridCacheIoManager.java:99)
                at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager$OrderedMessageListener.onMessage(GridCacheIoManager.java:1609)
                at 
org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1555)
                at 
org.apache.ignite.internal.managers.communication.GridIoManager.access$4100(GridIoManager.java:126)
                at 
org.apache.ignite.internal.managers.communication.GridIoManager$GridCommunicationMessageSet.unwind(GridIoManager.java:2751)
                at 
org.apache.ignite.internal.managers.communication.GridIoManager.unwindMessageSet(GridIoManager.java:1515)
                at 
org.apache.ignite.internal.managers.communication.GridIoManager.access$4400(GridIoManager.java:126)
                at 
org.apache.ignite.internal.managers.communication.GridIoManager$10.run(GridIoManager.java:1484)
                at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
                at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
                at java.lang.Thread.run(Thread.java:748)
Caused by: class org.apache.ignite.IgniteCheckedException: Failed to 
deserialize object [typeName=no.toyota.gatekeeper.test.ApplicationTest$1]
                at 
org.apache.ignite.internal.util.IgniteUtils.unmarshal(IgniteUtils.java:9801)
                at 
org.apache.ignite.internal.processors.cache.query.GridCacheQueryRequest.finishUnmarshal(GridCacheQueryRequest.java:325)
                at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.unmarshall(GridCacheIoManager.java:1526)
                at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.onMessage0(GridCacheIoManager.java:574)
                at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:378)
                at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:304)
                at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.access$100(GridCacheIoManager.java:99)
                at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager$1.onMessage(GridCacheIoManager.java:293)
                at 
org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1555)
                at 
org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:1183)
                at 
org.apache.ignite.internal.managers.communication.GridIoManager.access$4200(GridIoManager.java:126)
                at 
org.apache.ignite.internal.managers.communication.GridIoManager$9.run(GridIoManager.java:1090)
                ... 3 more
Caused by: class org.apache.ignite.binary.BinaryObjectException: Failed to 
deserialize object [typeName=no.toyota.gatekeeper.test.ApplicationTest$1]
                at 
org.apache.ignite.internal.binary.BinaryClassDescriptor.read(BinaryClassDescriptor.java:874)
                at 
org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize0(BinaryReaderExImpl.java:1762)
                at 
org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize(BinaryReaderExImpl.java:1714)
                at 
org.apache.ignite.internal.binary.GridBinaryMarshaller.deserialize(GridBinaryMarshaller.java:310)
                at 
org.apache.ignite.internal.binary.BinaryMarshaller.unmarshal0(BinaryMarshaller.java:99)
                at 
org.apache.ignite.marshaller.AbstractNodeNameAwareMarshaller.unmarshal(AbstractNodeNameAwareMarshaller.java:82)
                at 
org.apache.ignite.internal.util.IgniteUtils.unmarshal(IgniteUtils.java:9795)
                ... 14 more
Caused by: class org.apache.ignite.binary.BinaryObjectException: Failed to read 
field [name=this$0]
                at 
org.apache.ignite.internal.binary.BinaryFieldAccessor.read(BinaryFieldAccessor.java:168)
                at 
org.apache.ignite.internal.binary.BinaryClassDescriptor.read(BinaryClassDescriptor.java:843)
                ... 20 more
Caused by: java.lang.IllegalArgumentException: Can not set final 
no.toyota.gatekeeper.test.ApplicationTest field 
no.toyota.gatekeeper.test.ApplicationTest$1.this$0 to 
no.toyota.gatekeeper.test.ApplicationTest
                at 
sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:167)
                at 
sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:171)
                at 
sun.reflect.UnsafeQualifiedObjectFieldAccessorImpl.set(UnsafeQualifiedObjectFieldAccessorImpl.java:83)
                at java.lang.reflect.Field.set(Field.java:764)
                at 
org.apache.ignite.internal.binary.BinaryFieldAccessor$DefaultFinalClassAccessor.read0(BinaryFieldAccessor.java:683)
                at 
org.apache.ignite.internal.binary.BinaryFieldAccessor.read(BinaryFieldAccessor.java:164)
                ... 21 more

Ideas?

--
Thomas Isaksen

Reply via email to