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;
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.
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);
}
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());
}
final YangInstanceIdentifier path = message.getPath();
- Optional<NormalizedNode<?, ?>> 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());
}