X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fmdsal-trace%2Fdom-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fmd%2Fsal%2Ftrace%2Fdom%2Fimpl%2FTracingReadWriteTransaction.java;h=ae331cb39630b360b43f190cb818dbf9093ab455;hp=c906ef933b323605d844af0405aa2164b8586a84;hb=aaea3e9a92ae9d6fac04c4a065db4b35cbca9ed0;hpb=0aae219a77e306178b6ea184fa3cbd8ad98e6bce diff --git a/opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/dom/impl/TracingReadWriteTransaction.java b/opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/dom/impl/TracingReadWriteTransaction.java index c906ef933b..ae331cb396 100644 --- a/opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/dom/impl/TracingReadWriteTransaction.java +++ b/opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/dom/impl/TracingReadWriteTransaction.java @@ -7,24 +7,32 @@ */ package org.opendaylight.controller.md.sal.trace.dom.impl; - import com.google.common.base.Optional; import com.google.common.util.concurrent.CheckedFuture; +import com.google.common.util.concurrent.FluentFuture; import java.util.Objects; - import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException; import org.opendaylight.controller.md.sal.dom.api.DOMDataReadWriteTransaction; +import org.opendaylight.controller.md.sal.trace.closetracker.impl.CloseTracked; +import org.opendaylight.controller.md.sal.trace.closetracker.impl.CloseTrackedRegistry; +import org.opendaylight.controller.md.sal.trace.closetracker.impl.CloseTrackedTrait; +import org.opendaylight.mdsal.common.api.CommitInfo; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; +@Deprecated(forRemoval = true) +class TracingReadWriteTransaction + extends AbstractTracingWriteTransaction + implements DOMDataReadWriteTransaction, CloseTracked { -class TracingReadWriteTransaction extends TracingWriteTransaction implements DOMDataReadWriteTransaction { - + private final CloseTrackedTrait closeTracker; private final DOMDataReadWriteTransaction delegate; - TracingReadWriteTransaction(DOMDataReadWriteTransaction delegate, TracingBroker tracingBroker) { + TracingReadWriteTransaction(DOMDataReadWriteTransaction delegate, TracingBroker tracingBroker, + CloseTrackedRegistry readWriteTransactionsRegistry) { super(delegate, tracingBroker); + this.closeTracker = new CloseTrackedTrait<>(readWriteTransactionsRegistry, this); this.delegate = Objects.requireNonNull(delegate); } @@ -38,4 +46,26 @@ class TracingReadWriteTransaction extends TracingWriteTransaction implements DOM public CheckedFuture exists(LogicalDatastoreType store, YangInstanceIdentifier yiid) { return delegate.exists(store, yiid); } + + @Override + public FluentFuture commit() { + closeTracker.removeFromTrackedRegistry(); + return super.commit(); + } + + @Override + public boolean cancel() { + closeTracker.removeFromTrackedRegistry(); + return super.cancel(); + } + + @Override + public StackTraceElement[] getAllocationContextStackTrace() { + return closeTracker.getAllocationContextStackTrace(); + } + + @Override + public CloseTracked getRealCloseTracked() { + return this; + } }