- LOG.warn("Tx: {} Error during phase {}, starting Abort", transaction.getIdentifier(), phase, throwable);
+ // Use debug instead of warn level here because this exception gets propagate back to the caller via the Future
+ LOG.debug("Tx: {} Error during phase {}, starting Abort", transaction.getIdentifier(), phase, throwable);
+
+ // Transaction failed - tell all cohorts to abort.
+ @SuppressWarnings("unchecked")
+ ListenableFuture<Empty>[] canCommitFutures = new ListenableFuture[cohorts.size()];
+ int index = 0;
+ for (DOMStoreThreePhaseCommitCohort cohort : cohorts) {
+ canCommitFutures[index++] = cohort.abort();
+ }
+
+ // Propagate the original exception