]
Tristan Tarrant updated ISPN-11249:
-----------------------------------
Fix Version/s: 10.1.4.Final
(was: 10.1.3.Final)
Unexpected functionality added by Java8 default interface methods
-----------------------------------------------------------------
Key: ISPN-11249
URL:
https://issues.redhat.com/browse/ISPN-11249
Project: Infinispan
Issue Type: Bug
Reporter: Wolf-Dieter Fink
Assignee: Will Burns
Priority: Critical
Fix For: 10.1.4.Final, 11.0.0.Alpha2
With Java8 there are interfaces which implement default methods.
Those defaults are available if not overridden, but the function behind might not be
correct because the method was not meant to be implemented.
There are issues with the transaction and locking because of the remote invocation, so
the conditional operation will not work consistent.
Such methods need to be checked and throw a UnsupportedOperation.
This appears for the compute(...) methods
compute(key, BiFunct) -> default to java.util.concurrent.ConcurrentMap interface
compute() methods with expiration will throw an UnsupportedOperationException as
expected.