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%2FTransactionChainProxy.java;h=6cfc7e1f05ff78208de740994c7b370487d2d752;hp=d230a956c250d0bb359c2889bffa18ac4346d48f;hb=4639f61a41a93d6a762af97b819d164781b0f9f8;hpb=86a3188d6db1e7da2803a6b36daa2898fe045e45 diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/TransactionChainProxy.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/TransactionChainProxy.java index d230a956c2..6cfc7e1f05 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/TransactionChainProxy.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/TransactionChainProxy.java @@ -17,11 +17,11 @@ import java.util.List; import java.util.Map.Entry; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; -import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicReferenceFieldUpdater; +import java.util.function.Function; import javax.annotation.Nonnull; -import org.opendaylight.controller.cluster.datastore.identifiers.TransactionChainIdentifier; -import org.opendaylight.controller.cluster.datastore.identifiers.TransactionIdentifier; +import org.opendaylight.controller.cluster.access.concepts.LocalHistoryIdentifier; +import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; import org.opendaylight.controller.cluster.datastore.messages.CloseTransactionChain; import org.opendaylight.controller.cluster.datastore.messages.PrimaryShardInfo; import org.opendaylight.controller.md.sal.common.api.data.TransactionChainClosedException; @@ -119,11 +119,9 @@ final class TransactionChainProxy extends AbstractTransactionContextFactory STATE_UPDATER = AtomicReferenceFieldUpdater.newUpdater(TransactionChainProxy.class, State.class, "currentState"); - private final TransactionChainIdentifier transactionChainId; private final TransactionContextFactory parent; private volatile State currentState = IDLE_STATE; @@ -148,17 +146,11 @@ final class TransactionChainProxy extends AbstractTransactionContextFactory> priorReadOnlyTxPromises = new ConcurrentHashMap<>(); - TransactionChainProxy(final TransactionContextFactory parent) { - super(parent.getActorContext()); - - transactionChainId = new TransactionChainIdentifier(parent.getActorContext().getCurrentMemberName(), CHAIN_COUNTER.incrementAndGet()); + TransactionChainProxy(final TransactionContextFactory parent, final LocalHistoryIdentifier historyId) { + super(parent.getActorContext(), historyId); this.parent = parent; } - public String getTransactionChainId() { - return transactionChainId.toString(); - } - @Override public DOMStoreReadTransaction newReadOnlyTransaction() { currentState.checkReady(); @@ -184,7 +176,13 @@ final class TransactionChainProxy extends AbstractTransactionContextFactory() { + @Override + public Object apply(Short version) { + return new CloseTransactionChain(getHistoryId(), version).toSerializable(); + } + }, CloseTransactionChain.class); } private TransactionProxy allocateWriteTransaction(final TransactionType type) { @@ -227,7 +225,7 @@ final class TransactionChainProxy extends AbstractTransactionContextFactory