+ } catch (ExecutionException e) {
+ final Throwable cause = e.getCause();
+ if (cause instanceof OptimisticLockFailedException) {
+ // when multiple write-transactions are executed concurrently we need to ignore this.
+ // If we get optimistic lock here it means id-ints already exists and we can continue.
+ LOG.debug("Got an optimistic lock when writing initial top level list element.", e);
+ } else {
+ LOG.error("Error writing top-level path {}: {}", ID_INTS_YID, containerNode, e);
+ return RpcResultBuilder.<WriteTransactionsOutput>failed().withError(RpcError.ErrorType.APPLICATION,
+ String.format("Could not start write transactions - error writing top-level path %s: %s",
+ ID_INTS_YID, containerNode), e).buildFuture();
+ }