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=b93f540f20783b74288b7112056883d6a535c9cf;hp=d230a956c250d0bb359c2889bffa18ac4346d48f;hb=c796596b5c46b5203c30b143e6282662e66c5642;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..b93f540f20 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,15 +146,13 @@ 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(); + return getHistoryId().toString(); } @Override @@ -184,7 +180,13 @@ final class TransactionChainProxy extends AbstractTransactionContextFactory() { + @Override + public Object apply(Short version) { + return new CloseTransactionChain(getHistoryId().toString(), version).toSerializable(); + } + }); } private TransactionProxy allocateWriteTransaction(final TransactionType type) { @@ -330,9 +332,4 @@ final class TransactionChainProxy extends AbstractTransactionContextFactory