diff --git a/li.strolch.agent/src/main/java/li/strolch/persistence/api/AbstractTransaction.java b/li.strolch.agent/src/main/java/li/strolch/persistence/api/AbstractTransaction.java index 6fb2fd340..986d6e00f 100644 --- a/li.strolch.agent/src/main/java/li/strolch/persistence/api/AbstractTransaction.java +++ b/li.strolch.agent/src/main/java/li/strolch/persistence/api/AbstractTransaction.java @@ -86,6 +86,7 @@ public abstract class AbstractTransaction implements StrolchTransaction { private TransactionCloseStrategy closeStrategy; private boolean suppressUpdates; private boolean suppressAudits; + private boolean suppressDoNothingLogging; private TransactionResult txResult; private List commands; @@ -206,6 +207,16 @@ public abstract class AbstractTransaction implements StrolchTransaction { return this.suppressAudits; } + @Override + public boolean isSuppressDoNothingLogging() { + return suppressDoNothingLogging; + } + + @Override + public void setSuppressDoNothingLogging(boolean quietDoNothing) { + this.suppressDoNothingLogging = quietDoNothing; + } + @Override public void lock(T element) throws StrolchLockException { this.realm.lock(element); @@ -589,6 +600,9 @@ public abstract class AbstractTransaction implements StrolchTransaction { private void handleDoNothing(long start, long auditTrailDuration) { + if (this.suppressDoNothingLogging) + return; + long end = System.nanoTime(); long txDuration = end - this.txResult.getStartNanos(); long closeDuration = end - start; diff --git a/li.strolch.agent/src/main/java/li/strolch/persistence/api/StrolchTransaction.java b/li.strolch.agent/src/main/java/li/strolch/persistence/api/StrolchTransaction.java index 8a93162fe..a83555593 100644 --- a/li.strolch.agent/src/main/java/li/strolch/persistence/api/StrolchTransaction.java +++ b/li.strolch.agent/src/main/java/li/strolch/persistence/api/StrolchTransaction.java @@ -268,6 +268,21 @@ public interface StrolchTransaction extends AutoCloseable { */ public boolean isSuppressAudits(); + /** + * If the given argument is true, then logging of a {@link TransactionCloseStrategy#DO_NOTHING} will be suppressed + * + * @param SuppressDoNothingLogging + * true to suppress logging of a {@link TransactionCloseStrategy#DO_NOTHING}, false to enable logging + */ + void setSuppressDoNothingLogging(boolean suppressDoNothingLogging); + + /** + * Returns true if logging of a {@link TransactionCloseStrategy#DO_NOTHING} should be suppressed + * + * @return true if logging of a {@link TransactionCloseStrategy#DO_NOTHING} should be suppressed + */ + boolean isSuppressDoNothingLogging(); + /** * Locks the given element and registers it on the transaction so the lock is released when the transaction is * closed