Allow for more TransactWriteItems when inspecting TransactionCanceledException
This commit is contained in:
parent
2d4d37f96a
commit
fb39af67e5
|
@ -430,7 +430,7 @@ public class Accounts extends AbstractDynamoDbStore {
|
|||
} catch (final JsonProcessingException e) {
|
||||
throw new IllegalArgumentException(e);
|
||||
} catch (final TransactionCanceledException e) {
|
||||
if (e.hasCancellationReasons() && e.cancellationReasons().size() == 6) {
|
||||
if (e.hasCancellationReasons() && e.cancellationReasons().size() == 6 + additionalWriteItems.size()) {
|
||||
// the cancellation reasons map to the write items:
|
||||
// 0. phone number constraint delete - no conditions
|
||||
// 1. phone number constraint put - conditional on the key not existing (it is deleted by 0)
|
||||
|
@ -438,6 +438,8 @@ public class Accounts extends AbstractDynamoDbStore {
|
|||
// 3. pni constraint put - conditional on the key not existing (it is deleted by 2)
|
||||
// 4. deleted accounts delete - no conditions
|
||||
// 5. account update - conditional on #version = :version
|
||||
// 6. additional write items…
|
||||
// 7. additional write items…
|
||||
if (CONDITIONAL_CHECK_FAILED.equals(e.cancellationReasons().get(5).code())) {
|
||||
// the #version = :version condition failed, which indicates a concurrent update
|
||||
throw new ContestedOptimisticLockException();
|
||||
|
|
Loading…
Reference in New Issue