From 432ce996622c7d1fd6b0255db7cdd7c24acabc1a Mon Sep 17 00:00:00 2001
From: Holger Friedrich <mail@holger-friedrich.de>
Date: Sun, 19 Jan 2025 14:15:05 +0100
Subject: [PATCH] Reduce SAT warnings

Signed-off-by: Holger Friedrich <mail@holger-friedrich.de>
---
 .../handler/CompareConditionHandler.java      | 24 ++++---------------
 .../profiles/TimestampOffsetProfile.java      |  5 ----
 .../internal/events/ThreadedEventHandler.java |  2 +-
 .../internal/common/SafeCallerImplTest.java   |  2 +-
 .../pmd/suppressions.properties               |  7 ++----
 5 files changed, 8 insertions(+), 32 deletions(-)

diff --git a/bundles/org.openhab.core.automation/src/main/java/org/openhab/core/automation/internal/module/handler/CompareConditionHandler.java b/bundles/org.openhab.core.automation/src/main/java/org/openhab/core/automation/internal/module/handler/CompareConditionHandler.java
index 5de6b1fd0a1..0fbd83a0f84 100644
--- a/bundles/org.openhab.core.automation/src/main/java/org/openhab/core/automation/internal/module/handler/CompareConditionHandler.java
+++ b/bundles/org.openhab.core.automation/src/main/java/org/openhab/core/automation/internal/module/handler/CompareConditionHandler.java
@@ -89,38 +89,22 @@ public boolean isSatisfied(Map<String, @Nullable Object> context) {
                     case "GT":
                     case ">":
                         // Greater
-                        if (toCompare == null) {
-                            return false;
-                        } else {
-                            return compare(toCompare, rightValue) > 0;
-                        }
+                        return (toCompare != null) && (compare(toCompare, rightValue) > 0);
                     case "gte":
                     case "GTE":
                     case ">=":
                     case "=>":
                         // Greater or equal
-                        if (toCompare == null) {
-                            return false;
-                        } else {
-                            return compare(toCompare, rightValue) >= 0;
-                        }
+                        return (toCompare != null) && (compare(toCompare, rightValue) >= 0);
                     case "lt":
                     case "LT":
                     case "<":
-                        if (toCompare == null) {
-                            return false;
-                        } else {
-                            return compare(toCompare, rightValue) < 0;
-                        }
+                        return (toCompare != null) && (compare(toCompare, rightValue) < 0);
                     case "lte":
                     case "LTE":
                     case "<=":
                     case "=<":
-                        if (toCompare == null) {
-                            return false;
-                        } else {
-                            return compare(toCompare, rightValue) <= 0;
-                        }
+                        return (toCompare != null) && (compare(toCompare, rightValue) <= 0);
                     case "matches":
                         // Matcher...
                         if (toCompare instanceof String string1 && rightValue instanceof String string2) {
diff --git a/bundles/org.openhab.core.thing/src/main/java/org/openhab/core/thing/internal/profiles/TimestampOffsetProfile.java b/bundles/org.openhab.core.thing/src/main/java/org/openhab/core/thing/internal/profiles/TimestampOffsetProfile.java
index a69d677eb54..db521ff174c 100644
--- a/bundles/org.openhab.core.thing/src/main/java/org/openhab/core/thing/internal/profiles/TimestampOffsetProfile.java
+++ b/bundles/org.openhab.core.thing/src/main/java/org/openhab/core/thing/internal/profiles/TimestampOffsetProfile.java
@@ -16,7 +16,6 @@
 import java.time.Instant;
 
 import org.eclipse.jdt.annotation.NonNullByDefault;
-import org.eclipse.jdt.annotation.Nullable;
 import org.openhab.core.library.types.DateTimeType;
 import org.openhab.core.thing.profiles.ProfileCallback;
 import org.openhab.core.thing.profiles.ProfileContext;
@@ -63,10 +62,6 @@ public TimestampOffsetProfile(ProfileCallback callback, ProfileContext context)
         }
     }
 
