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%2Fdatabroker%2FClientBackedTransaction.java;h=4d979cdf96774915289026f2c14ce391eaee5249;hb=02d2891da4b71fe01ea8027a88ac6ddd353c2bcd;hp=6c1429773972562a7127c45558ab2290210f6557;hpb=5a0edd493bafc365647bc6311b4b7da86a78645d;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/ClientBackedTransaction.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/ClientBackedTransaction.java index 6c14297739..4d979cdf96 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/ClientBackedTransaction.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/ClientBackedTransaction.java @@ -13,6 +13,7 @@ import com.google.common.base.Preconditions; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import javax.annotation.Nonnull; +import javax.annotation.Nullable; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; import org.opendaylight.controller.cluster.databroker.actors.dds.AbstractClientHandle; import org.opendaylight.controller.cluster.databroker.actors.dds.ClientTransaction; @@ -35,15 +36,20 @@ abstract class ClientBackedTransaction> extend private static final Logger LOG = LoggerFactory.getLogger(Finalizer.class); private final AbstractClientHandle transaction; + private final Throwable allocationContext; - private Finalizer(final ClientBackedTransaction referent, final AbstractClientHandle transaction) { + private Finalizer(final ClientBackedTransaction referent, final AbstractClientHandle transaction, + final Throwable allocationContext) { super(referent, QUEUE); this.transaction = Preconditions.checkNotNull(transaction); + this.allocationContext = allocationContext; } - static @Nonnull > T recordTransaction( - @Nonnull final ClientBackedTransaction referent, @Nonnull final T transaction) { - FINALIZERS.add(new Finalizer(referent, transaction)); + @Nonnull + static > T recordTransaction( + @Nonnull final ClientBackedTransaction referent, @Nonnull final T transaction, + @Nullable final Throwable allocationContext) { + FINALIZERS.add(new Finalizer(referent, transaction, allocationContext)); return transaction; } @@ -51,16 +57,16 @@ abstract class ClientBackedTransaction> extend public void finalizeReferent() { FINALIZERS.remove(this); if (transaction.abort()) { - LOG.warn("Aborted orphan transaction {}", transaction.getIdentifier()); + LOG.info("Aborted orphan transaction {}", transaction, allocationContext); } } } private final T delegate; - ClientBackedTransaction(final T delegate) { + ClientBackedTransaction(final T delegate, final Throwable allocationContext) { super(delegate.getIdentifier()); - this.delegate = Finalizer.recordTransaction(this, delegate); + this.delegate = Finalizer.recordTransaction(this, delegate, allocationContext); } final T delegate() {