-
Bug
-
Resolution: Done
-
Major
-
13.0.6.Final, 14.0.0.Final
-
None
When the set used for filtering via filterKeys(set) happens to only contain non-matching keys, then the pipeline makes no progress and blocks the calling thread.
NOTE: This only applies, if the reduction is done without an identity element, i.e. null is used under the hood.
Additionally an NPE is thrown when a remote node returns null as final result (when it no longer blocks).
Caused by: java.lang.NullPointerException: The CompletionStage terminated with null. at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490) at org.infinispan.marshall.exts.ThrowableExternalizer.readGenericThrowable(ThrowableExternalizer.java:282)
The pull request contains a unit-test that proofs those points.