Actually it didn't help to get the cache with the correct types:

Ignition.setClientMode(true);
Ignite ignite = Ignition.start("/config/gatekeeper-token-config.xml");
ignite.active(true);

IgniteCache<Long, BinaryObject> skipCache = 
ignite.cache("skipCache").withKeepBinary();
ScanQuery<Long, BinaryObject> scan2 = new ScanQuery<>((key, value) -> {
    LOG.debug("Key: {} - Value: {}", () -> key, () -> value);
    return true;
});
List<Cache.Entry<Long, BinaryObject>> result2 = skipCache.query(scan2).getAll();
LOG.debug("result2: {}", () -> result2);

Now gives all rows in cache but lambda is ignored.

2018-01-29 09:43:22,274 DEBUG [no.toyota.gatekeeper.test.ApplicationTest] 
result2: [{1=SQL_PUBLIC_SKIP_bd79b460_e9c9_425d_8ad5_9ebe2d32c6b3 
[idHash=846274760, hash=2107026056, EXPRESSION=/gatekeeper/credentials]}, 
{2=SQL_PUBLIC_SKIP_bd79b460_e9c9_425d_8ad5_9ebe2d32c6b3 [idHash=1928312257, 
hash=677512603, EXPRESSION=/swagger]}, 
{3=SQL_PUBLIC_SKIP_bd79b460_e9c9_425d_8ad5_9ebe2d32c6b3 [idHash=1092619788, 
hash=-422574611, EXPRESSION=/gatekeeper/test]}, 
{4=SQL_PUBLIC_SKIP_bd79b460_e9c9_425d_8ad5_9ebe2d32c6b3 [idHash=1337835760, 
hash=-57658554, EXPRESSION=/foo/index.html]}, 
{5=SQL_PUBLIC_SKIP_bd79b460_e9c9_425d_8ad5_9ebe2d32c6b3 [idHash=1807911555, 
hash=-340982938, EXPRESSION=/rainbow.zul]}, 
{6=SQL_PUBLIC_SKIP_bd79b460_e9c9_425d_8ad5_9ebe2d32c6b3 [idHash=324507700, 
hash=-341590176, EXPRESSION=/swagger.json]}]

The same happens for static class as predicate but now the result is empty.

static class Predicate implements IgniteBiPredicate<Long, BinaryObject>
{
    @Override
    public boolean apply(Long aLong, BinaryObject binaryObject)
    {
        LOG.debug("apply {} {}", aLong, binaryObject);
        return true;
    }
}

ScanQuery<Long, BinaryObject> scan3 = new ScanQuery<>(new Predicate());
List<Cache.Entry<Long, BinaryObject>> result3 = skipCache.query(scan3).getAll();
LOG.debug("result3 : {}", () -> result3);

2018-01-29 09:43:22,331 DEBUG [no.toyota.gatekeeper.test.ApplicationTest] 
result3 : []


From: Thomas Isaksen [mailto:[email protected]]
Sent: fredag 26. januar 2018 21.12
To: [email protected]; [email protected]
Subject: Re: ScanQuery with predicate always returns empty result.

Ah! I make silly mistakes too often. I will give it a try. I will also make a 
separate class instead of an inner class. Thanks!

--
Thomas Isaksen
________________________________
From: ezhuravlev <[email protected]<mailto:[email protected]>>
Sent: Friday, January 26, 2018 3:48:56 PM
To: [email protected]<mailto:[email protected]>
Subject: Re: ScanQuery with predicate always returns empty result.

Hi, in case when you use:
ScanQuery<Long, BinaryObject> scan = new ScanQuery<>((key, value) -> {

                System.out.println(key + " = " + value);

                return true;

})
I think the problem is that you created ScanQuery<Long, BinaryObject> while
your cache is IgniteCache<String, String>. Scan query should be <String,
String> too.

In case of Inner class, it's trying to serialize your outer class, but it
faces some problems in this process. Here you can create separate class
instead of inner, it will help

Evgenii



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/

Reply via email to