Hi, I am trying to return the result stream from ignite compute task. When
compute task has a map() on stream it fails with below error . Can someone
please explain.

"Exception in thread "main" class
org.apache.ignite.binary.BinaryObjectException: Failed to deserialize
object [typeName=java.util.stream.ReferencePipeline$3]"

Setup: One default ignite node
Compute task
client node to submit compute task and collect the stream results.

public class StreamTask implements IgniteCallable<Stream<Department>> {
    @Override
    public Stream<Department> call() throws Exception {

        Function<Integer, Department> integerDepartmentFunction = i ->
new MyFunction().apply(i);
        return IntStream.of(1, 2, 3).boxed().map(integerDepartmentFunction);
    }
}

class MyFunction implements Function<Integer, Department> {
    @Override
    public Department apply(Integer integer) {
        return new Department(integer, "sdf"+ integer);
    }
}


IgniteConfiguration cfg = new IgniteConfiguration();
cfg.setClientMode(true);
try (Ignite ignite = Ignition.start(cfg)) {

    ClusterGroup serversGrp = ignite.cluster().forServers();

    Stream<Department> stream = ignite.compute(serversGrp).call(new
StreamTask());
    System.out.println("Stream : "+ stream.collect(Collectors.toList()));

}

Error:

Exception in thread "main" class
org.apache.ignite.binary.BinaryObjectException: Failed to deserialize
object [typeName=java.util.stream.ReferencePipeline$3]
        at 
org.apache.ignite.internal.binary.BinaryClassDescriptor.read(BinaryClassDescriptor.java:971)
        at 
org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize0(BinaryReaderExImpl.java:1769)
        at 
org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize(BinaryReaderExImpl.java:1721)
        at 
org.apache.ignite.internal.binary.GridBinaryMarshaller.deserialize(GridBinaryMarshaller.java:319)
        at 
org.apache.ignite.internal.binary.GridBinaryMarshaller.deserialize(GridBinaryMarshaller.java:304)
        at 
org.apache.ignite.internal.binary.BinaryMarshaller.unmarshal0(BinaryMarshaller.java:101)
        at 
org.apache.ignite.marshaller.AbstractNodeNameAwareMarshaller.unmarshal(AbstractNodeNameAwareMarshaller.java:80)
        at 
org.apache.ignite.internal.util.IgniteUtils.unmarshal(IgniteUtils.java:10540)

Caused by: java.lang.ClassNotFoundException:
training.ignite.compute.StreamTask$$Lambda$894/0x0000000800670840
        at java.base/java.lang.Class.forName0(Native Method)
        at java.base/java.lang.Class.forName(Class.java:398)
        at 
org.apache.ignite.internal.util.IgniteUtils.forName(IgniteUtils.java:9064)
        at 
org.apache.ignite.internal.util.IgniteUtils.forName(IgniteUtils.java:9002)
        at 
org.apache.ignite.internal.MarshallerContextImpl.getClass(MarshallerContextImpl.java:376)
        at 
org.apache.ignite.internal.binary.BinaryContext.descriptorForTypeId(BinaryContext.java:693)

Reply via email to