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%2Fdatabroker%2Factors%2Fdds%2FAbstractClientHistory.java;h=d445d3c2f6f9e542ec031c2737653317e3952a73;hp=44292307969a27ba26b893440c5e73d71c9787d1;hb=d502ae8e1529b69af55a59c3e664a02457c05ec6;hpb=5041389b273212eb0c643cc071fd48ad1166d864;ds=inline diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractClientHistory.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractClientHistory.java index 4429230796..d445d3c2f6 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractClientHistory.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractClientHistory.java @@ -20,6 +20,8 @@ import java.util.concurrent.atomic.AtomicLongFieldUpdater; import java.util.concurrent.atomic.AtomicReferenceFieldUpdater; import java.util.concurrent.locks.StampedLock; import org.checkerframework.checker.lock.qual.GuardedBy; +import org.checkerframework.checker.lock.qual.Holding; +import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.controller.cluster.access.client.AbstractClientConnection; import org.opendaylight.controller.cluster.access.client.ConnectedClientConnection; import org.opendaylight.controller.cluster.access.client.ConnectionEntry; @@ -62,8 +64,8 @@ public abstract class AbstractClientHistory extends LocalAbortable implements Id private final Map histories = new ConcurrentHashMap<>(); private final StampedLock lock = new StampedLock(); - private final AbstractDataStoreClientBehavior client; - private final LocalHistoryIdentifier identifier; + private final @NonNull AbstractDataStoreClientBehavior client; + private final @NonNull LocalHistoryIdentifier identifier; // Used via NEXT_TX_UPDATER @SuppressWarnings("unused") @@ -135,7 +137,7 @@ public abstract class AbstractClientHistory extends LocalAbortable implements Id * * @throws InversibleLockException if the shard is being reconnected */ - @GuardedBy("lock") + @Holding("lock") private ProxyHistory createHistoryProxy(final Long shard) { final AbstractClientConnection connection = client.getConnection(shard); final LocalHistoryIdentifier proxyId = new LocalHistoryIdentifier(identifier.getClientId(), @@ -159,7 +161,7 @@ public abstract class AbstractClientHistory extends LocalAbortable implements Id LOG.debug("Create history response {}", response); } - private ProxyHistory ensureHistoryProxy(final TransactionIdentifier transactionId, final Long shard) { + private @NonNull ProxyHistory ensureHistoryProxy(final TransactionIdentifier transactionId, final Long shard) { while (true) { try { // Short-lived lock to ensure exclusion of createHistoryProxy and the lookup phase in startReconnect, @@ -178,11 +180,13 @@ public abstract class AbstractClientHistory extends LocalAbortable implements Id } } - final AbstractProxyTransaction createSnapshotProxy(final TransactionIdentifier transactionId, final Long shard) { + final @NonNull AbstractProxyTransaction createSnapshotProxy(final TransactionIdentifier transactionId, + final Long shard) { return ensureHistoryProxy(transactionId, shard).createTransactionProxy(transactionId, true); } - final AbstractProxyTransaction createTransactionProxy(final TransactionIdentifier transactionId, final Long shard) { + final @NonNull AbstractProxyTransaction createTransactionProxy(final TransactionIdentifier transactionId, + final Long shard) { return ensureHistoryProxy(transactionId, shard).createTransactionProxy(transactionId, false); } @@ -199,7 +203,7 @@ public abstract class AbstractClientHistory extends LocalAbortable implements Id * @throws DOMTransactionChainClosedException if this history is closed * @throws IllegalStateException if a previous dependent transaction has not been closed */ - public ClientTransaction createTransaction() { + public @NonNull ClientTransaction createTransaction() { checkNotClosed(); synchronized (this) { @@ -226,10 +230,10 @@ public abstract class AbstractClientHistory extends LocalAbortable implements Id } } - @GuardedBy("this") + @Holding("this") abstract ClientSnapshot doCreateSnapshot(); - @GuardedBy("this") + @Holding("this") abstract ClientTransaction doCreateTransaction(); /**