B. T. created IGNITE-17866:
------------------------------

             Summary: ScanQuery with IgniteBiPredicate fails with Exception
                 Key: IGNITE-17866
                 URL: https://issues.apache.org/jira/browse/IGNITE-17866
             Project: Ignite
          Issue Type: Bug
          Components: thin client
    Affects Versions: 2.13
         Environment: Java version 11.  Ignite is configured with standard 
settings with client jar supplied in \{IGNITE_HOME}/libs directory.  
            Reporter: B. T.


Ignite started with all the client classes made available in the 
\{IGNITE_HOME}/libs directory.

The ScanQuery works fine without predicate from java thin client, but it fails 
with below exception when IgniteBiPredicate is supplied. 

IgniteBiPredicate is being supplied as standard out of the box as described in 
the documentation, no custom implementation of IgniteBiPredicate supplied. 

Java version 11. 

*Documentation Reference:*

[https://ignite.apache.org/docs/2.13.0/thin-clients/java-thin-client#executing-scan-queries]

{{ClientCache<Integer, Person> personCache = 
client.getOrCreateCache("personCache");Query<Cache.Entry<Integer, Person>> qry 
= new ScanQuery<Integer, Person>((i, p) -> p.getName().contains("Smith"));try 
(QueryCursor<Cache.Entry<Integer, Person>> cur = personCache.query(qry)) {for 
(Cache.Entry<Integer, Person> entry : cur) {// Process the entry ...}}}}

*Exception on server:*

[client-connector-#88][BinaryContext] Failed to deserialize object 
[typeName=java.lang.invoke.SerializedLambda]

class org.apache.ignite.binary.BinaryObjectException: Failed to execute 
readResolve() method on SerializedLambda

at 
org.apache.ignite.internal.binary.BinaryClassDescriptor.read(BinaryClassDescriptor.java:961)
        at 
org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize0(BinaryReaderExImpl.java:1779)
        at 
org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize(BinaryReaderExImpl.java:1731)
        at 
org.apache.ignite.internal.binary.BinaryObjectImpl.deserializeValue(BinaryObjectImpl.java:821)
        at 
org.apache.ignite.internal.binary.BinaryObjectImpl.deserialize(BinaryObjectImpl.java:662)
        at 
org.apache.ignite.internal.processors.platform.client.cache.ClientCacheScanQueryRequest.createFilter(ClientCacheScanQueryRequest.java:117)
        at 
org.apache.ignite.internal.processors.platform.client.cache.ClientCacheScanQueryRequest.process(ClientCacheScanQueryRequest.java:83)
        at 
org.apache.ignite.internal.processors.platform.client.ClientRequestHandler.handle(ClientRequestHandler.java:101)
        at 
org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.onMessage(ClientListenerNioListener.java:204)
        at 
org.apache.ignite.internal.processors.odbc.ClientListenerNioListener.onMessage(ClientListenerNioListener.java:55)
        at 
org.apache.ignite.internal.util.nio.GridNioFilterChain$TailFilter.onMessageReceived(GridNioFilterChain.java:279)
        at 
org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedMessageReceived(GridNioFilterAdapter.java:109)
        at 
org.apache.ignite.internal.util.nio.GridNioAsyncNotifyFilter$3.body(GridNioAsyncNotifyFilter.java:97)
        at 
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:125)
        at 
org.apache.ignite.internal.util.worker.GridWorkerPool$1.run(GridWorkerPool.java:70)
        at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.reflect.InvocationTargetException
        at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at 
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at 
org.apache.ignite.internal.binary.BinaryClassDescriptor.read(BinaryClassDescriptor.java:950)
        ... 17 more
Caused by: java.lang.NoSuchMethodException:

 

*Exception on Thin Client:*

org.apache.ignite.client.ClientException: Ignite failed to process request [7]: 
Failed to deserialize object [typeName=java.lang.invoke.SerializedLambda] 
(server status code [1])
    at 
org.apache.ignite.internal.client.thin.TcpClientChannel.convertException(TcpClientChannel.java:359)
    at 
org.apache.ignite.internal.client.thin.TcpClientChannel.receive(TcpClientChannel.java:319)
    at 
org.apache.ignite.internal.client.thin.TcpClientChannel.service(TcpClientChannel.java:237)
    at 
org.apache.ignite.internal.client.thin.ReliableChannel.lambda$service$1(ReliableChannel.java:167)
    at 
org.apache.ignite.internal.client.thin.ReliableChannel.applyOnDefaultChannel(ReliableChannel.java:764)
    at 
org.apache.ignite.internal.client.thin.ReliableChannel.applyOnDefaultChannel(ReliableChannel.java:731)
    at 
org.apache.ignite.internal.client.thin.ReliableChannel.service(ReliableChannel.java:167)
    at 
org.apache.ignite.internal.client.thin.GenericQueryPager.next(GenericQueryPager.java:93)
    at 
org.apache.ignite.internal.client.thin.ClientQueryCursor$1.nextPage(ClientQueryCursor.java:93)
    at 
org.apache.ignite.internal.client.thin.ClientQueryCursor$1.hasNext(ClientQueryCursor.java:76)
    at 
com.autotrader.services.impl.IgniteClientService.query(IgniteClientService.java:212)
    ... 72 more
Caused by: org.apache.ignite.internal.client.thin.ClientServerError: Ignite 
failed to process request [7]: Failed to deserialize object 
[typeName=java.lang.invoke.SerializedLambda] (server status code [1])
    at 
org.apache.ignite.internal.client.thin.TcpClientChannel.processNextMessage(TcpClientChannel.java:449)
    at 
org.apache.ignite.internal.client.thin.TcpClientChannel.onMessage(TcpClientChannel.java:194)
    at 
org.apache.ignite.internal.client.thin.io.gridnioserver.GridNioClientConnection.onMessage(GridNioClientConnection.java:86)
    at 
org.apache.ignite.internal.client.thin.io.gridnioserver.GridNioClientListener.onMessage(GridNioClientListener.java:56)
    at 
org.apache.ignite.internal.client.thin.io.gridnioserver.GridNioClientListener.onMessage(GridNioClientListener.java:30)
    at 
org.apache.ignite.internal.util.nio.GridNioFilterChain$TailFilter.onMessageReceived(GridNioFilterChain.java:279)
    at 
org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedMessageReceived(GridNioFilterAdapter.java:109)
    at 
org.apache.ignite.internal.util.nio.GridNioCodecFilter.onMessageReceived(GridNioCodecFilter.java:116)
    at 
org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedMessageReceived(GridNioFilterAdapter.java:109)
    at 
org.apache.ignite.internal.util.nio.GridNioServer$HeadFilter.onMessageReceived(GridNioServer.java:3734)
    at 
org.apache.ignite.internal.util.nio.GridNioFilterChain.onMessageReceived(GridNioFilterChain.java:175)
    at 
org.apache.ignite.internal.util.nio.GridNioServer$ByteBufferNioClientWorker.processRead(GridNioServer.java:1211)
    at 
org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.processSelectedKeysOptimized(GridNioServer.java:2508)
    at 
org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.bodyInternal(GridNioServer.java:2273)
    at 
org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.body(GridNioServer.java:1910)
    at 
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:125)
    at java.base/java.lang.Thread.run(Thread.java:834)



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to