X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2FShardTransaction.java;h=5b9c95f3b7ce16870321b98a61aaab1539828d2c;hb=f41c5e6e6f6e10b36b1e4b1992877e38e718c8fb;hp=b4fee8e9c859cb5a0a076806e1bf9f32f9aa38d3;hpb=2634ed7138a343f051ff6452ccc7edd3abfc0c3a;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardTransaction.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardTransaction.java index b4fee8e9c8..5b9c95f3b7 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardTransaction.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardTransaction.java @@ -13,7 +13,6 @@ import akka.actor.PoisonPill; import akka.actor.Props; import akka.actor.ReceiveTimeout; import akka.japi.Creator; -import com.google.common.base.Optional; import com.google.common.base.Preconditions; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; @@ -23,11 +22,11 @@ import org.opendaylight.controller.cluster.datastore.messages.CloseTransaction; import org.opendaylight.controller.cluster.datastore.messages.CloseTransactionReply; import org.opendaylight.controller.cluster.datastore.messages.DataExists; import org.opendaylight.controller.cluster.datastore.messages.DataExistsReply; +import org.opendaylight.controller.cluster.datastore.messages.PersistAbortTransactionPayload; import org.opendaylight.controller.cluster.datastore.messages.ReadData; import org.opendaylight.controller.cluster.datastore.messages.ReadDataReply; import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; -import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; /** * The ShardTransaction Actor represents a remote transaction that delegates all actions to DOMDataReadWriteTransaction. @@ -39,7 +38,8 @@ public abstract class ShardTransaction extends AbstractUntypedActorWithMetering protected ShardTransaction(final ActorRef shardActor, final ShardStats shardStats, final TransactionIdentifier transactionId) { - super("shard-tx"); //actor name override used for metering. This does not change the "real" actor name + // actor name override used for metering. This does not change the "real" actor name + super("shard-tx"); this.shardActor = shardActor; this.shardStats = shardStats; this.transactionId = Preconditions.checkNotNull(transactionId); @@ -77,7 +77,8 @@ public abstract class ShardTransaction extends AbstractUntypedActorWithMetering } private void closeTransaction(final boolean sendReply) { - getDOMStoreTransaction().abort(null); + getDOMStoreTransaction().abortFromTransactionActor(); + shardActor.tell(new PersistAbortTransactionPayload(transactionId), ActorRef.noSender()); if (sendReply && returnCloseTransactionReply()) { getSender().tell(new CloseTransactionReply(), getSelf()); @@ -102,8 +103,8 @@ public abstract class ShardTransaction extends AbstractUntypedActorWithMetering } final YangInstanceIdentifier path = message.getPath(); - Optional> optional = transaction.getSnapshot().readNode(path); - ReadDataReply readDataReply = new ReadDataReply(optional.orNull(), message.getVersion()); + ReadDataReply readDataReply = new ReadDataReply(transaction.getSnapshot().readNode(path).orElse(null), + message.getVersion()); sender().tell(readDataReply.toSerializable(), self()); }