X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-inmemory-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fmd%2Fsal%2Fdom%2Fstore%2Fimpl%2FInMemoryDOMStoreThreePhaseCommitCohort.java;h=a77732a11ffad421b48e96adab86122dde4c2926;hp=8c326262b06e41761449173bca11cb54f18a12d9;hb=7292faba613ab556babd7bbcdd78984f5668bf9b;hpb=7ab6f974861e01daa16ff56658eeb1be163cbfec diff --git a/opendaylight/md-sal/sal-inmemory-datastore/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/InMemoryDOMStoreThreePhaseCommitCohort.java b/opendaylight/md-sal/sal-inmemory-datastore/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/InMemoryDOMStoreThreePhaseCommitCohort.java index 8c326262b0..a77732a11f 100644 --- a/opendaylight/md-sal/sal-inmemory-datastore/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/InMemoryDOMStoreThreePhaseCommitCohort.java +++ b/opendaylight/md-sal/sal-inmemory-datastore/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/InMemoryDOMStoreThreePhaseCommitCohort.java @@ -32,11 +32,16 @@ class InMemoryDOMStoreThreePhaseCommitCohort implements DOMStoreThreePhaseCommit private final DataTreeModification modification; private final InMemoryDOMDataStore store; private DataTreeCandidate candidate; + private final Exception operationError; - public InMemoryDOMStoreThreePhaseCommitCohort(final InMemoryDOMDataStore store, final SnapshotBackedWriteTransaction writeTransaction, final DataTreeModification modification) { + public InMemoryDOMStoreThreePhaseCommitCohort(final InMemoryDOMDataStore store, + final SnapshotBackedWriteTransaction writeTransaction, + final DataTreeModification modification, + final Exception operationError) { this.transaction = Preconditions.checkNotNull(writeTransaction); this.modification = Preconditions.checkNotNull(modification); this.store = Preconditions.checkNotNull(store); + this.operationError = operationError; } private static void warnDebugContext(final AbstractDOMStoreTransaction transaction) { @@ -48,6 +53,10 @@ class InMemoryDOMStoreThreePhaseCommitCohort implements DOMStoreThreePhaseCommit @Override public final ListenableFuture canCommit() { + if (operationError != null) { + return Futures.immediateFailedFuture(operationError); + } + try { store.validate(modification); LOG.debug("Store Transaction: {} can be committed", getTransaction().getIdentifier());