Catalin Lupuleti
Catalin Lupuleti

Reputation: 37

Hazelcast Supplier and Aggregation gives Concurrent Execution Exception

I am trying to get a set of the distinct values of an object's field stored in a Hazelcast map. This line of java code:

instructions.aggregate(Supplier.all(value -> value.getWorkArea()), Aggregations.distinctValues());

has the following stacktrace :

java.util.concurrent.ExecutionException: com.hazelcast.nio.serialization.HazelcastSerializationException: java.lang.ClassNotFoundException: com.example.instruction.repository.HazelcastInstructionRepository$GeneratedEvaluationClass
com.hazelcast.nio.serialization.HazelcastSerializationException: java.lang.ClassNotFoundException: com.example.instruction.repository.HazelcastInstructionRepository$GeneratedEvaluationClass
java.lang.ClassNotFoundException: com.example.instruction.repository.HazelcastInstructionRepository$GeneratedEvaluationClass

If I were to try this line :

instructions.aggregate(Supplier.all()), Aggregations.distinctValues());

or:

instructions.aggregate(Supplier.fromPredicate(Predicates.and(Predicates.equal("type", "someType"), equal("groupId", null), Predicates.equal("workArea", "someWorkArea"))), Aggregations.distinctValues());

It just works ... It seems to be something wrong when I am making a reference to the object's field. (I also tried it with other fields of the object and the same error gets returned)

This is running on my local environment and I am sure that the objects are being placed correctly in the Hazelcast map since the other aggregations/predicates are working.

Do you have any ideas about what am I doing wrong?

Many Thanks!

Upvotes: 1

Views: 331

Answers (1)

tom.bujok
tom.bujok

Reputation: 1642

EDITED: So the problem is the closure. It's not available on all nodes. Only on the calling node.

Also. This feature is deprecated. Plz use the fast-aggregations instead. http://docs.hazelcast.org/docs/latest/manual/html-single/#fast-aggregations

Upvotes: 2

Related Questions