When a ready-time failure occurs, do not overwrite it with a null
operation error (if no operations failed).
Change-Id: If2ac379e25af7bc93602b91ea5b068974a196771
Signed-off-by: Robert Varga <rovarga@cisco.com>
import akka.dispatch.OnComplete;
import com.google.common.base.Preconditions;
import com.google.common.util.concurrent.ListenableFuture;
import akka.dispatch.OnComplete;
import com.google.common.base.Preconditions;
import com.google.common.util.concurrent.ListenableFuture;
+import javax.annotation.Nonnull;
import org.opendaylight.controller.cluster.datastore.identifiers.TransactionIdentifier;
import org.opendaylight.controller.cluster.datastore.messages.CommitTransactionReply;
import org.opendaylight.controller.cluster.datastore.messages.ReadyLocalTransaction;
import org.opendaylight.controller.cluster.datastore.identifiers.TransactionIdentifier;
import org.opendaylight.controller.cluster.datastore.messages.CommitTransactionReply;
import org.opendaylight.controller.cluster.datastore.messages.ReadyLocalTransaction;
return actorContext.executeOperationAsync(leader, message, actorContext.getTransactionCommitOperationTimeout());
}
return actorContext.executeOperationAsync(leader, message, actorContext.getTransactionCommitOperationTimeout());
}
- void setOperationError(Exception operationError) {
- this.operationError = operationError;
+ void setOperationError(@Nonnull Exception operationError) {
+ if (this.operationError != null) {
+ LOG.info("Cohort {} already had operation error", this, this.operationError);
+ }
+
+ this.operationError = Preconditions.checkNotNull(operationError);
}
Future<ActorSelection> initiateCoordinatedCommit() {
}
Future<ActorSelection> initiateCoordinatedCommit() {
private LocalThreePhaseCommitCohort ready() {
logModificationCount();
LocalThreePhaseCommitCohort cohort = readySupport.onTransactionReady(getWriteDelegate());
private LocalThreePhaseCommitCohort ready() {
logModificationCount();
LocalThreePhaseCommitCohort cohort = readySupport.onTransactionReady(getWriteDelegate());
- cohort.setOperationError(operationError);
+ if (operationError != null) {
+ cohort.setOperationError(operationError);
+ }