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%2FFrontendReadWriteTransaction.java;h=4bd2a5725758b228c1803414b74e116810ca40b9;hb=546cd1fd100dbaa36908b22c2f422320dbd8c4b2;hp=d5fcc5e741de4355fc262c51eb4cf2fe260fcecb;hpb=731e7284cf0895fdb1b89427f91762e80e67c2ff;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/FrontendReadWriteTransaction.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/FrontendReadWriteTransaction.java index d5fcc5e741..4bd2a57257 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/FrontendReadWriteTransaction.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/FrontendReadWriteTransaction.java @@ -7,13 +7,14 @@ */ package org.opendaylight.controller.cluster.datastore; -import com.google.common.base.Optional; -import com.google.common.base.Preconditions; +import static com.google.common.base.Preconditions.checkState; +import static java.util.Objects.requireNonNull; + import com.google.common.primitives.UnsignedLong; import com.google.common.util.concurrent.FutureCallback; import java.util.Collection; -import javax.annotation.Nullable; -import javax.annotation.concurrent.NotThreadSafe; +import java.util.Optional; +import org.eclipse.jdt.annotation.Nullable; import org.opendaylight.controller.cluster.access.commands.AbortLocalTransactionRequest; import org.opendaylight.controller.cluster.access.commands.CommitLocalTransactionRequest; import org.opendaylight.controller.cluster.access.commands.ExistsTransactionRequest; @@ -48,11 +49,10 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** - * Frontend read-write transaction state as observed by the shard leader. + * Frontend read-write transaction state as observed by the shard leader. This class is NOT thread-safe. * * @author Robert Varga */ -@NotThreadSafe final class FrontendReadWriteTransaction extends FrontendTransaction { private enum CommitStage { READY, @@ -72,7 +72,7 @@ final class FrontendReadWriteTransaction extends FrontendTransaction { final RequestException cause; Failed(final RequestException cause) { - this.cause = Preconditions.checkNotNull(cause); + this.cause = requireNonNull(cause); } @Override @@ -85,7 +85,7 @@ final class FrontendReadWriteTransaction extends FrontendTransaction { final ReadWriteShardDataTreeTransaction openTransaction; Open(final ReadWriteShardDataTreeTransaction openTransaction) { - this.openTransaction = Preconditions.checkNotNull(openTransaction); + this.openTransaction = requireNonNull(openTransaction); } @Override @@ -99,7 +99,7 @@ final class FrontendReadWriteTransaction extends FrontendTransaction { CommitStage stage; Ready(final ShardDataTreeCohort readyCohort) { - this.readyCohort = Preconditions.checkNotNull(readyCohort); + this.readyCohort = requireNonNull(readyCohort); this.stage = CommitStage.READY; } @@ -113,7 +113,7 @@ final class FrontendReadWriteTransaction extends FrontendTransaction { final DataTreeModification sealedModification; Sealed(final DataTreeModification sealedModification) { - this.sealedModification = Preconditions.checkNotNull(sealedModification); + this.sealedModification = requireNonNull(sealedModification); } @Override @@ -184,7 +184,7 @@ final class FrontendReadWriteTransaction extends FrontendTransaction { // Sequence has already been checked @Override - @Nullable TransactionSuccess doHandleRequest(final TransactionRequest request, final RequestEnvelope envelope, + TransactionSuccess doHandleRequest(final TransactionRequest request, final RequestEnvelope envelope, final long now) throws RequestException { if (request instanceof ModifyTransactionRequest) { return handleModifyTransaction((ModifyTransactionRequest) request, envelope, now); @@ -509,12 +509,11 @@ final class FrontendReadWriteTransaction extends FrontendTransaction { throw new UnsupportedRequestException(request); } - final java.util.Optional optFailure = request.getDelayedFailure(); + final Optional optFailure = request.getDelayedFailure(); if (optFailure.isPresent()) { state = new Ready(history().createFailedCohort(getIdentifier(), sealedModification, optFailure.get())); } else { - state = new Ready(history().createReadyCohort(getIdentifier(), sealedModification, - java.util.Optional.empty())); + state = new Ready(history().createReadyCohort(getIdentifier(), sealedModification, Optional.empty())); } if (request.isCoordinated()) { @@ -524,18 +523,14 @@ final class FrontendReadWriteTransaction extends FrontendTransaction { } } - private ExistsTransactionSuccess handleExistsTransaction(final ExistsTransactionRequest request) - throws RequestException { - final Optional> data = Optional.fromJavaUtil(checkOpen().getSnapshot().readNode( - request.getPath())); + private ExistsTransactionSuccess handleExistsTransaction(final ExistsTransactionRequest request) { + final Optional data = checkOpen().getSnapshot().readNode(request.getPath()); return recordSuccess(request.getSequence(), new ExistsTransactionSuccess(getIdentifier(), request.getSequence(), data.isPresent())); } - private ReadTransactionSuccess handleReadTransaction(final ReadTransactionRequest request) - throws RequestException { - final Optional> data = Optional.fromJavaUtil(checkOpen().getSnapshot().readNode( - request.getPath())); + private ReadTransactionSuccess handleReadTransaction(final ReadTransactionRequest request) { + final Optional data = checkOpen().getSnapshot().readNode(request.getPath()); return recordSuccess(request.getSequence(), new ReadTransactionSuccess(getIdentifier(), request.getSequence(), data)); } @@ -561,12 +556,11 @@ final class FrontendReadWriteTransaction extends FrontendTransaction { } } - @Nullable - private TransactionSuccess handleModifyTransaction(final ModifyTransactionRequest request, + private @Nullable TransactionSuccess handleModifyTransaction(final ModifyTransactionRequest request, final RequestEnvelope envelope, final long now) throws RequestException { // We need to examine the persistence protocol first to see if this is an idempotent request. If there is no // protocol, there is nothing for us to do. - final java.util.Optional maybeProto = request.getPersistenceProtocol(); + final Optional maybeProto = request.getPersistenceProtocol(); if (!maybeProto.isPresent()) { applyModifications(request.getModifications()); return replyModifySuccess(request.getSequence()); @@ -612,7 +606,7 @@ final class FrontendReadWriteTransaction extends FrontendTransaction { } applyModifications(modifications); - state = new Ready(checkOpen().ready(java.util.Optional.empty())); + state = new Ready(checkOpen().ready(Optional.empty())); LOG.debug("{}: transitioned {} to ready", persistenceId(), getIdentifier()); } @@ -624,20 +618,17 @@ final class FrontendReadWriteTransaction extends FrontendTransaction { } private ReadWriteShardDataTreeTransaction checkOpen() { - Preconditions.checkState(state instanceof Open, "%s expect to be open, is in state %s", getIdentifier(), - state); + checkState(state instanceof Open, "%s expect to be open, is in state %s", getIdentifier(), state); return ((Open) state).openTransaction; } private Ready checkReady() { - Preconditions.checkState(state instanceof Ready, "%s expect to be ready, is in state %s", getIdentifier(), - state); + checkState(state instanceof Ready, "%s expect to be ready, is in state %s", getIdentifier(), state); return (Ready) state; } private DataTreeModification checkSealed() { - Preconditions.checkState(state instanceof Sealed, "%s expect to be sealed, is in state %s", getIdentifier(), - state); + checkState(state instanceof Sealed, "%s expect to be sealed, is in state %s", getIdentifier(), state); return ((Sealed) state).sealedModification; }