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%2Fdatastore%2FShardWriteTransaction.java;h=b3f4b0b0d6d1f28f669b3fb48cfb02002447b1d7;hp=3b175a9c05956174896711412474abac649e0141;hb=35dfbc096623d860b6e24b2d17ac6e2c6a3dca1c;hpb=4d1709660b7af992d4c382a2a38debb5c7d64fb9 diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardWriteTransaction.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardWriteTransaction.java index 3b175a9c05..b3f4b0b0d6 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardWriteTransaction.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardWriteTransaction.java @@ -21,8 +21,9 @@ import org.opendaylight.controller.cluster.datastore.messages.ReadData; import org.opendaylight.controller.cluster.datastore.modification.Modification; /** - * @author: syedbahm - * Date: 8/6/14 + * Actor for a shard write-only transaction. + * + * @author syedbahm */ public class ShardWriteTransaction extends ShardTransaction { @@ -32,7 +33,7 @@ public class ShardWriteTransaction extends ShardTransaction { public ShardWriteTransaction(ReadWriteShardDataTreeTransaction transaction, ActorRef shardActor, ShardStats shardStats) { - super(shardActor, shardStats, transaction.getId()); + super(shardActor, shardStats, transaction.getIdentifier()); this.transaction = transaction; } @@ -50,6 +51,7 @@ public class ShardWriteTransaction extends ShardTransaction { } } + @SuppressWarnings("checkstyle:IllegalCatch") private void batchedModifications(BatchedModifications batched) { if (checkClosed()) { if (batched.isReady()) { @@ -59,23 +61,23 @@ public class ShardWriteTransaction extends ShardTransaction { } try { - for(Modification modification: batched.getModifications()) { + for (Modification modification: batched.getModifications()) { modification.apply(transaction.getSnapshot()); } totalBatchedModificationsReceived++; - if(batched.isReady()) { - if(lastBatchedModificationsException != null) { + if (batched.isReady()) { + if (lastBatchedModificationsException != null) { throw lastBatchedModificationsException; } - if(totalBatchedModificationsReceived != batched.getTotalMessagesSent()) { + if (totalBatchedModificationsReceived != batched.getTotalMessagesSent()) { throw new IllegalStateException(String.format( "The total number of batched messages received %d does not match the number sent %d", totalBatchedModificationsReceived, batched.getTotalMessagesSent())); } - readyTransaction(false, batched.isDoCommitOnReady(), batched.getVersion()); + readyTransaction(batched); } else { getSender().tell(new BatchedModificationsReply(batched.getModifications().size()), getSelf()); } @@ -83,7 +85,7 @@ public class ShardWriteTransaction extends ShardTransaction { lastBatchedModificationsException = e; getSender().tell(new akka.actor.Status.Failure(e), getSelf()); - if(batched.isReady()) { + if (batched.isReady()) { getSelf().tell(PoisonPill.getInstance(), getSelf()); } } @@ -99,20 +101,21 @@ public class ShardWriteTransaction extends ShardTransaction { private boolean checkClosed() { if (transaction.isClosed()) { - getSender().tell(new akka.actor.Status.Failure(new IllegalStateException("Transaction is closed, no modifications allowed")), getSelf()); + getSender().tell(new akka.actor.Status.Failure(new IllegalStateException( + "Transaction is closed, no modifications allowed")), getSelf()); return true; } else { return false; } } - private void readyTransaction(boolean returnSerialized, boolean doImmediateCommit, short clientTxVersion) { - TransactionIdentifier transactionID = getTransactionID(); + private void readyTransaction(BatchedModifications batched) { + TransactionIdentifier transactionID = getTransactionId(); LOG.debug("readyTransaction : {}", transactionID); - getShardActor().forward(new ForwardedReadyTransaction(transactionID, clientTxVersion, - transaction, doImmediateCommit), getContext()); + getShardActor().forward(new ForwardedReadyTransaction(transactionID, batched.getVersion(), + transaction, batched.isDoCommitOnReady(), batched.getParticipatingShardNames()), getContext()); // The shard will handle the commit from here so we're no longer needed - self-destruct. getSelf().tell(PoisonPill.getInstance(), getSelf());