I was developing an app with JDG and this was a huge gotchya for me.
After looking through all the enterprise and community docs, I found on the community page that if you set lifespan > 30 days then it reverts to the number of seconds since 1970.
If someone by default sets lifespan = 9999999 or something similar then all the entries in their cache will be expired.
UPDATE: I did find that this was references in the API Doc, however, since it is a big gotchya it should be added to the getting started and admin guide in my opinion.
Good point. Thanks, John. We're working on this for an async release for 6.3 now.
ReplaceWithVersion in the RemoteCache API is in fact ReplaceIfUnmodifiedOperation under the hood and that is documented in the HotRod protocol spec.
PutIfAbsent is documented together with the Put and Replace operations, since they are all implemented by the same protocol op underneath.
It looks like important information were conveyed to the reader and Tristan's input was also respectively implemented.
The fix for this bug is now available on access.redhat.com: