X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-dom-broker%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fmd%2Fsal%2Fdom%2Fbroker%2Fimpl%2FSerializedDOMDataBroker.java;h=3bb5d5f8bfddbc03d2903e9f02bd0420b1045ff9;hp=e589e87f5af1125b7e643ee0a3e5b3be7b8bf5fa;hb=4ef15f7a7e3fb5bcaa6a3202d268a5c945e0aa71;hpb=a373371d34293ce0e436700ac328a58e9ea37f2e diff --git a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/SerializedDOMDataBroker.java b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/SerializedDOMDataBroker.java index e589e87f5a..3bb5d5f8bf 100644 --- a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/SerializedDOMDataBroker.java +++ b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/SerializedDOMDataBroker.java @@ -30,11 +30,14 @@ import org.slf4j.LoggerFactory; * Implementation of blocking three phase commit coordinator, which which * supports coordination on multiple {@link DOMStoreThreePhaseCommitCohort}. * + *

* This implementation does not support cancellation of commit, * + *

* In order to advance to next phase of three phase commit all subtasks of * previous step must be finish. * + *

* This executor does not have an upper bound on subtask timeout. */ public class SerializedDOMDataBroker extends AbstractDOMDataBroker { @@ -43,13 +46,14 @@ public class SerializedDOMDataBroker extends AbstractDOMDataBroker { private final ListeningExecutorService executor; /** - * * Construct DOMDataCommitCoordinator which uses supplied executor to * process commit coordinations. * - * @param executor + * @param datastores data stores + * @param executor executor service */ - public SerializedDOMDataBroker(final Map datastores, final ListeningExecutorService executor) { + public SerializedDOMDataBroker(final Map datastores, + final ListeningExecutorService executor) { super(datastores); this.executor = Preconditions.checkNotNull(executor, "executor must not be null."); } @@ -59,25 +63,23 @@ public class SerializedDOMDataBroker extends AbstractDOMDataBroker { } @Override - protected CheckedFuture submit(final DOMDataWriteTransaction transaction, - final Collection cohorts) { + protected CheckedFuture submit(final DOMDataWriteTransaction transaction, + final + Collection + cohorts) { Preconditions.checkArgument(transaction != null, "Transaction must not be null."); Preconditions.checkArgument(cohorts != null, "Cohorts must not be null."); LOG.debug("Tx: {} is submitted for execution.", transaction.getIdentifier()); ListenableFuture commitFuture = null; try { - commitFuture = executor.submit(new CommitCoordinationTask(transaction, cohorts, - commitStatsTracker)); - } catch(RejectedExecutionException e) { - LOG.error("The commit executor's queue is full - submit task was rejected. \n" + - executor, e); - return Futures.immediateFailedCheckedFuture( - new TransactionCommitFailedException( - "Could not submit the commit task - the commit queue capacity has been exceeded.", e)); + commitFuture = executor.submit(new CommitCoordinationTask(transaction, cohorts, commitStatsTracker)); + } catch (RejectedExecutionException e) { + LOG.error("The commit executor's queue is full - submit task was rejected. \n" + executor, e); + return Futures.immediateFailedCheckedFuture(new TransactionCommitFailedException( + "Could not submit the commit task - the commit queue capacity has been exceeded.", e)); } - return MappingCheckedFuture.create(commitFuture, - TransactionCommitFailedExceptionMapper.COMMIT_ERROR_MAPPER); + return MappingCheckedFuture.create(commitFuture, TransactionCommitFailedExceptionMapper.COMMIT_ERROR_MAPPER); } }