X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=dom%2Fmdsal-dom-broker%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fmdsal%2Fdom%2Fbroker%2FDOMForwardedWriteTransaction.java;h=2c9cb721c1a61f6ec0a6b780261fdfe755a348c7;hb=3534aba923cb1d2dcdd9e3ecf2675e35ce343910;hp=6292f82e3add44f7fe31f24de44eba68ba09b2fc;hpb=d5bca0aad14860826cd8661a8da09050a8f2fc6d;p=mdsal.git diff --git a/dom/mdsal-dom-broker/src/main/java/org/opendaylight/mdsal/dom/broker/DOMForwardedWriteTransaction.java b/dom/mdsal-dom-broker/src/main/java/org/opendaylight/mdsal/dom/broker/DOMForwardedWriteTransaction.java index 6292f82e3a..2c9cb721c1 100644 --- a/dom/mdsal-dom-broker/src/main/java/org/opendaylight/mdsal/dom/broker/DOMForwardedWriteTransaction.java +++ b/dom/mdsal-dom-broker/src/main/java/org/opendaylight/mdsal/dom/broker/DOMForwardedWriteTransaction.java @@ -124,6 +124,7 @@ class DOMForwardedWriteTransaction extends } @Override + @SuppressWarnings("checkstyle:illegalcatch") public CheckedFuture submit() { final AbstractDOMForwardedTransactionFactory impl = IMPL_UPDATER.getAndSet(this, null); checkRunning(impl); @@ -131,12 +132,17 @@ class DOMForwardedWriteTransaction extends final Collection txns = getSubtransactions(); final Collection cohorts = new ArrayList<>(txns.size()); - // FIXME: deal with errors thrown by backed (ready and submit can fail in theory) - for (final DOMStoreWriteTransaction txn : txns) { - cohorts.add(txn.ready()); - } + CheckedFuture ret; + try { + for (final DOMStoreWriteTransaction txn : txns) { + cohorts.add(txn.ready()); + } - final CheckedFuture ret = impl.submit(this, cohorts); + ret = impl.submit(this, cohorts); + } catch (RuntimeException e) { + ret = Futures.immediateFailedCheckedFuture( + TransactionCommitFailedExceptionMapper.COMMIT_ERROR_MAPPER.apply(e)); + } FUTURE_UPDATER.lazySet(this, ret); return ret; }