X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatabroker%2Factors%2Fdds%2FLocalProxyTransaction.java;h=e9941179c7aa7c599435defda9b2f6a9165ff862;hp=61f83c2db1e8172c9374665bfe41eba3e2e13d3d;hb=b5444f8c2c10ded63d6a9e890db61b0f3aa2095e;hpb=8fdce17243f8d71a053704e93cd5fe43fefc1038 diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/LocalProxyTransaction.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/LocalProxyTransaction.java index 61f83c2db1..e9941179c7 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/LocalProxyTransaction.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/LocalProxyTransaction.java @@ -31,7 +31,6 @@ import org.opendaylight.controller.cluster.access.commands.TransactionModificati import org.opendaylight.controller.cluster.access.commands.TransactionPreCommitRequest; import org.opendaylight.controller.cluster.access.commands.TransactionRequest; import org.opendaylight.controller.cluster.access.commands.TransactionWrite; -import org.opendaylight.controller.cluster.access.concepts.RequestException; import org.opendaylight.controller.cluster.access.concepts.Response; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; import org.opendaylight.controller.cluster.datastore.util.AbstractDataTreeModificationCursor; @@ -40,7 +39,6 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; import org.opendaylight.yangtools.yang.data.api.schema.tree.CursorAwareDataTreeModification; -import org.opendaylight.yangtools.yang.data.api.schema.tree.CursorAwareDataTreeSnapshot; import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification; import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModificationCursor; import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeSnapshot; @@ -69,7 +67,7 @@ final class LocalProxyTransaction extends AbstractProxyTransaction { private final TransactionIdentifier identifier; private CursorAwareDataTreeModification modification; - private CursorAwareDataTreeSnapshot sealedModification; + private CursorAwareDataTreeModification sealedModification; LocalProxyTransaction(final ProxyHistory parent, final TransactionIdentifier identifier, final CursorAwareDataTreeModification modification) { @@ -137,6 +135,26 @@ final class LocalProxyTransaction extends AbstractProxyTransaction { sealedModification = modification; } + @Override + void flushState(final AbstractProxyTransaction successor) { + sealedModification.applyToCursor(new AbstractDataTreeModificationCursor() { + @Override + public void write(final PathArgument child, final NormalizedNode data) { + successor.write(current().node(child), data); + } + + @Override + public void merge(final PathArgument child, final NormalizedNode data) { + successor.merge(current().node(child), data); + } + + @Override + public void delete(final PathArgument child) { + successor.delete(current().node(child)); + } + }); + } + DataTreeSnapshot getSnapshot() { Preconditions.checkState(sealedModification != null, "Proxy %s is not sealed yet", identifier); return sealedModification; @@ -205,7 +223,7 @@ final class LocalProxyTransaction extends AbstractProxyTransaction { @Override void forwardToRemote(final RemoteProxyTransaction successor, final TransactionRequest request, - final Consumer> callback) throws RequestException { + final Consumer> callback) { if (request instanceof CommitLocalTransactionRequest) { final CommitLocalTransactionRequest req = (CommitLocalTransactionRequest) request; final DataTreeModification mod = req.getModification(); @@ -242,7 +260,7 @@ final class LocalProxyTransaction extends AbstractProxyTransaction { @Override void forwardToLocal(final LocalProxyTransaction successor, final TransactionRequest request, - final Consumer> callback) throws RequestException { + final Consumer> callback) { if (request instanceof AbortLocalTransactionRequest) { successor.sendAbort(request, callback); } else if (request instanceof CommitLocalTransactionRequest) {