From 571d57daab07992746cea06458f390657e8de953 Mon Sep 17 00:00:00 2001 From: "p.zahnen" Date: Tue, 6 Jan 2026 12:09:56 +0100 Subject: [PATCH 1/3] refactor synchronization in cache drivers --- .../xtraplatform/cache/app/CacheDriverFs.java | 30 +++++++++++-------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/xtraplatform-cache/src/main/java/de/ii/xtraplatform/cache/app/CacheDriverFs.java b/xtraplatform-cache/src/main/java/de/ii/xtraplatform/cache/app/CacheDriverFs.java index 4d3d787b..6b018026 100644 --- a/xtraplatform-cache/src/main/java/de/ii/xtraplatform/cache/app/CacheDriverFs.java +++ b/xtraplatform-cache/src/main/java/de/ii/xtraplatform/cache/app/CacheDriverFs.java @@ -137,18 +137,20 @@ private T read(String key, String validator, Class clazz) { } } - private synchronized void write(String key, String validator, Object value, int ttl) { + private void write(String key, String validator, Object value, int ttl) { Path entry = keyPath(key); try { byte[] serialized = serialize(value); - Files.createDirectories(entry); - Files.write(entry.resolve(validator), serialized); - if (ttl > 0) { - long expires = Instant.now().toEpochMilli() + (ttl * 1000L); - Files.writeString(entry.resolve(TTL), Long.toString(expires)); - } else { - Files.deleteIfExists(entry.resolve(TTL)); + synchronized (this) { + Files.createDirectories(entry); + Files.write(entry.resolve(validator), serialized); + if (ttl > 0) { + long expires = Instant.now().toEpochMilli() + (ttl * 1000L); + Files.writeString(entry.resolve(TTL), Long.toString(expires)); + } else { + Files.deleteIfExists(entry.resolve(TTL)); + } } } catch (IOException e) { // ignore @@ -175,11 +177,13 @@ private T deserialize(byte[] value, Class clazz) throws IOException { return valueEncoding.getMapper(FORMAT.SMILE).readValue(value, clazz); } - private synchronized void delete(String key) { - try (Stream entries = Files.walk(keyPath(key))) { - entries.sorted(Comparator.reverseOrder()).map(Path::toFile).forEach(File::delete); - } catch (IOException e) { - // ignore + private void delete(String key) { + synchronized (this) { + try (Stream entries = Files.walk(keyPath(key))) { + entries.sorted(Comparator.reverseOrder()).map(Path::toFile).forEach(File::delete); + } catch (IOException e) { + // ignore + } } } From f409cbeb69b83319da93de93e5be6b6fb6632952 Mon Sep 17 00:00:00 2001 From: "p.zahnen" Date: Tue, 6 Jan 2026 12:10:27 +0100 Subject: [PATCH 2/3] refactor synchronization in cache drivers --- .../de/ii/xtraplatform/cache/app/CacheDriverMem.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/xtraplatform-cache/src/main/java/de/ii/xtraplatform/cache/app/CacheDriverMem.java b/xtraplatform-cache/src/main/java/de/ii/xtraplatform/cache/app/CacheDriverMem.java index c8b604dc..0ca9eb9d 100644 --- a/xtraplatform-cache/src/main/java/de/ii/xtraplatform/cache/app/CacheDriverMem.java +++ b/xtraplatform-cache/src/main/java/de/ii/xtraplatform/cache/app/CacheDriverMem.java @@ -101,12 +101,16 @@ public void del(String key) { delete(key); } - private synchronized void set(String key, Map entry) { - cache.put(key, entry); + private void set(String key, Map entry) { + synchronized (cache) { + cache.put(key, entry); + } } - private synchronized void delete(String key) { - cache.remove(key); + private void delete(String key) { + synchronized (cache) { + cache.remove(key); + } } private void checkExpired(String key) { From 8fae51c2f164954e455341da25dc3055563f5a81 Mon Sep 17 00:00:00 2001 From: "p.zahnen" Date: Fri, 9 Jan 2026 10:28:36 +0100 Subject: [PATCH 3/3] removed appContext and surpressed unnecessary warnings --- .../main/java/de/ii/xtraplatform/cache/app/CacheDriverFs.java | 1 + .../java/de/ii/xtraplatform/cache/app/CacheDriverMem.java | 1 + .../src/main/java/de/ii/xtraplatform/cache/app/CacheImpl.java | 4 +--- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/xtraplatform-cache/src/main/java/de/ii/xtraplatform/cache/app/CacheDriverFs.java b/xtraplatform-cache/src/main/java/de/ii/xtraplatform/cache/app/CacheDriverFs.java index 6b018026..361e8a1c 100644 --- a/xtraplatform-cache/src/main/java/de/ii/xtraplatform/cache/app/CacheDriverFs.java +++ b/xtraplatform-cache/src/main/java/de/ii/xtraplatform/cache/app/CacheDriverFs.java @@ -32,6 +32,7 @@ @Singleton @AutoBind +@SuppressWarnings("PMD.TooManyMethods") public class CacheDriverFs implements CacheDriver { private static final Logger LOGGER = LoggerFactory.getLogger(CacheDriverFs.class); diff --git a/xtraplatform-cache/src/main/java/de/ii/xtraplatform/cache/app/CacheDriverMem.java b/xtraplatform-cache/src/main/java/de/ii/xtraplatform/cache/app/CacheDriverMem.java index 0ca9eb9d..dcf1934f 100644 --- a/xtraplatform-cache/src/main/java/de/ii/xtraplatform/cache/app/CacheDriverMem.java +++ b/xtraplatform-cache/src/main/java/de/ii/xtraplatform/cache/app/CacheDriverMem.java @@ -22,6 +22,7 @@ @Singleton @AutoBind +@SuppressWarnings("PMD.TooManyMethods") public class CacheDriverMem implements CacheDriver { private static final Logger LOGGER = LoggerFactory.getLogger(CacheDriverMem.class); diff --git a/xtraplatform-cache/src/main/java/de/ii/xtraplatform/cache/app/CacheImpl.java b/xtraplatform-cache/src/main/java/de/ii/xtraplatform/cache/app/CacheImpl.java index 9e9b649c..5ae1fa43 100644 --- a/xtraplatform-cache/src/main/java/de/ii/xtraplatform/cache/app/CacheImpl.java +++ b/xtraplatform-cache/src/main/java/de/ii/xtraplatform/cache/app/CacheImpl.java @@ -9,7 +9,6 @@ import com.github.azahnen.dagger.annotations.AutoBind; import dagger.Lazy; -import de.ii.xtraplatform.base.domain.AppContext; import de.ii.xtraplatform.base.domain.AppLifeCycle; import de.ii.xtraplatform.cache.domain.Cache; import de.ii.xtraplatform.cache.domain.CacheDriver; @@ -33,8 +32,7 @@ public class CacheImpl implements Cache, AppLifeCycle { private CacheDriver driver; @Inject - public CacheImpl(AppContext appContext, Lazy> drivers) { - // TODO appContext.getConfiguration().getCache(); + public CacheImpl(Lazy> drivers) { this.drivers = drivers; }