X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-inmemory-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fmd%2Fsal%2Fdom%2Fstore%2Fimpl%2FAbstractDOMStoreTransaction.java;h=6cc593904723ee6cf7a28f26fd0367703ec89371;hb=61bc22edce038c773f19e716e1a99147876232ed;hp=8a190c115fb2c68bd99228378ed389620af94023;hpb=43b9f7880866caef7d5ea58dbad2bba318a1f3e8;p=controller.git diff --git a/opendaylight/md-sal/sal-inmemory-datastore/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/AbstractDOMStoreTransaction.java b/opendaylight/md-sal/sal-inmemory-datastore/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/AbstractDOMStoreTransaction.java index 8a190c115f..6cc5939047 100644 --- a/opendaylight/md-sal/sal-inmemory-datastore/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/AbstractDOMStoreTransaction.java +++ b/opendaylight/md-sal/sal-inmemory-datastore/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/AbstractDOMStoreTransaction.java @@ -7,25 +7,26 @@ */ package org.opendaylight.controller.md.sal.dom.store.impl; -import org.opendaylight.controller.sal.core.spi.data.DOMStoreTransaction; - import com.google.common.base.Objects; import com.google.common.base.Objects.ToStringHelper; import com.google.common.base.Preconditions; +import org.opendaylight.controller.sal.core.spi.data.DOMStoreTransaction; +import org.slf4j.Logger; + /** * Abstract DOM Store Transaction * * Convenience super implementation of DOM Store transaction which provides * common implementation of {@link #toString()} and {@link #getIdentifier()}. - * - * */ abstract class AbstractDOMStoreTransaction implements DOMStoreTransaction { + private final Throwable debugContext; private final Object identifier; - protected AbstractDOMStoreTransaction(final Object identifier) { - this.identifier = Preconditions.checkNotNull(identifier,"Identifier must not be null."); + protected AbstractDOMStoreTransaction(final Object identifier, final boolean debug) { + this.identifier = Preconditions.checkNotNull(identifier, "Identifier must not be null."); + this.debugContext = debug ? new Throwable().fillInStackTrace() : null; } @Override @@ -33,6 +34,12 @@ abstract class AbstractDOMStoreTransaction implements DOMStoreTransaction { return identifier; } + protected final void warnDebugContext(final Logger logger) { + if (debugContext != null) { + logger.warn("Transaction {} has been allocated in the following context", identifier, debugContext); + } + } + @Override public final String toString() { return addToStringAttributes(Objects.toStringHelper(this)).toString();