-    private @Nullable String toStringOrNull(@Nullable Object value) {
-        return value == null ? null : value.toString();
-    }
-
     @Override
     public ProfileTypeUID getProfileTypeUID() {
         return SystemProfiles.TIMESTAMP_OFFSET;
diff --git a/bundles/org.openhab.core/src/main/java/org/openhab/core/internal/events/ThreadedEventHandler.java b/bundles/org.openhab.core/src/main/java/org/openhab/core/internal/events/ThreadedEventHandler.java
index 480b411a364..32e050ddd46 100644
--- a/bundles/org.openhab.core/src/main/java/org/openhab/core/internal/events/ThreadedEventHandler.java
+++ b/bundles/org.openhab.core/src/main/java/org/openhab/core/internal/events/ThreadedEventHandler.java
@@ -60,7 +60,7 @@ public class ThreadedEventHandler implements Closeable {
                         logger.trace("inspect event: {}", event);
                         if (event == null) {
                             logger.debug("Hey, you have really very few events.");
-                        } else if (event.equals(notifyEvent)) {
+                        } else if (event.equals(notifyEvent)) { // NOPMD
                             // received an internal notification
                         } else {
                             worker.handleEvent(event);
diff --git a/bundles/org.openhab.core/src/test/java/org/openhab/core/internal/common/SafeCallerImplTest.java b/bundles/org.openhab.core/src/test/java/org/openhab/core/internal/common/SafeCallerImplTest.java
index 4a5386ebdc4..662a3315c59 100644
--- a/bundles/org.openhab.core/src/test/java/org/openhab/core/internal/common/SafeCallerImplTest.java
+++ b/bundles/org.openhab.core/src/test/java/org/openhab/core/internal/common/SafeCallerImplTest.java
@@ -591,7 +591,7 @@ public AssertingThread(Runnable runnable) {
         @Override
         public void run() {
             try {
-                super.run();
+                super.run(); // NOPMD
             } catch (AssertionError e) {
                 AssertingThread.this.assertionError = e;
             } catch (RuntimeException e) {
diff --git a/tools/static-code-analysis/pmd/suppressions.properties b/tools/static-code-analysis/pmd/suppressions.properties
index cba6665f994..f7ca0bfbb9a 100644
--- a/tools/static-code-analysis/pmd/suppressions.properties
+++ b/tools/static-code-analysis/pmd/suppressions.properties
@@ -1,13 +1,9 @@
 org.openhab.core.common.registry.AbstractRegistry=AvoidCatchingThrowable
 org.openhab.core.internal.common.SafeCallManagerImpl=CompareObjectsWithEquals
-org.openhab.core.internal.events.ThreadedEventHandler=CompareObjectsWithEquals
-org.openhab.core.internal.events.ThreadedEventHandler=EmptyIfStmt
-org.openhab.core.thing.internal.ChannelItemProvider=CompareObjectsWithEquals
-org.openhab.core.thing.internal.ThingManager=CompareObjectsWithEquals
 org.openhab.core.io.console.karaf.internal.OSGiConsole=SystemPrintln
 org.openhab.core.io.console.rfc147.internal.CommandWrapper=SystemPrintln
 org.openhab.core.io.console.rfc147.internal.OSGiConsole=SystemPrintln
-org.openhab.core.io.net.http.internal.SecureHttpClientFactory=AvoidThrowingRawExceptionTypes
+org.openhab.core.io.transport.modbus.internal.ModbusManagerImpl=MoreThanOneLogger
 org.openhab.core.model.core.internal.ModelRepositoryImpl=AvoidCatchingNPE
 org.openhab.core.model.script.interpreter.ScriptInterpreter=AvoidCatchingThrowable
 org.openhab.core.ui.internal.proxy.ProxyServletService=AvoidCatchingThrowable
@@ -16,3 +12,4 @@ org.openhab.core.automation.internal.RuleRegistryImpl=CompareObjectsWithEquals
 org.openhab.core.automation.internal.provider.AutomationResourceBundlesEventQueue=AvoidCatchingThrowable
 org.openhab.core.io.console.karaf.internal.InstallServiceCommand=SystemPrintln
 org.openhab.core.common.PoolBasedSequentialScheduledExecutorService=CompareObjectsWithEquals
+org.openhab.core.tools.UpgradeTool=SystemPrintln