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%2Fdatabroker%2Factors%2Fdds%2FAbstractProxyTransaction.java;fp=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatabroker%2Factors%2Fdds%2FAbstractProxyTransaction.java;h=bf56376fcee3d538d483a063d652ae6d3d5a5654;hp=b8057c5afe428fd162e0ddf02c6a2c6d11eab108;hb=7933189a19f5c0f58b91baea300a2f512aac154f;hpb=b4e199c509cab1c9b838c6471a96ce3cb21fa913 diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractProxyTransaction.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractProxyTransaction.java index b8057c5afe..bf56376fce 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractProxyTransaction.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractProxyTransaction.java @@ -334,7 +334,7 @@ abstract class AbstractProxyTransaction implements Identifiable { LOG.debug("Transaction {} abort completed with {}", getIdentifier(), resp); - sendPurge(); + enqueuePurge(); }); } @@ -352,7 +352,7 @@ abstract class AbstractProxyTransaction implements Identifiable> callback) { - sendRequest(purgeRequest(), resp -> completePurge(resp, callback)); + final void enqueuePurge(final Consumer> callback) { + // Purge request are dispatched internally, hence should not wait + enqueuePurge(callback, parent.currentTime()); } final void enqueuePurge(final Consumer> callback, final long enqueuedTicks) { - enqueueRequest(purgeRequest(), resp -> completePurge(resp, callback), enqueuedTicks); + enqueueRequest(purgeRequest(), resp -> { + LOG.debug("Transaction {} purge completed", this); + parent.completeTransaction(this); + if (callback != null) { + callback.accept(resp); + } + }, enqueuedTicks); } private TransactionPurgeRequest purgeRequest() { @@ -518,14 +525,6 @@ abstract class AbstractProxyTransaction implements Identifiable resp, final Consumer> callback) { - LOG.debug("Transaction {} purge completed", this); - parent.completeTransaction(this); - if (callback != null) { - callback.accept(resp); - } - } - // Called with the connection unlocked final synchronized void startReconnect() { // At this point canCommit/directCommit are blocked, we assert a new successor state, retrieving the previous