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%2FDOMConcurrentDataCommitCoordinator.java;h=d8a7a0084c747e9f744d7b0ee0a52ff7afa69e8b;hp=605d71d81ef80b8136950a4b29aab64119eab79d;hb=bda2f4ab9ecd693f85ff21e2bf94fe55ca90608b;hpb=139937c2e646894af6a9b2b8a8a1047c6ef82485 diff --git a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/DOMConcurrentDataCommitCoordinator.java b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/DOMConcurrentDataCommitCoordinator.java index 605d71d81e..d8a7a0084c 100644 --- a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/DOMConcurrentDataCommitCoordinator.java +++ b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/DOMConcurrentDataCommitCoordinator.java @@ -7,6 +7,14 @@ */ package org.opendaylight.controller.md.sal.dom.broker.impl; +import com.google.common.base.Preconditions; +import com.google.common.collect.Iterables; +import com.google.common.util.concurrent.AbstractFuture; +import com.google.common.util.concurrent.AbstractListeningExecutorService; +import com.google.common.util.concurrent.CheckedFuture; +import com.google.common.util.concurrent.FutureCallback; +import com.google.common.util.concurrent.Futures; +import com.google.common.util.concurrent.ListenableFuture; import java.util.List; import java.util.concurrent.Executor; import java.util.concurrent.ExecutorService; @@ -19,14 +27,6 @@ import org.opendaylight.yangtools.util.DurationStatisticsTracker; import org.opendaylight.yangtools.util.concurrent.MappingCheckedFuture; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.base.Preconditions; -import com.google.common.collect.Iterables; -import com.google.common.util.concurrent.AbstractFuture; -import com.google.common.util.concurrent.AbstractListeningExecutorService; -import com.google.common.util.concurrent.CheckedFuture; -import com.google.common.util.concurrent.FutureCallback; -import com.google.common.util.concurrent.Futures; -import com.google.common.util.concurrent.ListenableFuture; /** * Implementation of DOMDataCommitExecutor that coordinates transaction commits concurrently. The 3 @@ -95,7 +95,8 @@ public class DOMConcurrentDataCommitCoordinator implements DOMDataCommitExecutor public void onSuccess(Boolean result) { if (result == null || !result) { handleException(clientSubmitFuture, transaction, cohorts, cohortSize, - CAN_COMMIT, new TransactionCommitFailedException( + CAN_COMMIT, TransactionCommitFailedExceptionMapper.CAN_COMMIT_ERROR_MAPPER, + new TransactionCommitFailedException( "Can Commit failed, no detailed cause available.")); } else { if(remaining.decrementAndGet() == 0) { @@ -107,7 +108,8 @@ public class DOMConcurrentDataCommitCoordinator implements DOMDataCommitExecutor @Override public void onFailure(Throwable t) { - handleException(clientSubmitFuture, transaction, cohorts, cohortSize, CAN_COMMIT, t); + handleException(clientSubmitFuture, transaction, cohorts, cohortSize, CAN_COMMIT, + TransactionCommitFailedExceptionMapper.CAN_COMMIT_ERROR_MAPPER, t); } }; @@ -134,7 +136,8 @@ public class DOMConcurrentDataCommitCoordinator implements DOMDataCommitExecutor @Override public void onFailure(Throwable t) { - handleException(clientSubmitFuture, transaction, cohorts, cohortSize, CAN_COMMIT, t); + handleException(clientSubmitFuture, transaction, cohorts, cohortSize, PRE_COMMIT, + TransactionCommitFailedExceptionMapper.PRE_COMMIT_MAPPER, t); } }; @@ -163,7 +166,8 @@ public class DOMConcurrentDataCommitCoordinator implements DOMDataCommitExecutor @Override public void onFailure(Throwable t) { - handleException(clientSubmitFuture, transaction, cohorts, cohortSize, CAN_COMMIT, t); + handleException(clientSubmitFuture, transaction, cohorts, cohortSize, COMMIT, + TransactionCommitFailedExceptionMapper.COMMIT_ERROR_MAPPER, t); } }; @@ -176,7 +180,8 @@ public class DOMConcurrentDataCommitCoordinator implements DOMDataCommitExecutor private void handleException(final AsyncNotifyingSettableFuture clientSubmitFuture, final DOMDataWriteTransaction transaction, final Iterable cohorts, int cohortSize, - final String phase, final Throwable t) { + final String phase, final TransactionCommitFailedExceptionMapper exMapper, + final Throwable t) { if(clientSubmitFuture.isDone()) { // We must have had failures from multiple cohorts. @@ -191,8 +196,7 @@ public class DOMConcurrentDataCommitCoordinator implements DOMDataCommitExecutor e = new RuntimeException("Unexpected error occurred", t); } - final TransactionCommitFailedException clientException = - TransactionCommitFailedExceptionMapper.CAN_COMMIT_ERROR_MAPPER.apply(e); + final TransactionCommitFailedException clientException = exMapper.apply(e); // Transaction failed - tell all cohorts to abort.