X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatabroker%2Fcompat%2FLegacyDOMDataBrokerAdapter.java;h=8b3ff26dd6eb2f2a8348948eca603b62e7215d7c;hb=refs%2Fchanges%2F47%2F71547%2F6;hp=d1a4078fd84789206d7966c469b073b50f9569ea;hpb=794172272cbeb85a59b96fbc45f09698d8c3fc2a;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/compat/LegacyDOMDataBrokerAdapter.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/compat/LegacyDOMDataBrokerAdapter.java index d1a4078fd8..8b3ff26dd6 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/compat/LegacyDOMDataBrokerAdapter.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/compat/LegacyDOMDataBrokerAdapter.java @@ -16,6 +16,9 @@ import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMap.Builder; import com.google.common.util.concurrent.CheckedFuture; import com.google.common.util.concurrent.FluentFuture; +import com.google.common.util.concurrent.FutureCallback; +import com.google.common.util.concurrent.MoreExecutors; +import com.google.common.util.concurrent.SettableFuture; import java.util.Map; import java.util.concurrent.atomic.AtomicReference; import javax.annotation.Nonnull; @@ -59,8 +62,8 @@ import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; * @author Thomas Pantelis */ public class LegacyDOMDataBrokerAdapter extends ForwardingObject implements DOMDataBroker { - private static final ExceptionMapper SUBMIT_EX_MAPPER = - new ExceptionMapper("submit", TransactionCommitFailedException.class) { + private static final ExceptionMapper COMMIT_EX_MAPPER = + new ExceptionMapper("commit", TransactionCommitFailedException.class) { @Override protected TransactionCommitFailedException newWithCause(String message, Throwable cause) { if (cause instanceof org.opendaylight.mdsal.common.api.OptimisticLockFailedException) { @@ -177,7 +180,7 @@ public class LegacyDOMDataBrokerAdapter extends ForwardingObject implements DOMD final org.opendaylight.mdsal.common.api.AsyncTransaction transaction, final Throwable cause) { listener.onTransactionChainFailed(legacyChain.get(), (AsyncTransaction) () -> transaction.getIdentifier(), - cause instanceof Exception ? SUBMIT_EX_MAPPER.apply((Exception)cause) : cause); + cause instanceof Exception ? COMMIT_EX_MAPPER.apply((Exception)cause) : cause); } @Override @@ -298,14 +301,26 @@ public class LegacyDOMDataBrokerAdapter extends ForwardingObject implements DOMD return writeDelegate().cancel(); } - @Override - public CheckedFuture submit() { - return MappingCheckedFuture.create(writeDelegate().submit(), SUBMIT_EX_MAPPER); - } - @Override public FluentFuture commit() { - return writeDelegate().commit(); + final SettableFuture resultFuture = SettableFuture.create(); + writeDelegate().commit().addCallback(new FutureCallback() { + @Override + public void onSuccess(CommitInfo result) { + resultFuture.set(result); + } + + @Override + public void onFailure(Throwable ex) { + if (ex instanceof Exception) { + resultFuture.setException(COMMIT_EX_MAPPER.apply((Exception)ex)); + } else { + resultFuture.setException(ex); + } + } + }, MoreExecutors.directExecutor()); + + return resultFuture; } }