diff --git a/bundles/org.openhab.core.audio/src/main/java/org/openhab/core/audio/internal/AudioServlet.java b/bundles/org.openhab.core.audio/src/main/java/org/openhab/core/audio/internal/AudioServlet.java
index 2201c017c5..42121a48de 100644
--- a/bundles/org.openhab.core.audio/src/main/java/org/openhab/core/audio/internal/AudioServlet.java
+++ b/bundles/org.openhab.core.audio/src/main/java/org/openhab/core/audio/internal/AudioServlet.java
@@ -93,11 +93,11 @@ public class AudioServlet extends OpenHABServlet implements AudioHTTPServer {
 
         // try to set the content-type, if possible
         final String mimeType;
-        if (stream.getFormat().getCodec() == AudioFormat.CODEC_MP3) {
+        if (AudioFormat.CODEC_MP3.equals(stream.getFormat().getCodec())) {
             mimeType = "audio/mpeg";
-        } else if (stream.getFormat().getContainer() == AudioFormat.CONTAINER_WAVE) {
+        } else if (AudioFormat.CONTAINER_WAVE.equals(stream.getFormat().getContainer())) {
             mimeType = "audio/wav";
-        } else if (stream.getFormat().getContainer() == AudioFormat.CONTAINER_OGG) {
+        } else if (AudioFormat.CONTAINER_OGG.equals(stream.getFormat().getContainer())) {
             mimeType = "audio/ogg";
         } else {
             mimeType = null;
diff --git a/bundles/org.openhab.core.audio/src/main/java/org/openhab/core/audio/internal/javasound/JavaSoundAudioSink.java b/bundles/org.openhab.core.audio/src/main/java/org/openhab/core/audio/internal/javasound/JavaSoundAudioSink.java
index 6e69708c3d..a2bede2001 100644
--- a/bundles/org.openhab.core.audio/src/main/java/org/openhab/core/audio/internal/javasound/JavaSoundAudioSink.java
+++ b/bundles/org.openhab.core.audio/src/main/java/org/openhab/core/audio/internal/javasound/JavaSoundAudioSink.java
@@ -81,7 +81,7 @@ public class JavaSoundAudioSink implements AudioSink {
     @Override
     public synchronized void process(final @Nullable AudioStream audioStream)
             throws UnsupportedAudioFormatException, UnsupportedAudioStreamException {
-        if (audioStream != null && audioStream.getFormat().getCodec() != AudioFormat.CODEC_MP3) {
+        if (audioStream != null && !AudioFormat.CODEC_MP3.equals(audioStream.getFormat().getCodec())) {
             AudioPlayer audioPlayer = new AudioPlayer(audioStream);
             audioPlayer.start();
             try {
diff --git a/bundles/org.openhab.core.auth.oauth2client/src/main/java/org/openhab/core/auth/oauth2client/internal/OAuthStoreHandlerImpl.java b/bundles/org.openhab.core.auth.oauth2client/src/main/java/org/openhab/core/auth/oauth2client/internal/OAuthStoreHandlerImpl.java
index f7fda06b66..bb6f577ca2 100644
--- a/bundles/org.openhab.core.auth.oauth2client/src/main/java/org/openhab/core/auth/oauth2client/internal/OAuthStoreHandlerImpl.java
+++ b/bundles/org.openhab.core.auth.oauth2client/src/main/java/org/openhab/core/auth/oauth2client/internal/OAuthStoreHandlerImpl.java
@@ -210,6 +210,7 @@ public class OAuthStoreHandlerImpl implements OAuthStoreHandler {
         allAvailableStorageCiphers.add(storageCipher);
     }
 
+    @SuppressWarnings("PMD.CompareObjectsWithEquals")
     protected synchronized void unsetStorageCipher(StorageCipher storageCipher) {
         allAvailableStorageCiphers.remove(storageCipher);
         if (this.storageCipher.isPresent() && this.storageCipher.get() == storageCipher) {
diff --git a/bundles/org.openhab.core.automation/src/main/java/org/openhab/core/automation/internal/RuleEngineImpl.java b/bundles/org.openhab.core.automation/src/main/java/org/openhab/core/automation/internal/RuleEngineImpl.java
index 5e100d96e4..e550aa1f97 100644
--- a/bundles/org.openhab.core.automation/src/main/java/org/openhab/core/automation/internal/RuleEngineImpl.java
+++ b/bundles/org.openhab.core.automation/src/main/java/org/openhab/core/automation/internal/RuleEngineImpl.java
@@ -463,7 +463,7 @@ public class RuleEngineImpl implements RuleManager, RegistryChangeListener<Modul
             unregister(oldRule);
         }
 
-        if (isEnabled(rUID) == Boolean.TRUE) {
+        if (Boolean.TRUE.equals(isEnabled(rUID))) {
             setRule(rule);
         }
     }
@@ -1452,7 +1452,7 @@ public class RuleEngineImpl implements RuleManager, RegistryChangeListener<Modul
 
     private boolean mustTrigger(Rule r) {
         for (Trigger t : r.getTriggers()) {
-            if (t.getTypeUID() == SystemTriggerHandler.STARTLEVEL_MODULE_TYPE_ID) {
+            if (SystemTriggerHandler.STARTLEVEL_MODULE_TYPE_ID.equals(t.getTypeUID())) {
                 Object slObj = t.getConfiguration().get(SystemTriggerHandler.CFG_STARTLEVEL);
                 try {
                     Integer sl = Integer.valueOf(slObj.toString());
diff --git a/bundles/org.openhab.core.automation/src/main/java/org/openhab/core/automation/internal/commands/AutomationCommandRemove.java b/bundles/org.openhab.core.automation/src/main/java/org/openhab/core/automation/internal/commands/AutomationCommandRemove.java
index f6edab9305..9a56258da1 100644
--- a/bundles/org.openhab.core.automation/src/main/java/org/openhab/core/automation/internal/commands/AutomationCommandRemove.java
+++ b/bundles/org.openhab.core.automation/src/main/java/org/openhab/core/automation/internal/commands/AutomationCommandRemove.java
@@ -71,9 +71,9 @@ public class AutomationCommandRemove extends AutomationCommand {
             case AutomationCommands.TEMPLATE_PROVIDER:
                 return autoCommands.remove(AutomationCommands.TEMPLATE_PROVIDER, url);
             case AutomationCommands.RULE_PROVIDER:
-                if (command == AutomationCommands.REMOVE_RULE) {
+                if (AutomationCommands.REMOVE_RULE.equals(command)) {
                     return autoCommands.removeRule(id);
-                } else if (command == AutomationCommands.REMOVE_RULES) {
+                } else if (AutomationCommands.REMOVE_RULES.equals(command)) {
                     return autoCommands.removeRules(id);
                 }
         }
diff --git a/bundles/org.openhab.core.config.discovery/src/main/java/org/openhab/core/config/discovery/AbstractDiscoveryService.java b/bundles/org.openhab.core.config.discovery/src/main/java/org/openhab/core/config/discovery/AbstractDiscoveryService.java
index e5a28c8d76..ed527c16e9 100644
--- a/bundles/org.openhab.core.config.discovery/src/main/java/org/openhab/core/config/discovery/AbstractDiscoveryService.java
+++ b/bundles/org.openhab.core.config.discovery/src/main/java/org/openhab/core/config/discovery/AbstractDiscoveryService.java
@@ -447,7 +447,7 @@ public abstract class AbstractDiscoveryService implements DiscoveryService {
         if (autoDiscoveryEnabled instanceof String) {
             return Boolean.valueOf((String) autoDiscoveryEnabled);
         } else {
-            return autoDiscoveryEnabled == Boolean.TRUE;
+            return Boolean.TRUE.equals(autoDiscoveryEnabled);
         }
     }
 
diff --git a/bundles/org.openhab.core.io.console.karaf/src/main/java/org/openhab/core/io/console/karaf/internal/ConsoleSupportKaraf.java b/bundles/org.openhab.core.io.console.karaf/src/main/java/org/openhab/core/io/console/karaf/internal/ConsoleSupportKaraf.java
index c757ce2eab..47ed848318 100644
--- a/bundles/org.openhab.core.io.console.karaf/src/main/java/org/openhab/core/io/console/karaf/internal/ConsoleSupportKaraf.java
+++ b/bundles/org.openhab.core.io.console.karaf/src/main/java/org/openhab/core/io/console/karaf/internal/ConsoleSupportKaraf.java
@@ -56,6 +56,7 @@ public class ConsoleSupportKaraf {
         registerCommands();
     }
 
+    @SuppressWarnings("PMD.CompareObjectsWithEquals")
     public void unsetSessionFactory(SessionFactory sessionFactory) {
         if (this.sessionFactory == sessionFactory) {
             unregisterCommands();
diff --git a/bundles/org.openhab.core.io.rest.core/src/main/java/org/openhab/core/io/rest/core/internal/addons/AddonResource.java b/bundles/org.openhab.core.io.rest.core/src/main/java/org/openhab/core/io/rest/core/internal/addons/AddonResource.java
index 13c5114aca..f50da039f0 100644
--- a/bundles/org.openhab.core.io.rest.core/src/main/java/org/openhab/core/io/rest/core/internal/addons/AddonResource.java
+++ b/bundles/org.openhab.core.io.rest.core/src/main/java/org/openhab/core/io/rest/core/internal/addons/AddonResource.java
@@ -133,7 +133,7 @@ public class AddonResource implements RESTResource {
             @QueryParam("serviceId") @Parameter(description = "service ID") @Nullable String serviceId) {
         logger.debug("Received HTTP GET request at '{}'", uriInfo.getPath());
         Locale locale = localeService.getLocale(language);
-        if (serviceId == "all") {
+        if ("all".equals(serviceId)) {
             return Response.ok(new Stream2JSONInputStream(getAllAddons(locale))).build();
         } else {
             AddonService addonService = (serviceId != null) ? getServiceById(serviceId) : getDefaultService();
diff --git a/bundles/org.openhab.core.io.transport.modbus/src/main/java/org/openhab/core/io/transport/modbus/BitArray.java b/bundles/org.openhab.core.io.transport.modbus/src/main/java/org/openhab/core/io/transport/modbus/BitArray.java
index 6b7516a744..84239f730d 100644
--- a/bundles/org.openhab.core.io.transport.modbus/src/main/java/org/openhab/core/io/transport/modbus/BitArray.java
+++ b/bundles/org.openhab.core.io.transport.modbus/src/main/java/org/openhab/core/io/transport/modbus/BitArray.java
@@ -53,6 +53,7 @@ public class BitArray implements Iterable<Boolean> {
         return bitSet;
     }
 
+    @SuppressWarnings("PMD.CompareObjectsWithEquals")
     private boolean sizeAndValuesEquals(@Nullable Object obj) {
         if (obj == null) {
             return false;
diff --git a/bundles/org.openhab.core.model.lsp/src/main/java/org/openhab/core/model/lsp/internal/RegistryProvider.java b/bundles/org.openhab.core.model.lsp/src/main/java/org/openhab/core/model/lsp/internal/RegistryProvider.java
index e061b2678d..0c6a616536 100644
--- a/bundles/org.openhab.core.model.lsp/src/main/java/org/openhab/core/model/lsp/internal/RegistryProvider.java
+++ b/bundles/org.openhab.core.model.lsp/src/main/java/org/openhab/core/model/lsp/internal/RegistryProvider.java
@@ -12,6 +12,8 @@
  */
 package org.openhab.core.model.lsp.internal;
 
+import java.util.Objects;
+
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.emf.ecore.xmi.impl.EcoreResourceFactoryImpl;
@@ -99,7 +101,7 @@ public class RegistryProvider implements Provider<IResourceServiceProvider.Regis
         FileExtensionProvider extensionProvider = injector.getInstance(FileExtensionProvider.class);
         for (String ext : extensionProvider.getFileExtensions()) {
             if (registry.getExtensionToFactoryMap().containsKey(ext)) {
-                if (extensionProvider.getPrimaryFileExtension() == ext) {
+                if (Objects.equals(extensionProvider.getPrimaryFileExtension(), ext)) {
                     registry.getExtensionToFactoryMap().put(ext, resourceServiceProvider);
                 }
             } else {
diff --git a/bundles/org.openhab.core.thing/src/main/java/org/openhab/core/thing/binding/BaseThingHandler.java b/bundles/org.openhab.core.thing/src/main/java/org/openhab/core/thing/binding/BaseThingHandler.java
index e96a86272e..6a40e05bed 100644
--- a/bundles/org.openhab.core.thing/src/main/java/org/openhab/core/thing/binding/BaseThingHandler.java
+++ b/bundles/org.openhab.core.thing/src/main/java/org/openhab/core/thing/binding/BaseThingHandler.java
@@ -386,6 +386,7 @@ public abstract class BaseThingHandler implements ThingHandler {
      *
      * @param thing thing, that was updated and should be persisted
      */
+    @SuppressWarnings("PMD.CompareObjectsWithEquals")
     protected void updateThing(Thing thing) {
         if (thing == this.thing) {
             throw new IllegalArgumentException(
diff --git a/bundles/org.openhab.core.thing/src/main/java/org/openhab/core/thing/internal/ThingManagerImpl.java b/bundles/org.openhab.core.thing/src/main/java/org/openhab/core/thing/internal/ThingManagerImpl.java
index 9c02ed7e08..acc4b3c2b2 100644
--- a/bundles/org.openhab.core.thing/src/main/java/org/openhab/core/thing/internal/ThingManagerImpl.java
+++ b/bundles/org.openhab.core.thing/src/main/java/org/openhab/core/thing/internal/ThingManagerImpl.java
@@ -551,6 +551,7 @@ public class ThingManagerImpl
     }
 
     @Override
+    @SuppressWarnings("PMD.CompareObjectsWithEquals")
     public void thingUpdated(final Thing thing, ThingTrackerEvent thingTrackerEvent) {
         ThingUID thingUID = thing.getUID();
         if (thingUpdatedLock.contains(thingUID)) {
@@ -703,6 +704,7 @@ public class ThingManagerImpl
         }
     }
 
+    @SuppressWarnings("PMD.CompareObjectsWithEquals")
     private void initializeHandler(Thing thing) {
         if (isDisabledByStorage(thing.getUID())) {
             setThingStatus(thing, buildStatusInfo(ThingStatus.UNINITIALIZED, ThingStatusDetail.DISABLED));
@@ -834,6 +836,7 @@ public class ThingManagerImpl
         return thing.getStatus() == ThingStatus.INITIALIZING;
     }
 
+    @SuppressWarnings("PMD.CompareObjectsWithEquals")
     private boolean isHandlerRegistered(Thing thing) {
         ThingHandler handler = thingHandlers.get(thing.getUID());
         return handler != null && handler == thing.getHandler();
diff --git a/bundles/org.openhab.core.thing/src/main/java/org/openhab/core/thing/internal/profiles/SystemHysteresisStateProfile.java b/bundles/org.openhab.core.thing/src/main/java/org/openhab/core/thing/internal/profiles/SystemHysteresisStateProfile.java
index b0acffd83d..2a83a9d1ad 100644
--- a/bundles/org.openhab.core.thing/src/main/java/org/openhab/core/thing/internal/profiles/SystemHysteresisStateProfile.java
+++ b/bundles/org.openhab.core.thing/src/main/java/org/openhab/core/thing/internal/profiles/SystemHysteresisStateProfile.java
@@ -134,7 +134,7 @@ public class SystemHysteresisStateProfile implements StateProfile {
             final QuantityType<?> qtState = (QuantityType<?>) value;
             final QuantityType<?> finalLower;
             final QuantityType<?> finalUpper;
-            if (lower.getUnit() == Units.ONE && upper.getUnit() == Units.ONE) {
+            if (Units.ONE.equals(lower.getUnit()) && Units.ONE.equals(upper.getUnit())) {
                 // allow bounds without unit -> implicitly assume its the same as the one from the state, but warn
                 // the user
                 finalLower = new QuantityType<>(lower.toBigDecimal(), qtState.getUnit());
diff --git a/bundles/org.openhab.core.thing/src/main/java/org/openhab/core/thing/internal/profiles/SystemOffsetProfile.java b/bundles/org.openhab.core.thing/src/main/java/org/openhab/core/thing/internal/profiles/SystemOffsetProfile.java
index 903b4e49d3..c00feac1b4 100644
--- a/bundles/org.openhab.core.thing/src/main/java/org/openhab/core/thing/internal/profiles/SystemOffsetProfile.java
+++ b/bundles/org.openhab.core.thing/src/main/java/org/openhab/core/thing/internal/profiles/SystemOffsetProfile.java
@@ -115,7 +115,7 @@ public class SystemOffsetProfile implements StateProfile {
         if (state instanceof QuantityType) {
             QuantityType qtState = (QuantityType) state;
             try {
-                if (finalOffset.getUnit() == Units.ONE) {
+                if (Units.ONE.equals(finalOffset.getUnit())) {
                     // allow offsets without unit -> implicitly assume its the same as the one from the state, but warn
                     // the user
                     finalOffset = new QuantityType<>(finalOffset.toBigDecimal(), qtState.getUnit());
@@ -135,7 +135,7 @@ public class SystemOffsetProfile implements StateProfile {
             } catch (UnconvertibleException e) {
                 logger.warn("Cannot apply offset '{}' to state '{}' because types do not match.", finalOffset, qtState);
             }
-        } else if (state instanceof DecimalType && finalOffset.getUnit() == Units.ONE) {
+        } else if (state instanceof DecimalType && Units.ONE.equals(finalOffset.getUnit())) {
             DecimalType decState = (DecimalType) state;
             result = new DecimalType(decState.toBigDecimal().add(finalOffset.toBigDecimal()));
         } else {
diff --git a/bundles/org.openhab.core.thing/src/main/java/org/openhab/core/thing/internal/profiles/SystemRangeStateProfile.java b/bundles/org.openhab.core.thing/src/main/java/org/openhab/core/thing/internal/profiles/SystemRangeStateProfile.java
index 8a4ae5399f..3d9dc178c6 100644
--- a/bundles/org.openhab.core.thing/src/main/java/org/openhab/core/thing/internal/profiles/SystemRangeStateProfile.java
+++ b/bundles/org.openhab.core.thing/src/main/java/org/openhab/core/thing/internal/profiles/SystemRangeStateProfile.java
@@ -142,7 +142,7 @@ public class SystemRangeStateProfile implements StateProfile {
             final QuantityType<?> qtState = (QuantityType<?>) value;
             final QuantityType<?> finalLower;
             final QuantityType<?> finalUpper;
-            if (lower.getUnit() == Units.ONE && upper.getUnit() == Units.ONE) {
+            if (Units.ONE.equals(lower.getUnit()) && Units.ONE.equals(upper.getUnit())) {
                 // allow bounds without unit -> implicitly assume its the same as the one from the state, but warn
                 // the user
                 finalLower = new QuantityType<>(lower.toBigDecimal(), qtState.getUnit());
diff --git a/bundles/org.openhab.core.voice/src/main/java/org/openhab/core/voice/text/AbstractRuleBasedInterpreter.java b/bundles/org.openhab.core.voice/src/main/java/org/openhab/core/voice/text/AbstractRuleBasedInterpreter.java
index b0f922bb5d..357649d5a8 100644
--- a/bundles/org.openhab.core.voice/src/main/java/org/openhab/core/voice/text/AbstractRuleBasedInterpreter.java
+++ b/bundles/org.openhab.core.voice/src/main/java/org/openhab/core/voice/text/AbstractRuleBasedInterpreter.java
@@ -112,7 +112,7 @@ public abstract class AbstractRuleBasedInterpreter implements HumanLanguageInter
             if ((result = rule.execute(language, tokens)).isSuccess()) {
                 return result.getResponse();
             } else {
-                if (result != InterpretationResult.SYNTAX_ERROR) {
+                if (!InterpretationResult.SYNTAX_ERROR.equals(result)) {
                     lastResult = result;
                 }
             }
@@ -855,6 +855,7 @@ public abstract class AbstractRuleBasedInterpreter implements HumanLanguageInter
         }
     }
 
+    @SuppressWarnings("PMD.CompareObjectsWithEquals")
     public void unsetItemRegistry(ItemRegistry itemRegistry) {
         if (itemRegistry == this.itemRegistry) {
             this.itemRegistry.removeRegistryChangeListener(registryChangeListener);
@@ -868,6 +869,7 @@ public abstract class AbstractRuleBasedInterpreter implements HumanLanguageInter
         }
     }
 
+    @SuppressWarnings("PMD.CompareObjectsWithEquals")
     public void unsetEventPublisher(EventPublisher eventPublisher) {
         if (eventPublisher == this.eventPublisher) {
             this.eventPublisher = null;
diff --git a/bundles/org.openhab.core/src/main/java/org/openhab/core/internal/types/StateDescriptionFragmentImpl.java b/bundles/org.openhab.core/src/main/java/org/openhab/core/internal/types/StateDescriptionFragmentImpl.java
index 9044015789..2dac042488 100644
--- a/bundles/org.openhab.core/src/main/java/org/openhab/core/internal/types/StateDescriptionFragmentImpl.java
+++ b/bundles/org.openhab.core/src/main/java/org/openhab/core/internal/types/StateDescriptionFragmentImpl.java
@@ -232,7 +232,7 @@ public class StateDescriptionFragmentImpl implements StateDescriptionFragment {
                 && (maximum != null ? maximum.equals(other.maximum) : other.maximum == null)
                 && (step != null ? step.equals(other.step) : other.step == null)
                 && (pattern != null ? pattern.equals(other.pattern) : other.pattern == null)
-                && readOnly == other.readOnly //
+                && (readOnly != null ? readOnly.equals(other.readOnly) : other.readOnly == null)
                 && (options != null ? options.equals(other.options) : other.options == null);
     }
 
diff --git a/bundles/org.openhab.core/src/main/java/org/openhab/core/library/types/QuantityType.java b/bundles/org.openhab.core/src/main/java/org/openhab/core/library/types/QuantityType.java
index 1ffb9d1be7..c3322483d2 100644
--- a/bundles/org.openhab.core/src/main/java/org/openhab/core/library/types/QuantityType.java
+++ b/bundles/org.openhab.core/src/main/java/org/openhab/core/library/types/QuantityType.java
@@ -363,7 +363,7 @@ public class QuantityType<T extends Quantity<T>> extends Number
 
     @Override
     public String toFullString() {
-        if (quantity.getUnit() == AbstractUnit.ONE) {
+        if (AbstractUnit.ONE.equals(quantity.getUnit())) {
             return quantity.getValue().toString();
         } else {
             return quantity.toString();
diff --git a/bundles/org.openhab.core/src/main/java/org/openhab/core/service/WatchQueueReader.java b/bundles/org.openhab.core/src/main/java/org/openhab/core/service/WatchQueueReader.java
index 5614d5c1d2..e660272735 100644
--- a/bundles/org.openhab.core/src/main/java/org/openhab/core/service/WatchQueueReader.java
+++ b/bundles/org.openhab.core/src/main/java/org/openhab/core/service/WatchQueueReader.java
@@ -165,6 +165,7 @@ public class WatchQueueReader implements Runnable {
         }
     }
 
+    @SuppressWarnings("PMD.CompareObjectsWithEquals")
     public synchronized void stopWatchService(AbstractWatchService service) {
         if (watchService != null) {
             List<WatchKey> keys = new LinkedList<>();
diff --git a/bundles/org.openhab.core/src/test/java/org/openhab/core/library/types/QuantityTypeTest.java b/bundles/org.openhab.core/src/test/java/org/openhab/core/library/types/QuantityTypeTest.java
index c6ea4f7d24..1b40a232b0 100644
--- a/bundles/org.openhab.core/src/test/java/org/openhab/core/library/types/QuantityTypeTest.java
+++ b/bundles/org.openhab.core/src/test/java/org/openhab/core/library/types/QuantityTypeTest.java
@@ -71,9 +71,9 @@ public class QuantityTypeTest {
         new QuantityType<>("57%");
 
         QuantityType<Dimensionless> dt0 = new QuantityType<>("12");
-        assertTrue(dt0.getUnit().getDimension() == UnitDimension.NONE);
+        assertEquals(UnitDimension.NONE, dt0.getUnit().getDimension());
         dt0 = new QuantityType<>("2rad");
-        assertTrue(dt0.getUnit().getDimension() == UnitDimension.NONE);
+        assertEquals(UnitDimension.NONE, dt0.getUnit().getDimension());
     }
 
     @ParameterizedTest
diff --git a/itests/org.openhab.core.auth.oauth2client.tests/src/main/java/org/openhab/core/auth/oauth2client/test/internal/AuthorizationCodeTestAgent.java b/itests/org.openhab.core.auth.oauth2client.tests/src/main/java/org/openhab/core/auth/oauth2client/test/internal/AuthorizationCodeTestAgent.java
index 9954729caf..04c470b704 100644
--- a/itests/org.openhab.core.auth.oauth2client.tests/src/main/java/org/openhab/core/auth/oauth2client/test/internal/AuthorizationCodeTestAgent.java
+++ b/itests/org.openhab.core.auth.oauth2client.tests/src/main/java/org/openhab/core/auth/oauth2client/test/internal/AuthorizationCodeTestAgent.java
@@ -53,6 +53,7 @@ public class AuthorizationCodeTestAgent extends AbstractTestAgent implements Tes
         super.oauthFactory = oauthFactory;
     }
 
+    @SuppressWarnings("PMD.CompareObjectsWithEquals")
     public void unsetOauthFactory(OAuthFactory oauthFactory) {
         if (super.oauthFactory == oauthFactory) {
             if (handle != null) {
diff --git a/itests/org.openhab.core.auth.oauth2client.tests/src/main/java/org/openhab/core/auth/oauth2client/test/internal/ResourceOwnerTestAgent.java b/itests/org.openhab.core.auth.oauth2client.tests/src/main/java/org/openhab/core/auth/oauth2client/test/internal/ResourceOwnerTestAgent.java
index 12bff253b7..298dbff71f 100644
--- a/itests/org.openhab.core.auth.oauth2client.tests/src/main/java/org/openhab/core/auth/oauth2client/test/internal/ResourceOwnerTestAgent.java
+++ b/itests/org.openhab.core.auth.oauth2client.tests/src/main/java/org/openhab/core/auth/oauth2client/test/internal/ResourceOwnerTestAgent.java
@@ -53,6 +53,7 @@ public class ResourceOwnerTestAgent extends AbstractTestAgent implements TestAge
         this.oauthFactory = oauthFactory;
     }
 
+    @SuppressWarnings("PMD.CompareObjectsWithEquals")
     public void unsetOauthFactory(OAuthFactory oauthFactory) {
         if (super.oauthFactory == oauthFactory) {
             if (handle != null) {
diff --git a/itests/org.openhab.core.tests/src/main/java/org/openhab/core/items/ItemRegistryImplTest.java b/itests/org.openhab.core.tests/src/main/java/org/openhab/core/items/ItemRegistryImplTest.java
index 0de52d0004..d3651c11f4 100644
--- a/itests/org.openhab.core.tests/src/main/java/org/openhab/core/items/ItemRegistryImplTest.java
+++ b/itests/org.openhab.core.tests/src/main/java/org/openhab/core/items/ItemRegistryImplTest.java
@@ -342,6 +342,7 @@ public class ItemRegistryImplTest extends JavaTest {
     }
 
     @Test
+    @SuppressWarnings("PMD.CompareObjectsWithEquals")
     public void assertItemIsBeingDisposedOnRemove() {
         GenericItem item = spy(new SwitchItem("Item1"));
         itemProvider.add(item);