Description
This report is re: asyncGetAndLock method in the java client.
From the current implementation of asyncGetAndLock , it is impossible to tell the difference between
- a value that doesn't exist(& should be added) and
- a value that exists, but is locked by another client.
In both cases, you get this:
CASValue<T>(-1, null);
which customer opines is pretty non-useful in the cases where you want to decide whether to try again or move on to an add.
Suggestion from the customer is:
Add the CasGetStatus class which has additional information about the failure type (attached), and modify CouchbaseClient.java to create and return that class (diff attached).
Attached files:
1) CASGetStatus.java
2) couchbasediff.txt