X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=opendaylight%2Fmd-sal%2Fsal-inmemory-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fmd%2Fsal%2Fdom%2Fstore%2Fimpl%2FAbstractDOMStoreTransaction.java;h=8d040f612e82b70f59bff3feb45628cbb0ed9625;hb=f3746f3050510f613aaf0e7aa4e46fd502d8f949;hp=8a190c115fb2c68bd99228378ed389620af94023;hpb=cbe83ca3074fa0182d4f079f528bb710a997ced7;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..8d040f612e 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,25 @@ */ 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.MoreObjects; +import com.google.common.base.MoreObjects.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,9 +33,15 @@ 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(); + return addToStringAttributes(MoreObjects.toStringHelper(this)).toString(); } /**