From 7a744467032f3a07a87b3a0e8a21f259ef23669f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Dinis=20Ferreira?= Date: Fri, 16 Oct 2026 16:23:39 +0200 Subject: [PATCH] fix(caching): mark MultiCacheStatistics' counter warning as a false positive SpotBugs 4.10.5 reports AT_NONATOMIC_OPERATIONS_ON_SHARED_VARIABLE for counter++ in CacheManager.MultiCacheStatistics.aggregate. Every instance is created locally, filled while holding the caches' lock and read by the same thread afterwards, so no other thread sees it. Suppress the warning the same way as in ParallelResourceLoader, so that the SpotBugs bump (#1572) builds. Bump the bundle to 17.3.2 and both features to 19.3.1, since 17.3.1 and 19.3.0 were released. Co-Authored-By: Claude Opus 5.5 --- com.avaloq.tools.ddk.feature/feature.xml | 2 +- com.avaloq.tools.ddk.feature/pom.xml | 2 +- com.avaloq.tools.ddk.runtime.feature/feature.xml | 2 +- com.avaloq.tools.ddk.runtime.feature/pom.xml | 2 +- com.avaloq.tools.ddk/META-INF/MANIFEST.MF | 2 +- com.avaloq.tools.ddk/pom.xml | 2 +- .../src/com/avaloq/tools/ddk/caching/CacheManager.java | 2 ++ ddk-repository/category.xml | 4 ++-- 8 files changed, 10 insertions(+), 8 deletions(-) diff --git a/com.avaloq.tools.ddk.feature/feature.xml b/com.avaloq.tools.ddk.feature/feature.xml index 5a404604fa..0afb06d5cc 100644 --- a/com.avaloq.tools.ddk.feature/feature.xml +++ b/com.avaloq.tools.ddk.feature/feature.xml @@ -2,7 +2,7 @@ diff --git a/com.avaloq.tools.ddk.feature/pom.xml b/com.avaloq.tools.ddk.feature/pom.xml index f80e899051..32b83f1f52 100644 --- a/com.avaloq.tools.ddk.feature/pom.xml +++ b/com.avaloq.tools.ddk.feature/pom.xml @@ -7,7 +7,7 @@ 18.0.1-SNAPSHOT ../ddk-parent - 19.3.0-SNAPSHOT + 19.3.1-SNAPSHOT com.avaloq.tools.ddk.feature eclipse-feature diff --git a/com.avaloq.tools.ddk.runtime.feature/feature.xml b/com.avaloq.tools.ddk.runtime.feature/feature.xml index 67a9dcbe22..a0576353ae 100644 --- a/com.avaloq.tools.ddk.runtime.feature/feature.xml +++ b/com.avaloq.tools.ddk.runtime.feature/feature.xml @@ -2,7 +2,7 @@ diff --git a/com.avaloq.tools.ddk.runtime.feature/pom.xml b/com.avaloq.tools.ddk.runtime.feature/pom.xml index a617f90dc6..45f3703c88 100644 --- a/com.avaloq.tools.ddk.runtime.feature/pom.xml +++ b/com.avaloq.tools.ddk.runtime.feature/pom.xml @@ -6,7 +6,7 @@ 18.0.1-SNAPSHOT ../ddk-parent - 19.3.0-SNAPSHOT + 19.3.1-SNAPSHOT com.avaloq.tools.ddk.runtime.feature eclipse-feature diff --git a/com.avaloq.tools.ddk/META-INF/MANIFEST.MF b/com.avaloq.tools.ddk/META-INF/MANIFEST.MF index 99ca4546ce..8b18e510d7 100644 --- a/com.avaloq.tools.ddk/META-INF/MANIFEST.MF +++ b/com.avaloq.tools.ddk/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: com.avaloq.tools.ddk Bundle-SymbolicName: com.avaloq.tools.ddk;singleton:=true -Bundle-Version: 17.3.1.qualifier +Bundle-Version: 17.3.2.qualifier Bundle-Vendor: Avaloq Group AG Bundle-RequiredExecutionEnvironment: JavaSE-21 Bundle-ActivationPolicy: lazy diff --git a/com.avaloq.tools.ddk/pom.xml b/com.avaloq.tools.ddk/pom.xml index 849207cb07..b4d84b8c0c 100644 --- a/com.avaloq.tools.ddk/pom.xml +++ b/com.avaloq.tools.ddk/pom.xml @@ -9,6 +9,6 @@ com.avaloq.tools.ddk com.avaloq.tools.ddk eclipse-plugin - 17.3.1-SNAPSHOT + 17.3.2-SNAPSHOT \ No newline at end of file diff --git a/com.avaloq.tools.ddk/src/com/avaloq/tools/ddk/caching/CacheManager.java b/com.avaloq.tools.ddk/src/com/avaloq/tools/ddk/caching/CacheManager.java index 17ea20e31c..89668f35cc 100644 --- a/com.avaloq.tools.ddk/src/com/avaloq/tools/ddk/caching/CacheManager.java +++ b/com.avaloq.tools.ddk/src/com/avaloq/tools/ddk/caching/CacheManager.java @@ -22,6 +22,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import com.avaloq.tools.ddk.annotations.SuppressFBWarnings; import com.google.common.cache.CacheLoader; import com.google.common.collect.ArrayListMultimap; import com.google.common.collect.Maps; @@ -245,6 +246,7 @@ private final class MultiCacheStatistics extends CacheStatistics { private int counter; @Override + @SuppressFBWarnings("AT_NONATOMIC_OPERATIONS_ON_SHARED_VARIABLE") // instances are local to the thread that fills and reads them void aggregate(final CacheStatistics statistics) { counter++; super.aggregate(statistics); diff --git a/ddk-repository/category.xml b/ddk-repository/category.xml index 1b822422da..80893dad31 100644 --- a/ddk-repository/category.xml +++ b/ddk-repository/category.xml @@ -1,9 +1,9 @@ - + - +