From 07d2329725598f313e14b3046478e4551c68e359 Mon Sep 17 00:00:00 2001 From: Robert von Burg Date: Wed, 5 Aug 2020 23:44:57 +0200 Subject: [PATCH] [New] Added StrolchTransaction.reset() --- .../strolch/persistence/api/AbstractTransaction.java | 10 ++++++++++ .../li/strolch/persistence/api/StrolchTransaction.java | 6 ++++++ 2 files changed, 16 insertions(+) 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 a617b2cb9..a29cb3671 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 @@ -1428,6 +1428,16 @@ public abstract class AbstractTransaction implements StrolchTransaction { } } + @Override + public void reset() { + clearCache(); + if (this.commands != null) + this.commands.clear(); + if (this.objectFilter != null) + this.objectFilter.clearCache(); + logger.info("Cache, commands and changes have been cleared!"); + } + @Override public void flush() { try { 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 04dd3284b..a26bd28ca 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 @@ -292,6 +292,12 @@ public interface StrolchTransaction extends AutoCloseable { */ void clearCache(); + /** + * Resets this TX so that all caches and changes are reverted, fetched objects might need to be re-fetched to have a + * clean state. Locks are not released! + */ + void reset(); + /** *

* Performs all registered commands