You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by mp...@apache.org on 2025/08/13 08:20:32 UTC

(ignite-3) branch main updated: IGNITE-21632 Upgrade to PMD 7.0 (#6357)

This is an automated email from the ASF dual-hosted git repository.

mpochatkin pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git


The following commit(s) were added to refs/heads/main by this push:
     new 5a331a01034 IGNITE-21632 Upgrade to PMD 7.0 (#6357)
5a331a01034 is described below

commit 5a331a010349790a88695e14c7512c383d6df00b
Author: Ivan Zlenko <24...@users.noreply.github.com>
AuthorDate: Wed Aug 13 13:20:26 2025 +0500

    IGNITE-21632 Upgrade to PMD 7.0 (#6357)
---
 check-rules/pmd-rules.xml                          |  3 +-
 gradle/libs.versions.toml                          |  2 +-
 ...cordAndTableSchemaMismatchExceptionHandler.java | 10 ++---
 .../tests/clusters/FullSampleCluster.java          |  6 +--
 .../tests/containers/Ignite2ClusterContainer.java  |  3 ++
 .../ignite/migrationtools/sql/SqlDdlGenerator.java |  2 +
 .../types/converters/IdentityConverter.java        |  2 +-
 .../sql/sql/SqlDdlGeneratorTest.java               | 48 +++++++++++++---------
 .../persistence/MigrationKernalContext.java        |  2 +-
 .../utils/pubsub/RateLimiterProcessorTest.java     |  5 +--
 .../java/org/apache/ignite/table/TupleImpl.java    |  3 +-
 .../internal/binarytuple/BinaryTupleParser.java    |  2 +-
 .../internal/catalog/storage/UpdateLogImpl.java    |  4 +-
 .../catalog/storage/UpdateLogImplTest.java         |  2 +-
 .../call/recovery/states/PartitionStatesCall.java  |  8 ++--
 .../cli/core/decorator/DecoratorRegistry.java      |  2 +
 .../repl/completer/DynamicCompletionInsider.java   |  7 +---
 .../client/proto/ClientMessageUnpacker.java        |  2 +-
 .../client/proto/pojo/PojoConverterTest.java       |  2 +
 .../apache/ignite/internal/client/ClientUtils.java |  4 +-
 .../ignite/client/AbstractClientTableTest.java     |  4 +-
 .../apache/ignite/client/AbstractClientTest.java   |  3 ++
 .../ignite/client/fakes/FakeColumnMetadata.java    | 10 +++--
 .../configuration/ConfigurationListenerHolder.java |  3 ++
 .../configuration/util/ConfigurationUtil.java      |  2 +-
 .../notifications/ConfigurationListenerTest.java   | 12 +++---
 .../tree/TraversableTreeNodeTest.java              | 14 +++----
 .../extension/ExtendedTraversableTreeNodeTest.java |  8 ++--
 .../PolymorphicTraversableTreeNodeTest.java        | 12 +++---
 .../internal/lang/IgniteExceptionMapper.java       |  4 +-
 .../internal/lang/IgniteStringFormatter.java       |  5 +--
 .../ignite/internal/sql/SyncResultSetAdapter.java  |  2 +-
 .../ignite/internal/thread/IgniteThread.java       |  2 +-
 .../internal/tostring/IgniteToStringBuilder.java   |  4 +-
 .../ignite/internal/util/ExceptionUtils.java       |  2 +-
 .../apache/ignite/internal/util/GridUnsafe.java    | 46 ++++++++++++---------
 .../org/apache/ignite/internal/util/HashUtils.java |  9 ++++
 .../apache/ignite/internal/util/VarIntUtils.java   |  9 ++++
 .../internal/util/io/IgniteUnsafeDataInput.java    |  2 +-
 .../tostring/IgniteToStringBuilderSelfTest.java    | 15 ++++---
 .../ignite/internal/util/CollectionUtilsTest.java  |  2 +
 .../util/IgniteConcurrentMultiPairQueueTest.java   |  8 ++--
 .../util/PendingComparableValuesTrackerTest.java   | 10 ++---
 .../ignite/internal/util/io/IgniteTestIoUtils.java |  7 +++-
 .../eventlog/ser/JacksonBasedJsonSerializer.java   | 11 +----
 .../internal/network/file/messages/FileHeader.java |  2 +-
 .../ignite/internal/jdbc/JdbcConnection.java       | 12 +++---
 .../ignite/internal/jdbc/JdbcDatabaseMetadata.java |  2 +-
 .../apache/ignite/internal/jdbc/JdbcResultSet.java |  2 +-
 .../apache/ignite/internal/jdbc/JdbcStatement.java |  8 ++--
 .../org/apache/ignite/jdbc/IgniteJdbcDriver.java   |  2 +-
 .../internal/marshaller/FieldAccessorTest.java     |  2 +-
 .../server/persistence/RocksDbKeyValueStorage.java |  4 +-
 .../ignite/internal/metrics/HitRateMetric.java     |  3 ++
 .../internal/network/MapChannelTypeRegistry.java   |  2 +
 .../network/MapStripedExecutorByChannelTypeId.java |  2 +
 .../stream/DirectByteBufferStreamImplV1.java       |  9 ++--
 .../network/serialization/BuiltInType.java         |  4 +-
 .../network/serialization/SerializationType.java   |  2 +-
 .../serialization/marshal/LittleEndianBits.java    |  2 +
 .../network/DefaultMessagingServiceTest.java       |  2 +-
 .../network/SerializationMicroBenchmark.java       |  7 ++--
 .../ignite/internal/network/UosProfilerTarget.java |  2 +-
 ...shallerWithSerializableOverrideStreamsTest.java |  6 +--
 ...ltUserObjectMarshallerWithSerializableTest.java |  2 +
 .../ignite/internal/pagememory/io/DataPageIo.java  |  2 +-
 .../persistence/store/FilePageStoreTest.java       |  4 +-
 .../PartitionCommandsMarshallerImpl.java           |  2 +-
 .../network/replication/RequestType.java           |  3 --
 .../server/impl/RaftServiceEventInterceptor.java   |  2 +-
 .../ignite/disruptor/StripedDisruptorTest.java     |  2 +
 .../RecordMarshallerValidationsTest.java           |  2 +
 .../org/apache/ignite/data/repository/Person.java  |  7 +---
 .../sql/engine/exec/exp/ExpressionFactoryImpl.java |  3 +-
 .../sql/engine/exec/exp/IgniteSqlFunctions.java    |  4 +-
 .../sql/engine/exec/exp/RexExecutorImpl.java       | 13 +-----
 .../engine/exec/exp/agg/AccumulatorsFactory.java   |  2 +-
 .../sql/engine/exec/mapping/FragmentPrinter.java   |  4 +-
 .../sql/engine/exec/rel/AbstractSetOpNode.java     |  2 +-
 .../exec/rel/CorrelatedNestedLoopJoinNode.java     |  4 +-
 .../internal/sql/engine/exec/rel/HashJoinNode.java |  2 +
 .../sql/engine/exec/rel/MergeJoinNode.java         |  4 +-
 .../sql/engine/externalize/RelJsonReader.java      |  2 +-
 .../sql/engine/prepare/IgniteAliasNamespace.java   |  4 +-
 .../sql/engine/prepare/IgniteSqlValidator.java     |  8 ++--
 .../engine/rel/explain/RelTreeToTextWriter.java    | 11 ++---
 .../sql/engine/sql/IgniteAbstractSqlAlterZone.java |  3 +-
 .../internal/sql/engine/util/IgniteMath.java       |  2 +-
 .../ignite/internal/sql/engine/util/RexUtils.java  |  6 +--
 .../sql/engine/exec/RuntimeSortedIndexTest.java    | 18 ++++----
 .../exec/coercion/BaseTypeCheckExecutionTest.java  |  2 +-
 .../engine/exec/exp/ExpressionFactoryImplTest.java | 19 +++++----
 .../engine/exec/exp/IgniteSqlFunctionsTest.java    | 19 +++++----
 .../sql/engine/exec/mapping/MappingTestRunner.java |  4 +-
 .../sql/engine/exec/rel/AbstractExecutionTest.java |  2 +-
 .../sql/engine/exec/rel/BaseAggregateTest.java     |  2 +-
 .../exec/rel/DataSourceScanNodeExecutionTest.java  |  2 +-
 .../sql/engine/exec/rel/SingleRangeIterable.java   |  2 +-
 .../sql/engine/framework/DataProvider.java         |  2 +-
 .../sql/engine/planner/AbstractPlannerTest.java    |  3 ++
 .../sql/engine/prepare/PrepareServiceImplTest.java |  7 ++--
 .../internal/sql/engine/sql/SqlDdlParserTest.java  |  2 +-
 .../internal/sql/engine/util/StatementChecker.java |  2 +-
 .../storage/pagememory/mv/io/BlobFragmentIo.java   |  2 +-
 .../storage/rocksdb/RocksDbMvPartitionStorage.java |  2 +
 .../rocksdb/index/RocksDbHashIndexStorage.java     |  2 +
 .../rocksdb/index/RocksDbSortedIndexStorage.java   |  2 +
 .../internal/table/distributed/PartitionSet.java   |  2 +-
 .../internal/table/distributed/gc/MvGcTest.java    |  2 +-
 .../table/type/NumericTypesSerializerTest.java     |  2 +-
 .../rocksdb/TxStateRocksDbPartitionStorage.java    |  2 +
 .../internal/worker/CriticalWorkerWatchdog.java    | 22 ++++------
 112 files changed, 334 insertions(+), 290 deletions(-)

diff --git a/check-rules/pmd-rules.xml b/check-rules/pmd-rules.xml
index facf26af0ee..889c0c50c11 100644
--- a/check-rules/pmd-rules.xml
+++ b/check-rules/pmd-rules.xml
@@ -117,6 +117,7 @@
 
 
     <!--
+        TODO: https://issues.apache.org/jira/browse/IGNITE-26174
         UnusedPrivateMethod has a known bug which leads to false positive triggering if
         method signature contains generic parameter and\or descendant class is passed as parameter.
         See for details: https://github.com/pmd/pmd/issues/770
@@ -127,7 +128,7 @@
     <rule name="Prohibited classes"
       language="java"
       message="Avoid using these classes."
-      class="net.sourceforge.pmd.lang.rule.XPathRule" >
+      class="net.sourceforge.pmd.lang.rule.xpath.XPathRule" >
         <description>
             Avoid using these classes.
         </description>
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index 2022ce63058..a6429cd4f94 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -96,7 +96,7 @@ protobuf = "4.31.1"
 cytodynamics = "0.2.0"
 
 #Tools
-pmdTool = "6.55.0"
+pmdTool = "7.13.0"
 checkstyleTool = "10.3.3"
 spotbugsTool = "4.8.3"
 
diff --git a/migration-tools/modules/migration-tools-cli/src/main/java/org/apache/ignite/migrationtools/cli/exceptions/RecordAndTableSchemaMismatchExceptionHandler.java b/migration-tools/modules/migration-tools-cli/src/main/java/org/apache/ignite/migrationtools/cli/exceptions/RecordAndTableSchemaMismatchExceptionHandler.java
index ab2fbf04cbd..28c39a7a277 100644
--- a/migration-tools/modules/migration-tools-cli/src/main/java/org/apache/ignite/migrationtools/cli/exceptions/RecordAndTableSchemaMismatchExceptionHandler.java
+++ b/migration-tools/modules/migration-tools-cli/src/main/java/org/apache/ignite/migrationtools/cli/exceptions/RecordAndTableSchemaMismatchExceptionHandler.java
@@ -34,17 +34,15 @@ public class RecordAndTableSchemaMismatchExceptionHandler implements ExceptionHa
 
         if (!e.missingColumnsInRecord().isEmpty()) {
             msgBuilder.append("\nRecord did not have the following fields required by the table: ")
-                            .append(String.join(", ", e.missingColumnsInRecord()));
-
-            msgBuilder.append("\nConsider the following solutions:")
+                    .append(String.join(", ", e.missingColumnsInRecord()))
+                    .append("\nConsider the following solutions:")
                     .append("\n * Manually edit the Ignite 3 table schema to make the missing columns nullable.");
         }
 
         if (!e.additionalColumnsInRecord().isEmpty()) {
             msgBuilder.append("\nThe following fields were present on the record but not found in the table: ")
-                    .append(String.join(", ", e.additionalColumnsInRecord()));
-
-            msgBuilder.append("\nConsider the following solutions:")
+                    .append(String.join(", ", e.additionalColumnsInRecord()))
+                    .append("\nConsider the following solutions:")
                     .append("\n * Manual Editing: Edit the Ignite 3 table schema manually to add new columns for the additional fields."
                             + " Ensure that the new column types are compatible with the record type.")
                     .append("\n * Ignore Additional Fields: Use the IGNORE_COLUMN migration mode by applying the '--mode IGNORE_COLUMN'"
diff --git a/migration-tools/modules/migration-tools-commons-tests/src/main/java/org/apache/ignite/migrationtools/tests/clusters/FullSampleCluster.java b/migration-tools/modules/migration-tools-commons-tests/src/main/java/org/apache/ignite/migrationtools/tests/clusters/FullSampleCluster.java
index 22129f9441b..daad32a90e9 100644
--- a/migration-tools/modules/migration-tools-commons-tests/src/main/java/org/apache/ignite/migrationtools/tests/clusters/FullSampleCluster.java
+++ b/migration-tools/modules/migration-tools-commons-tests/src/main/java/org/apache/ignite/migrationtools/tests/clusters/FullSampleCluster.java
@@ -43,9 +43,9 @@ public class FullSampleCluster extends Ignite2ClusterWithSamples {
     @Override
     protected Ignite2ClusterContainer createClusterContainers() {
         return new Ignite2ClusterContainer(
-                FullSampleCluster.CLUSTER_CFG_PATH,
-                FullSampleCluster.TEST_CLUSTER_PATH,
-                FullSampleCluster.clusterNodeIds
+                CLUSTER_CFG_PATH,
+                TEST_CLUSTER_PATH,
+                clusterNodeIds
         );
     }
 }
diff --git a/migration-tools/modules/migration-tools-commons-tests/src/main/java/org/apache/ignite/migrationtools/tests/containers/Ignite2ClusterContainer.java b/migration-tools/modules/migration-tools-commons-tests/src/main/java/org/apache/ignite/migrationtools/tests/containers/Ignite2ClusterContainer.java
index d355bf5fa02..3a10d710efb 100644
--- a/migration-tools/modules/migration-tools-commons-tests/src/main/java/org/apache/ignite/migrationtools/tests/containers/Ignite2ClusterContainer.java
+++ b/migration-tools/modules/migration-tools-commons-tests/src/main/java/org/apache/ignite/migrationtools/tests/containers/Ignite2ClusterContainer.java
@@ -161,8 +161,11 @@ public class Ignite2ClusterContainer implements Startable {
     /**
      * Waits for the next checkpoint to happen.
      *
+     * <p>TODO: https://issues.apache.org/jira/browse/IGNITE-26177
+     *
      * @throws InterruptedException when the thread was interrupted while waiting.
      */
+    @SuppressWarnings("PMD.UnnecessaryCast")
     public void waitForNextCheckpoint() throws InterruptedException {
         // TODO: Make a specific checkpoint log implementation.
         // TODO: In the future, we will be able to call shutdown(false) on the container to properly shutdown the nodes.
diff --git a/migration-tools/modules/migration-tools-commons/src/main/java/org/apache/ignite/migrationtools/sql/SqlDdlGenerator.java b/migration-tools/modules/migration-tools-commons/src/main/java/org/apache/ignite/migrationtools/sql/SqlDdlGenerator.java
index c0cdc2d0db6..6aeeaa27adc 100644
--- a/migration-tools/modules/migration-tools-commons/src/main/java/org/apache/ignite/migrationtools/sql/SqlDdlGenerator.java
+++ b/migration-tools/modules/migration-tools-commons/src/main/java/org/apache/ignite/migrationtools/sql/SqlDdlGenerator.java
@@ -687,6 +687,8 @@ public class SqlDdlGenerator {
         return generate(cacheCfg).tableDefinition;
     }
 
+    // TODO: https://issues.apache.org/jira/browse/IGNITE-26177
+    @SuppressWarnings("PMD.UnnecessaryCast")
     private QueryEntity getOrCreateQueryEntity(CacheConfiguration cacheCfg) throws FieldNameConflictException {
         // TODO: Map the whole object and key instead of the query entities
         QueryEntity qe;
diff --git a/migration-tools/modules/migration-tools-commons/src/main/java/org/apache/ignite/migrationtools/types/converters/IdentityConverter.java b/migration-tools/modules/migration-tools-commons/src/main/java/org/apache/ignite/migrationtools/types/converters/IdentityConverter.java
index 5a047331d00..f96746753a4 100644
--- a/migration-tools/modules/migration-tools-commons/src/main/java/org/apache/ignite/migrationtools/types/converters/IdentityConverter.java
+++ b/migration-tools/modules/migration-tools-commons/src/main/java/org/apache/ignite/migrationtools/types/converters/IdentityConverter.java
@@ -21,7 +21,7 @@ import org.apache.ignite3.table.mapper.TypeConverter;
 
 /** Identity Converter. */
 public class IdentityConverter<T> implements TypeConverter<T, T> {
-    public static IdentityConverter INSTANCE = new IdentityConverter();
+    public static IdentityConverter<?> INSTANCE = new IdentityConverter<>();
 
     @Override
     public T toColumnType(T t) throws Exception {
diff --git a/migration-tools/modules/migration-tools-commons/src/test/java/org/apache/ignite/migrationtools/sql/sql/SqlDdlGeneratorTest.java b/migration-tools/modules/migration-tools-commons/src/test/java/org/apache/ignite/migrationtools/sql/sql/SqlDdlGeneratorTest.java
index f8f45f45c35..435f2b7e54e 100644
--- a/migration-tools/modules/migration-tools-commons/src/test/java/org/apache/ignite/migrationtools/sql/sql/SqlDdlGeneratorTest.java
+++ b/migration-tools/modules/migration-tools-commons/src/test/java/org/apache/ignite/migrationtools/sql/sql/SqlDdlGeneratorTest.java
@@ -106,27 +106,27 @@ class SqlDdlGeneratorTest {
             nonKey("SALARY", "DOUBLE", true)
     );
 
-    static CacheConfiguration configWithIndexType(Class<?> keyType, Class<?> valType) {
-        CacheConfiguration cacheCfg = new CacheConfiguration();
+    static CacheConfiguration<?, ?> configWithIndexType(Class<?> keyType, Class<?> valType) {
+        CacheConfiguration<?, ?> cacheCfg = new CacheConfiguration<>();
         cacheCfg.setIndexedTypes(keyType, valType);
         return cacheCfg;
     }
 
-    static CacheConfiguration configWithQeKeyValue(Class<?> keyType, Class<?> valType) {
-        CacheConfiguration cacheCfg = new CacheConfiguration();
+    static CacheConfiguration<?, ?> configWithQeKeyValue(Class<?> keyType, Class<?> valType) {
+        CacheConfiguration<?, ?> cacheCfg = new CacheConfiguration<>();
         QueryEntity qe = new QueryEntity(keyType, valType);
         cacheCfg.setQueryEntities(Collections.singleton(qe));
         return cacheCfg;
     }
 
-    static TableDefinition generateTableDef(CacheConfiguration cacheCfg, boolean allowExtraFields) {
+    static TableDefinition generateTableDef(CacheConfiguration<?, ?> cacheCfg, boolean allowExtraFields) {
         SqlDdlGenerator gen = new SqlDdlGenerator(new TableTypeRegistryMapImpl(), allowExtraFields);
         return gen.generateTableDefinition(cacheCfg);
     }
 
     static List<Arguments> provideSupportedClasses() {
         // TODO: Check lengths
-        List<Map.Entry<Class, String>> primitives = List.of(
+        List<Map.Entry<Class<?>, String>> primitives = List.of(
                 entry(boolean.class, "BOOLEAN"),
                 entry(byte.class, "TINYINT"),
                 entry(char.class, "CHAR"),
@@ -150,7 +150,7 @@ class SqlDdlGeneratorTest {
         );
 
         // These types are only supported on the value side.
-        List<Map.Entry<Class, String>> supportedOnlyHasValues = List.of(
+        List<Map.Entry<Class<?>, String>> supportedOnlyHasValues = List.of(
                 entry(boolean[].class, "VARBINARY"),
                 entry(char[].class, "VARBINARY"),
                 entry(short[].class, "VARBINARY"),
@@ -181,9 +181,10 @@ class SqlDdlGeneratorTest {
 
     static List<Arguments> provideCacheConfigSupplier() {
         var cfgGenerators = List.of(
-                named("From indexType", (BiFunction<Class<?>, Class<?>, CacheConfiguration>) SqlDdlGeneratorTest::configWithIndexType),
+                named("From indexType",
+                        (BiFunction<Class<?>, Class<?>, CacheConfiguration<?, ?>>) SqlDdlGeneratorTest::configWithIndexType),
                 named("From QE key and value fields",
-                        (BiFunction<Class<?>, Class<?>, CacheConfiguration>) SqlDdlGeneratorTest::configWithQeKeyValue)
+                        (BiFunction<Class<?>, Class<?>, CacheConfiguration<?, ?>>) SqlDdlGeneratorTest::configWithQeKeyValue)
         );
 
         List<Arguments> ret = new ArrayList<>(EXTRA_FIELDS_ENABLED_ARG.size() * cfgGenerators.size());
@@ -248,7 +249,7 @@ class SqlDdlGeneratorTest {
     @ParameterizedTest
     @MethodSource("provideSupportedClasses")
     void testTableDefUsingIndexedTypes(
-            BiFunction<Class<?>, Class<?>, CacheConfiguration> cacheConfigSupplier,
+            BiFunction<Class<?>, Class<?>, CacheConfiguration<?, ?>> cacheConfigSupplier,
             boolean allowExtraFields,
             Class keyType,
             String keyDef,
@@ -263,11 +264,11 @@ class SqlDdlGeneratorTest {
 
     @ParameterizedTest
     @MethodSource("provideCacheConfigSupplier")
-    void testTableDefWithComplexKeyAndSimplePojo(BiFunction<Class<?>, Class<?>, CacheConfiguration> cacheConfigSupplier,
+    void testTableDefWithComplexKeyAndSimplePojo(BiFunction<Class<?>, Class<?>, CacheConfiguration<?, ?>> cacheConfigSupplier,
             boolean allowExtraFields) {
         var cacheCfg = cacheConfigSupplier.apply(ComplexKeyIntStr.class, SimplePojo.class);
         {
-            QueryEntity qe = (QueryEntity) cacheCfg.getQueryEntities().stream().findFirst().orElseThrow();
+            QueryEntity qe = cacheCfg.getQueryEntities().stream().findFirst().orElseThrow();
             Map<String, String> aliases = qe.getAliases();
             // We currently cannot make an alias to switch the field case due to an hack to support case-insensitive mappings.
             // aliases.put("id", "ID");
@@ -284,7 +285,7 @@ class SqlDdlGeneratorTest {
 
     @ParameterizedTest
     @MethodSource("provideCacheConfigSupplier")
-    void testTableDefWithOrganizationPojo(BiFunction<Class<?>, Class<?>, CacheConfiguration> cacheConfigSupplier,
+    void testTableDefWithOrganizationPojo(BiFunction<Class<?>, Class<?>, CacheConfiguration<?, ?>> cacheConfigSupplier,
             boolean allowExtraFields) {
         var cacheCfg = cacheConfigSupplier.apply(int.class, Organization.class);
         testCacheConfig(cacheCfg, allowExtraFields, List.of(
@@ -297,7 +298,10 @@ class SqlDdlGeneratorTest {
 
     @ParameterizedTest
     @MethodSource("provideCacheConfigSupplier")
-    void testTableDefWithPersonPojo(BiFunction<Class<?>, Class<?>, CacheConfiguration> cacheConfigSupplier, boolean allowExtraFields) {
+    void testTableDefWithPersonPojo(
+            BiFunction<Class<?>, Class<?>, CacheConfiguration<?, ?>> cacheConfigSupplier,
+            boolean allowExtraFields
+    ) {
         // TODO: Make dynamic pojos with BB to cover all the possible scenarios...
         var cacheCfg = cacheConfigSupplier.apply(int.class, Person.class);
         testCacheConfig(cacheCfg, allowExtraFields, PERSON_EXPECTED_FIELDS);
@@ -305,10 +309,12 @@ class SqlDdlGeneratorTest {
 
     @ParameterizedTest
     @MethodSource("provideCacheConfigSupplier")
-    void testTableDefWithPersonPojoNotInClasspath(BiFunction<Class<?>, Class<?>, CacheConfiguration> cacheConfigSupplier,
-            boolean allowExtraFields) {
+    void testTableDefWithPersonPojoNotInClasspath(
+            BiFunction<Class<?>, Class<?>, CacheConfiguration<?, ?>> cacheConfigSupplier,
+            boolean allowExtraFields
+    ) {
         var cacheCfg = cacheConfigSupplier.apply(int.class, Person.class);
-        QueryEntity qe = (QueryEntity) cacheCfg.getQueryEntities().stream().findFirst().orElseThrow();
+        QueryEntity qe = cacheCfg.getQueryEntities().stream().findFirst().orElseThrow();
         qe.setValueType(Person.class.getName().replace("Person", "FakePerson"));
 
         Set<String> notNullFields = new HashSet<>();
@@ -320,10 +326,12 @@ class SqlDdlGeneratorTest {
 
     @ParameterizedTest
     @MethodSource("provideCacheConfigSupplier")
-    void testCasingMismatchBetweenQueryEntityAndClass(BiFunction<Class<?>, Class<?>, CacheConfiguration> cacheConfigSupplier,
-            boolean allowExtraFields) {
+    void testCasingMismatchBetweenQueryEntityAndClass(
+            BiFunction<Class<?>, Class<?>, CacheConfiguration<?, ?>> cacheConfigSupplier,
+            boolean allowExtraFields
+    ) {
         var cacheCfg = cacheConfigSupplier.apply(int.class, Person.class);
-        QueryEntity qe = (QueryEntity) cacheCfg.getQueryEntities().stream().findFirst().orElseThrow();
+        QueryEntity qe = cacheCfg.getQueryEntities().stream().findFirst().orElseThrow();
         // Skips the key, randomize the casing for the field name.
         qe.setFields(
                 qe.getFields().entrySet().stream()
diff --git a/migration-tools/modules/migration-tools-persistence/src/main/java/org/apache/ignite/migrationtools/persistence/MigrationKernalContext.java b/migration-tools/modules/migration-tools-persistence/src/main/java/org/apache/ignite/migrationtools/persistence/MigrationKernalContext.java
index b21c914de71..eb85079fc67 100644
--- a/migration-tools/modules/migration-tools-persistence/src/main/java/org/apache/ignite/migrationtools/persistence/MigrationKernalContext.java
+++ b/migration-tools/modules/migration-tools-persistence/src/main/java/org/apache/ignite/migrationtools/persistence/MigrationKernalContext.java
@@ -219,7 +219,7 @@ public class MigrationKernalContext extends GridKernalContextImpl {
             // This just happens in the migration tools context because we allow skipping errors while loading the beans.
             for (int i = 0; i < cacheCfgs.length; i++) {
                 if (cacheCfgs[i] == null) {
-                    cacheCfgs[i] = new CacheConfiguration();
+                    cacheCfgs[i] = new CacheConfiguration<>();
                 }
             }
         }
diff --git a/migration-tools/modules/migration-tools-persistence/src/test/java/org/apache/ignite/migrationtools/persistence/utils/pubsub/RateLimiterProcessorTest.java b/migration-tools/modules/migration-tools-persistence/src/test/java/org/apache/ignite/migrationtools/persistence/utils/pubsub/RateLimiterProcessorTest.java
index c219b720617..5e7124f66cc 100644
--- a/migration-tools/modules/migration-tools-persistence/src/test/java/org/apache/ignite/migrationtools/persistence/utils/pubsub/RateLimiterProcessorTest.java
+++ b/migration-tools/modules/migration-tools-persistence/src/test/java/org/apache/ignite/migrationtools/persistence/utils/pubsub/RateLimiterProcessorTest.java
@@ -33,12 +33,9 @@ class RateLimiterProcessorTest {
         RateLimiterProcessor<Integer> rateLimiterProcessor = new RateLimiterProcessor<>(2, TimeUnit.SECONDS, 4);
 
         publisher.subscribe(rateLimiterProcessor);
-        rateLimiterProcessor.subscribe(new Flow.Subscriber<Integer>() {
-            private Flow.Subscription subscription;
-
+        rateLimiterProcessor.subscribe(new Flow.Subscriber<>() {
             @Override
             public void onSubscribe(Flow.Subscription subscription) {
-                this.subscription = subscription;
                 subscription.request(Integer.MAX_VALUE);
             }
 
diff --git a/modules/api/src/main/java/org/apache/ignite/table/TupleImpl.java b/modules/api/src/main/java/org/apache/ignite/table/TupleImpl.java
index 14b9b94f86a..f0e62c89a8b 100644
--- a/modules/api/src/main/java/org/apache/ignite/table/TupleImpl.java
+++ b/modules/api/src/main/java/org/apache/ignite/table/TupleImpl.java
@@ -416,7 +416,8 @@ class TupleImpl implements Tuple, Serializable {
             if (i > 0) {
                 b.append(", ");
             }
-            b.append(columnName(i)).append('=').append((Object) value(i));
+            Object value = value(i);
+            b.append(columnName(i)).append('=').append(value);
         }
         b.append(']');
 
diff --git a/modules/binary-tuple/src/main/java/org/apache/ignite/internal/binarytuple/BinaryTupleParser.java b/modules/binary-tuple/src/main/java/org/apache/ignite/internal/binarytuple/BinaryTupleParser.java
index 43135877bcc..66c8cb5ffd6 100644
--- a/modules/binary-tuple/src/main/java/org/apache/ignite/internal/binarytuple/BinaryTupleParser.java
+++ b/modules/binary-tuple/src/main/java/org/apache/ignite/internal/binarytuple/BinaryTupleParser.java
@@ -628,7 +628,7 @@ public class BinaryTupleParser {
      */
     private static LocalDate getDate(ByteBufferAccessor byteBufferAccessor, int offset) {
         int date = Short.toUnsignedInt(byteBufferAccessor.getShort(offset));
-        date |= ((int) byteBufferAccessor.get(offset + 2)) << 16;
+        date |= byteBufferAccessor.get(offset + 2) << 16;
 
         int day = date & 31;
         int month = (date >> 5) & 15;
diff --git a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/UpdateLogImpl.java b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/UpdateLogImpl.java
index 24c5a5c0d9f..8a01b20e195 100644
--- a/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/UpdateLogImpl.java
+++ b/modules/catalog/src/main/java/org/apache/ignite/internal/catalog/storage/UpdateLogImpl.java
@@ -286,7 +286,7 @@ public class UpdateLogImpl implements UpdateLog {
                 break;
             }
 
-            UpdateLogEvent update = (UpdateLogEvent) marshaller.unmarshall(Objects.requireNonNull(entry.value()));
+            UpdateLogEvent update = marshaller.unmarshall(Objects.requireNonNull(entry.value()));
 
             handler.handle(update, entry.timestamp(), entry.revision());
         }
@@ -343,7 +343,7 @@ public class UpdateLogImpl implements UpdateLog {
                 assert payload != null : eventEntry;
 
                 try {
-                    UpdateLogEvent update = (UpdateLogEvent) marshaller.unmarshall(payload);
+                    UpdateLogEvent update = marshaller.unmarshall(payload);
 
                     handleFutures.add(onUpdateHandler.handle(update, event.timestamp(), event.revision()));
                 } catch (CatalogMarshallerException ex) {
diff --git a/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/storage/UpdateLogImplTest.java b/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/storage/UpdateLogImplTest.java
index 2c1b344d354..3827358f17b 100644
--- a/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/storage/UpdateLogImplTest.java
+++ b/modules/catalog/src/test/java/org/apache/ignite/internal/catalog/storage/UpdateLogImplTest.java
@@ -490,7 +490,7 @@ class UpdateLogImplTest extends BaseIgniteAbstractTest {
             } else if (id == MarshallableEntryType.VERSIONED_UPDATE.id()) {
                 serializer = new VersionedUpdateSerializerV1(this);
             } else {
-                serializer = CatalogEntrySerializerProvider.DEFAULT_PROVIDER.get(2, id);
+                serializer = DEFAULT_PROVIDER.get(2, id);
             }
 
             return (CatalogObjectSerializer<MarshallableEntry>) serializer;
diff --git a/modules/cli/src/main/java/org/apache/ignite/internal/cli/call/recovery/states/PartitionStatesCall.java b/modules/cli/src/main/java/org/apache/ignite/internal/cli/call/recovery/states/PartitionStatesCall.java
index 7dec43a9f97..8a0f4acd5ea 100644
--- a/modules/cli/src/main/java/org/apache/ignite/internal/cli/call/recovery/states/PartitionStatesCall.java
+++ b/modules/cli/src/main/java/org/apache/ignite/internal/cli/call/recovery/states/PartitionStatesCall.java
@@ -84,11 +84,11 @@ public class PartitionStatesCall implements Call<PartitionStatesCallInput, Table
         boolean colocationEnabled = globalStates.getStates().stream().anyMatch(g -> g.getTableId() == -1);
 
         if (colocationEnabled) {
-            return DefaultCallOutput.success(new Table(ZONE_GLOBAL_HEADERS, globalStates.getStates().stream()
+            return DefaultCallOutput.success(new Table<>(ZONE_GLOBAL_HEADERS, globalStates.getStates().stream()
                     .flatMap(PartitionStatesCall::globalZoneState)
                     .collect(toList())));
         } else {
-            return DefaultCallOutput.success(new Table(GLOBAL_HEADERS, globalStates.getStates().stream()
+            return DefaultCallOutput.success(new Table<>(GLOBAL_HEADERS, globalStates.getStates().stream()
                     .flatMap(PartitionStatesCall::globalTableSate)
                     .collect(toList())));
         }
@@ -127,11 +127,11 @@ public class PartitionStatesCall implements Call<PartitionStatesCallInput, Table
         boolean colocationEnabled = localStates.getStates().stream().anyMatch(g -> g.getTableId() == -1);
 
         if (colocationEnabled) {
-            return DefaultCallOutput.success(new Table(ZONE_LOCAL_HEADERS, localStates.getStates().stream()
+            return DefaultCallOutput.success(new Table<>(ZONE_LOCAL_HEADERS, localStates.getStates().stream()
                     .flatMap(PartitionStatesCall::localZoneState)
                     .collect(toList())));
         } else {
-            return DefaultCallOutput.success(new Table(LOCAL_HEADERS, localStates.getStates().stream()
+            return DefaultCallOutput.success(new Table<>(LOCAL_HEADERS, localStates.getStates().stream()
                     .flatMap(PartitionStatesCall::localTableState)
                     .collect(toList())));
         }
diff --git a/modules/cli/src/main/java/org/apache/ignite/internal/cli/core/decorator/DecoratorRegistry.java b/modules/cli/src/main/java/org/apache/ignite/internal/cli/core/decorator/DecoratorRegistry.java
index 90b37885c05..ace6a953911 100644
--- a/modules/cli/src/main/java/org/apache/ignite/internal/cli/core/decorator/DecoratorRegistry.java
+++ b/modules/cli/src/main/java/org/apache/ignite/internal/cli/core/decorator/DecoratorRegistry.java
@@ -35,6 +35,8 @@ public class DecoratorRegistry {
         store.putAll(decoratorRegistry.store);
     }
 
+    // TODO: https://issues.apache.org/jira/browse/IGNITE-26175
+    @SuppressWarnings("PMD.UseDiamondOperator")
     public <T> Decorator<T, TerminalOutput> getDecorator(Class<? extends T> clazz) {
         return (Decorator<T, TerminalOutput>) store.getOrDefault(clazz, new DefaultDecorator<T>());
     }
diff --git a/modules/cli/src/main/java/org/apache/ignite/internal/cli/core/repl/completer/DynamicCompletionInsider.java b/modules/cli/src/main/java/org/apache/ignite/internal/cli/core/repl/completer/DynamicCompletionInsider.java
index 0b81ca75119..5f9cd8f9e43 100644
--- a/modules/cli/src/main/java/org/apache/ignite/internal/cli/core/repl/completer/DynamicCompletionInsider.java
+++ b/modules/cli/src/main/java/org/apache/ignite/internal/cli/core/repl/completer/DynamicCompletionInsider.java
@@ -36,16 +36,13 @@ public class DynamicCompletionInsider {
 
     private static String[] trim(String[] typedWords) {
         List<String> trimmedWords = new ArrayList<>(typedWords.length);
-        int offset = 0;
         for (String typedWord : typedWords) {
             String currentTrim = typedWord.trim();
-            if (currentTrim.isEmpty()) {
-                offset++;
-            } else {
+            if (!currentTrim.isEmpty()) {
                 trimmedWords.add(currentTrim);
             }
         }
-        return trimmedWords.toArray(new String[typedWords.length - offset]);
+        return trimmedWords.toArray(new String[0]);
     }
 
     /** Say if the positional parameter is already completed. */
diff --git a/modules/client-common/src/main/java/org/apache/ignite/internal/client/proto/ClientMessageUnpacker.java b/modules/client-common/src/main/java/org/apache/ignite/internal/client/proto/ClientMessageUnpacker.java
index fe51b920346..d60eb8bd22f 100644
--- a/modules/client-common/src/main/java/org/apache/ignite/internal/client/proto/ClientMessageUnpacker.java
+++ b/modules/client-common/src/main/java/org/apache/ignite/internal/client/proto/ClientMessageUnpacker.java
@@ -72,7 +72,7 @@ public class ClientMessageUnpacker implements AutoCloseable {
      * @return Excetion.
      */
     private static MessageSizeException overflowU32Size(int u32) {
-        long lv = (long) (u32 & 0x7fffffff) + 0x80000000L;
+        long lv = (u32 & 0x7fffffff) + 0x80000000L;
         return new MessageSizeException(lv);
     }
 
diff --git a/modules/client-common/src/test/java/org/apache/ignite/internal/client/proto/pojo/PojoConverterTest.java b/modules/client-common/src/test/java/org/apache/ignite/internal/client/proto/pojo/PojoConverterTest.java
index babacea22be..b3441315978 100644
--- a/modules/client-common/src/test/java/org/apache/ignite/internal/client/proto/pojo/PojoConverterTest.java
+++ b/modules/client-common/src/test/java/org/apache/ignite/internal/client/proto/pojo/PojoConverterTest.java
@@ -70,10 +70,12 @@ class PojoConverterTest {
         );
     }
 
+    @SuppressWarnings("PMD.UnusedPrivateField")
     public static class IntPojo {
         private int value;
     }
 
+    @SuppressWarnings("PMD.UnusedPrivateField")
     public static class LongPojo {
         private Long value;
     }
diff --git a/modules/client/src/main/java/org/apache/ignite/internal/client/ClientUtils.java b/modules/client/src/main/java/org/apache/ignite/internal/client/ClientUtils.java
index c5b1dfa91fc..ad969d2d3d5 100644
--- a/modules/client/src/main/java/org/apache/ignite/internal/client/ClientUtils.java
+++ b/modules/client/src/main/java/org/apache/ignite/internal/client/ClientUtils.java
@@ -220,8 +220,8 @@ public class ClientUtils {
      * @return Logger.
      */
     public static <T> IgniteLogger logger(IgniteClientConfiguration cfg, Class<T> cls) {
-        var loggerFactory = cfg.loggerFactory() == null
-                ? (LoggerFactory) System::getLogger
+        LoggerFactory loggerFactory = cfg.loggerFactory() == null
+                ? System::getLogger
                 : cfg.loggerFactory();
 
         return loggerFactory == null
diff --git a/modules/client/src/test/java/org/apache/ignite/client/AbstractClientTableTest.java b/modules/client/src/test/java/org/apache/ignite/client/AbstractClientTableTest.java
index 612134e0e7b..348ee27f701 100644
--- a/modules/client/src/test/java/org/apache/ignite/client/AbstractClientTableTest.java
+++ b/modules/client/src/test/java/org/apache/ignite/client/AbstractClientTableTest.java
@@ -125,10 +125,10 @@ public class AbstractClientTableTest extends AbstractClientTest {
                 .set("zboolean", true)
                 .set("zbyte", (byte) 11)
                 .set("zshort", (short) 12)
-                .set("zint", (int) 13)
+                .set("zint", 13)
                 .set("zlong", (long) 14)
                 .set("zfloat", (float) 1.5)
-                .set("zdouble", (double) 1.6)
+                .set("zdouble", 1.6)
                 .set("zdate", localDate)
                 .set("ztime", localTime)
                 .set("ztimestamp", instant)
diff --git a/modules/client/src/test/java/org/apache/ignite/client/AbstractClientTest.java b/modules/client/src/test/java/org/apache/ignite/client/AbstractClientTest.java
index b6983df1f79..6ad8f3ac96d 100644
--- a/modules/client/src/test/java/org/apache/ignite/client/AbstractClientTest.java
+++ b/modules/client/src/test/java/org/apache/ignite/client/AbstractClientTest.java
@@ -140,9 +140,12 @@ public abstract class AbstractClientTest extends BaseIgniteAbstractTest {
     /**
      * Assertion of {@link Tuple} equality.
      *
+     * <p>TODO: https://issues.apache.org/jira/browse/IGNITE-26177
+     *
      * @param x Tuple.
      * @param y Tuple.
      */
+    @SuppressWarnings("PMD.UnnecessaryCast")
     public static void assertTupleEquals(Tuple x, Tuple y) {
         if (x == null) {
             assertNull(y);
diff --git a/modules/client/src/test/java/org/apache/ignite/client/fakes/FakeColumnMetadata.java b/modules/client/src/test/java/org/apache/ignite/client/fakes/FakeColumnMetadata.java
index 5af1dbb682b..e22a7104940 100644
--- a/modules/client/src/test/java/org/apache/ignite/client/fakes/FakeColumnMetadata.java
+++ b/modules/client/src/test/java/org/apache/ignite/client/fakes/FakeColumnMetadata.java
@@ -19,6 +19,7 @@ package org.apache.ignite.client.fakes;
 
 import org.apache.ignite.sql.ColumnMetadata;
 import org.apache.ignite.sql.ColumnType;
+import org.jetbrains.annotations.Nullable;
 
 /**
  * Fake column meta.
@@ -34,10 +35,10 @@ class FakeColumnMetadata implements ColumnMetadata {
 
     private final boolean nullable;
 
-    private final ColumnOrigin origin;
+    private final @Nullable ColumnOrigin origin;
 
     FakeColumnMetadata(String name, ColumnType type) {
-        this(name, type, ColumnMetadata.UNDEFINED_PRECISION, ColumnMetadata.UNDEFINED_SCALE, false, null);
+        this(name, type, UNDEFINED_PRECISION, UNDEFINED_SCALE, false, null);
     }
 
     FakeColumnMetadata(
@@ -46,7 +47,8 @@ class FakeColumnMetadata implements ColumnMetadata {
             int precision,
             int scale,
             boolean nullable,
-            ColumnOrigin origin) {
+            @Nullable ColumnOrigin origin
+    ) {
         assert name != null;
         assert type != null;
 
@@ -96,7 +98,7 @@ class FakeColumnMetadata implements ColumnMetadata {
 
     /** {@inheritDoc} */
     @Override
-    public ColumnOrigin origin() {
+    public @Nullable ColumnOrigin origin() {
         return origin;
     }
 }
diff --git a/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/ConfigurationListenerHolder.java b/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/ConfigurationListenerHolder.java
index 475779e7fed..eca1714b59d 100644
--- a/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/ConfigurationListenerHolder.java
+++ b/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/ConfigurationListenerHolder.java
@@ -68,9 +68,12 @@ public class ConfigurationListenerHolder<L> {
      *
      * <p>NOTE: {@link Iterator#remove} - not supported.
      *
+     * <p>TODO: https://issues.apache.org/jira/browse/IGNITE-26175
+     *
      * @param notificationNumber Configuration notification listener number.
      * @see ConfigurationListenerHolder#addListener
      */
+    @SuppressWarnings("PMD.UseDiamondOperator")
     public Iterator<L> listeners(long notificationNumber) {
         Iterator<Container<L>> it = containers.iterator();
 
diff --git a/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/util/ConfigurationUtil.java b/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/util/ConfigurationUtil.java
index 03aab3796c3..7e463413ecf 100644
--- a/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/util/ConfigurationUtil.java
+++ b/modules/configuration/src/main/java/org/apache/ignite/internal/configuration/util/ConfigurationUtil.java
@@ -1115,7 +1115,7 @@ public class ConfigurationUtil {
          */
         private void descendToNamedListNode(NamedListNode<?> node) {
             // This list must be mutable and RandomAccess.
-            var orderedKeys = new ArrayList<>(((NamedListView<?>) node).namedListKeys());
+            var orderedKeys = new ArrayList<>(node.namedListKeys());
 
             for (Entry<String, ?> entry : map.entrySet()) {
                 String internalIdStr = entry.getKey();
diff --git a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/notifications/ConfigurationListenerTest.java b/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/notifications/ConfigurationListenerTest.java
index 09e3ab9cccb..41a0455a1d0 100644
--- a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/notifications/ConfigurationListenerTest.java
+++ b/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/notifications/ConfigurationListenerTest.java
@@ -278,7 +278,7 @@ public class ConfigurationListenerTest {
             return nullCompletedFuture();
         });
 
-        config.children().listenElements(new ConfigurationNamedListListener<ChildView>() {
+        config.children().listenElements(new ConfigurationNamedListListener<>() {
             /** {@inheritDoc} */
             @Override
             public CompletableFuture<?> onCreate(ConfigurationNotificationEvent<ChildView> ctx) {
@@ -370,7 +370,7 @@ public class ConfigurationListenerTest {
             return nullCompletedFuture();
         });
 
-        config.children().listenElements(new ConfigurationNamedListListener<ChildView>() {
+        config.children().listenElements(new ConfigurationNamedListListener<>() {
             /** {@inheritDoc} */
             @Override
             public CompletableFuture<?> onCreate(ConfigurationNotificationEvent<ChildView> ctx) {
@@ -466,7 +466,7 @@ public class ConfigurationListenerTest {
             return nullCompletedFuture();
         });
 
-        config.children().listenElements(new ConfigurationNamedListListener<ChildView>() {
+        config.children().listenElements(new ConfigurationNamedListListener<>() {
             /** {@inheritDoc} */
             @Override
             public CompletableFuture<?> onCreate(ConfigurationNotificationEvent<ChildView> ctx) {
@@ -565,7 +565,7 @@ public class ConfigurationListenerTest {
             return nullCompletedFuture();
         });
 
-        config.children().listenElements(new ConfigurationNamedListListener<ChildView>() {
+        config.children().listenElements(new ConfigurationNamedListListener<>() {
             /** {@inheritDoc} */
             @Override
             public CompletableFuture<?> onCreate(ConfigurationNotificationEvent<ChildView> ctx) {
@@ -657,7 +657,7 @@ public class ConfigurationListenerTest {
             return nullCompletedFuture();
         });
 
-        config.children().listenElements(new ConfigurationNamedListListener<ChildView>() {
+        config.children().listenElements(new ConfigurationNamedListListener<>() {
             /** {@inheritDoc} */
             @Override
             public CompletableFuture<?> onCreate(ConfigurationNotificationEvent<ChildView> ctx) {
@@ -753,7 +753,7 @@ public class ConfigurationListenerTest {
             return nullCompletedFuture();
         });
 
-        config.children().listenElements(new ConfigurationNamedListListener<ChildView>() {
+        config.children().listenElements(new ConfigurationNamedListListener<>() {
             /** {@inheritDoc} */
             @Override
             public CompletableFuture<?> onCreate(ConfigurationNotificationEvent<ChildView> ctx) {
diff --git a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/tree/TraversableTreeNodeTest.java b/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/tree/TraversableTreeNodeTest.java
index ed5ee9267e3..43a0fa91b35 100644
--- a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/tree/TraversableTreeNodeTest.java
+++ b/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/tree/TraversableTreeNodeTest.java
@@ -268,7 +268,7 @@ public class TraversableTreeNodeTest {
         var parentNode = newParentInstance();
 
         assertThrows(VisitException.class, () ->
-                parentNode.accept(null, "root", new ConfigurationVisitor<Void>() {
+                parentNode.accept(null, "root", new ConfigurationVisitor<>() {
                     @Override
                     public Void visitInnerNode(Field field, String key, InnerNode node) {
                         throw new VisitException();
@@ -285,7 +285,7 @@ public class TraversableTreeNodeTest {
         var elementsNode = (TraversableTreeNode) newParentInstance().elements();
 
         assertThrows(VisitException.class, () ->
-                elementsNode.accept(null, "root", new ConfigurationVisitor<Void>() {
+                elementsNode.accept(null, "root", new ConfigurationVisitor<>() {
                     @Override
                     public Void visitNamedListNode(Field field, String key, NamedListNode<?> node) {
                         throw new VisitException();
@@ -303,7 +303,7 @@ public class TraversableTreeNodeTest {
 
         Collection<String> keys = new TreeSet<>();
 
-        parentNode.traverseChildren(new ConfigurationVisitor<Object>() {
+        parentNode.traverseChildren(new ConfigurationVisitor<>() {
             @Override
             public Object visitInnerNode(Field field, String key, InnerNode node) {
                 assertNull(node);
@@ -328,7 +328,7 @@ public class TraversableTreeNodeTest {
 
         var childNode = newChildInstance();
 
-        childNode.traverseChildren(new ConfigurationVisitor<Object>() {
+        childNode.traverseChildren(new ConfigurationVisitor<>() {
             @Override
             public Object visitLeafNode(Field field, String key, Serializable val) {
                 return keys.add(key);
@@ -348,7 +348,7 @@ public class TraversableTreeNodeTest {
 
         // Assert that proper method has been invoked.
         assertThrows(VisitException.class, () ->
-                parentNode.traverseChild("my-child", new ConfigurationVisitor<Void>() {
+                parentNode.traverseChild("my-child", new ConfigurationVisitor<>() {
                     @Override
                     public Void visitInnerNode(Field field, String key, InnerNode node) {
                         assertEquals("my-child", key);
@@ -360,7 +360,7 @@ public class TraversableTreeNodeTest {
 
         // Assert that proper method has been invoked.
         assertThrows(VisitException.class, () ->
-                parentNode.traverseChild("my-elements", new ConfigurationVisitor<Void>() {
+                parentNode.traverseChild("my-elements", new ConfigurationVisitor<>() {
                     @Override
                     public Void visitNamedListNode(Field field, String key, NamedListNode<?> node) {
                         assertEquals("my-elements", key);
@@ -374,7 +374,7 @@ public class TraversableTreeNodeTest {
 
         // Assert that proper method has been invoked.
         assertThrows(VisitException.class, () ->
-                childNode.traverseChild("my-int-cfg", new ConfigurationVisitor<Void>() {
+                childNode.traverseChild("my-int-cfg", new ConfigurationVisitor<>() {
                     @Override
                     public Void visitLeafNode(Field field, String key, Serializable val) {
                         assertEquals("my-int-cfg", key);
diff --git a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/tree/extension/ExtendedTraversableTreeNodeTest.java b/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/tree/extension/ExtendedTraversableTreeNodeTest.java
index 6757e177515..68b65287bc1 100644
--- a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/tree/extension/ExtendedTraversableTreeNodeTest.java
+++ b/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/tree/extension/ExtendedTraversableTreeNodeTest.java
@@ -135,7 +135,7 @@ public class ExtendedTraversableTreeNodeTest {
 
         Collection<String> keys = new HashSet<>();
 
-        parentNode.traverseChildren(new ConfigurationVisitor<Object>() {
+        parentNode.traverseChildren(new ConfigurationVisitor<>() {
             @Override
             public Object visitLeafNode(@Nullable Field field, String key, Serializable val) {
                 assertEquals("my-str", key);
@@ -166,7 +166,7 @@ public class ExtendedTraversableTreeNodeTest {
         var parentNode = newParentInstance();
 
         assertThrows(VisitException.class, () ->
-                parentNode.traverseChild("my-str", new ConfigurationVisitor<Void>() {
+                parentNode.traverseChild("my-str", new ConfigurationVisitor<>() {
                     @Override
                     public Void visitLeafNode(@Nullable Field field, String key, Serializable val) {
                         assertEquals("my-str", key);
@@ -177,7 +177,7 @@ public class ExtendedTraversableTreeNodeTest {
         );
 
         assertThrows(VisitException.class, () ->
-                parentNode.traverseChild("my-child", new ConfigurationVisitor<Void>() {
+                parentNode.traverseChild("my-child", new ConfigurationVisitor<>() {
                     @Override
                     public @Nullable Void visitInnerNode(@Nullable Field field, String key, InnerNode node) {
                         assertEquals("my-child", key);
@@ -188,7 +188,7 @@ public class ExtendedTraversableTreeNodeTest {
         );
 
         assertThrows(VisitException.class, () ->
-                parentNode.traverseChild("my-elements", new ConfigurationVisitor<Void>() {
+                parentNode.traverseChild("my-elements", new ConfigurationVisitor<>() {
                     @Override
                     public @Nullable Void visitNamedListNode(@Nullable Field field, String key, NamedListNode<?> node) {
                         assertEquals("my-elements", key);
diff --git a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/tree/polymorphic/PolymorphicTraversableTreeNodeTest.java b/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/tree/polymorphic/PolymorphicTraversableTreeNodeTest.java
index 968ca223fb0..33e539dc9b0 100644
--- a/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/tree/polymorphic/PolymorphicTraversableTreeNodeTest.java
+++ b/modules/configuration/src/test/java/org/apache/ignite/internal/configuration/tree/polymorphic/PolymorphicTraversableTreeNodeTest.java
@@ -139,7 +139,7 @@ public class PolymorphicTraversableTreeNodeTest {
 
         Collection<String> keys = new HashSet<>();
 
-        parentNode.traverseChildren(new ConfigurationVisitor<Object>() {
+        parentNode.traverseChildren(new ConfigurationVisitor<>() {
             @Override
             public Object visitLeafNode(@Nullable Field field, String key, Serializable val) {
                 assertEquals("type", key);
@@ -169,7 +169,7 @@ public class PolymorphicTraversableTreeNodeTest {
 
         Collection<String> keys = new HashSet<>();
 
-        parentNode.traverseChildren(new ConfigurationVisitor<Object>() {
+        parentNode.traverseChildren(new ConfigurationVisitor<>() {
             @Override
             public Object visitLeafNode(@Nullable Field field, String key, Serializable val) {
                 return keys.add(key);
@@ -193,7 +193,7 @@ public class PolymorphicTraversableTreeNodeTest {
         keys.clear();
         parentNode.convert(ParentWithElementsChange.class);
 
-        parentNode.traverseChildren(new ConfigurationVisitor<Object>() {
+        parentNode.traverseChildren(new ConfigurationVisitor<>() {
             @Override
             public Object visitLeafNode(@Nullable Field field, String key, Serializable val) {
                 return keys.add(key);
@@ -221,7 +221,7 @@ public class PolymorphicTraversableTreeNodeTest {
         parentNode.convert(ParentWithChildChange.class);
 
         assertThrows(VisitException.class, () ->
-                parentNode.traverseChild("type", new ConfigurationVisitor<Void>() {
+                parentNode.traverseChild("type", new ConfigurationVisitor<>() {
                     @Override
                     public Void visitLeafNode(@Nullable Field field, String key, Serializable val) {
                         assertEquals("type", key);
@@ -232,7 +232,7 @@ public class PolymorphicTraversableTreeNodeTest {
         );
 
         assertThrows(VisitException.class, () ->
-                parentNode.traverseChild("my-child", new ConfigurationVisitor<Void>() {
+                parentNode.traverseChild("my-child", new ConfigurationVisitor<>() {
                     @Override
                     public @Nullable Void visitInnerNode(@Nullable Field field, String key, InnerNode node) {
                         assertEquals("my-child", key);
@@ -249,7 +249,7 @@ public class PolymorphicTraversableTreeNodeTest {
         parentNode.convert(ParentWithElementsChange.class);
 
         assertThrows(VisitException.class, () ->
-                parentNode.traverseChild("my-elements", new ConfigurationVisitor<Void>() {
+                parentNode.traverseChild("my-elements", new ConfigurationVisitor<>() {
                     @Override
                     public @Nullable Void visitNamedListNode(@Nullable Field field, String key, NamedListNode<?> node) {
                         assertEquals("my-elements", key);
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/lang/IgniteExceptionMapper.java b/modules/core/src/main/java/org/apache/ignite/internal/lang/IgniteExceptionMapper.java
index 493eb18a368..c1a836d0ef5 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/lang/IgniteExceptionMapper.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/lang/IgniteExceptionMapper.java
@@ -75,7 +75,7 @@ public class IgniteExceptionMapper<T extends Exception, R extends Exception> {
             Class<T> from,
             Function<T, R> mapper
     ) {
-        return new IgniteExceptionMapper<T, R>(from, mapper);
+        return new IgniteExceptionMapper<>(from, mapper);
     }
 
     /**
@@ -92,6 +92,6 @@ public class IgniteExceptionMapper<T extends Exception, R extends Exception> {
             Class<T> from,
             Function<T, R> mapper
     ) {
-        return new IgniteExceptionMapper<T, R>(from, mapper);
+        return new IgniteExceptionMapper<>(from, mapper);
     }
 }
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/lang/IgniteStringFormatter.java b/modules/core/src/main/java/org/apache/ignite/internal/lang/IgniteStringFormatter.java
index fb6b4c0e288..47b8bfc905d 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/lang/IgniteStringFormatter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/lang/IgniteStringFormatter.java
@@ -112,9 +112,8 @@ public final class IgniteStringFormatter {
                     if (!isDoubleEscaped(messagePattern, j)) {
                         l--; // DELIM_START was escaped, thus should not be incremented
 
-                        sbuf.append(messagePattern, i, j - 1);
-
-                        sbuf.append(DELIM_START);
+                        sbuf.append(messagePattern, i, j - 1)
+                                .append(DELIM_START);
 
                         i = j + 1;
                     } else {
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/sql/SyncResultSetAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/sql/SyncResultSetAdapter.java
index 27578979cf5..6ef4ee2ec71 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/sql/SyncResultSetAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/sql/SyncResultSetAdapter.java
@@ -47,7 +47,7 @@ public class SyncResultSetAdapter<T> implements ResultSet<T> {
         assert ars != null;
 
         this.ars = ars;
-        it = ars.hasRowSet() ? new IteratorImpl(ars) : null;
+        it = ars.hasRowSet() ? new IteratorImpl<>(ars) : null;
     }
 
     /** {@inheritDoc} */
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/thread/IgniteThread.java b/modules/core/src/main/java/org/apache/ignite/internal/thread/IgniteThread.java
index 413566512e8..2cd1a7fca92 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/thread/IgniteThread.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/thread/IgniteThread.java
@@ -80,7 +80,7 @@ public class IgniteThread extends Thread implements ThreadAttributes {
      */
     @Nullable
     public static IgniteThread current() {
-        Thread thread = Thread.currentThread();
+        Thread thread = currentThread();
 
         return thread.getClass() == IgniteThread.class || thread instanceof IgniteThread
             ? ((IgniteThread) thread) : null;
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/tostring/IgniteToStringBuilder.java b/modules/core/src/main/java/org/apache/ignite/internal/tostring/IgniteToStringBuilder.java
index 6bee2b50ccb..3a195678846 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/tostring/IgniteToStringBuilder.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/tostring/IgniteToStringBuilder.java
@@ -1391,6 +1391,7 @@ public class IgniteToStringBuilder {
      * @param triplets Triplets {@code {name, value, sensitivity}}.
      * @return String presentation.
      */
+    @SuppressWarnings("PMD.AvoidArrayLoops")
     public static String toString(String str, Object... triplets) {
         if (triplets.length % 3 != 0) {
             throw new IllegalArgumentException("Array length must be a multiple of 3");
@@ -2203,7 +2204,8 @@ public class IgniteToStringBuilder {
             if (i > 0) {
                 b.append(", ");
             }
-            b.append(tuple.columnName(i)).append('=').append((Object) tuple.value(i));
+            Object value = tuple.value(i);
+            b.append(tuple.columnName(i)).append('=').append(value);
         }
         b.append(']');
 
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/ExceptionUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/util/ExceptionUtils.java
index 4b01a1f1a4d..b35935bdb36 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/ExceptionUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/ExceptionUtils.java
@@ -756,7 +756,7 @@ public final class ExceptionUtils {
     public static IgniteException wrap(Throwable e) {
         Objects.requireNonNull(e);
 
-        e = ExceptionUtils.unwrapCause(e);
+        e = unwrapCause(e);
 
         if (e instanceof IgniteException) {
             IgniteException iex = (IgniteException) e;
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/GridUnsafe.java b/modules/core/src/main/java/org/apache/ignite/internal/util/GridUnsafe.java
index 97a26dd76a5..f1d6cb6aa3a 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/GridUnsafe.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/GridUnsafe.java
@@ -1128,11 +1128,11 @@ public abstract class GridUnsafe {
         long off = 0;
 
         for (; off + PAGE_SIZE <= len; off += PAGE_SIZE) {
-            GridUnsafe.copyMemory(EMPTY_PAGE, GridUnsafe.BYTE_ARR_OFF, null, addr + off, PAGE_SIZE);
+            copyMemory(EMPTY_PAGE, BYTE_ARR_OFF, null, addr + off, PAGE_SIZE);
         }
 
         if (len != off) {
-            GridUnsafe.copyMemory(EMPTY_PAGE, GridUnsafe.BYTE_ARR_OFF, null, addr + off, len - off);
+            copyMemory(EMPTY_PAGE, BYTE_ARR_OFF, null, addr + off, len - off);
         }
     }
 
@@ -1438,7 +1438,7 @@ public abstract class GridUnsafe {
         } catch (SecurityException ignored) {
             try {
                 return AccessController.doPrivileged(
-                        new PrivilegedExceptionAction<Unsafe>() {
+                        new PrivilegedExceptionAction<>() {
                             @Override
                             public Unsafe run() throws Exception {
                                 Field f = Unsafe.class.getDeclaredField("theUnsafe");
@@ -1462,7 +1462,7 @@ public abstract class GridUnsafe {
     private static long bufferAddressOffset() {
         final ByteBuffer maybeDirectBuf = ByteBuffer.allocateDirect(1);
 
-        Field addrField = AccessController.doPrivileged(new PrivilegedAction<Field>() {
+        Field addrField = AccessController.doPrivileged(new PrivilegedAction<>() {
             @Override
             public Field run() {
                 try {
@@ -1626,15 +1626,15 @@ public abstract class GridUnsafe {
      */
     private static int getIntByByte(Object obj, long addr, boolean bigEndian) {
         if (bigEndian) {
-            return (((int) UNSAFE.getByte(obj, addr)) << 24)
-                    | (((int) UNSAFE.getByte(obj, addr + 1) & 0xff) << 16)
-                    | (((int) UNSAFE.getByte(obj, addr + 2) & 0xff) << 8)
-                    | (((int) UNSAFE.getByte(obj, addr + 3) & 0xff));
+            return (UNSAFE.getByte(obj, addr) << 24)
+                    | ((UNSAFE.getByte(obj, addr + 1) & 0xff) << 16)
+                    | ((UNSAFE.getByte(obj, addr + 2) & 0xff) << 8)
+                    | ((UNSAFE.getByte(obj, addr + 3) & 0xff));
         } else {
-            return (((int) UNSAFE.getByte(obj, addr + 3)) << 24)
-                    | (((int) UNSAFE.getByte(obj, addr + 2) & 0xff) << 16)
-                    | (((int) UNSAFE.getByte(obj, addr + 1) & 0xff) << 8)
-                    | (((int) UNSAFE.getByte(obj, addr) & 0xff));
+            return (UNSAFE.getByte(obj, addr + 3) << 24)
+                    | ((UNSAFE.getByte(obj, addr + 2) & 0xff) << 16)
+                    | ((UNSAFE.getByte(obj, addr + 1) & 0xff) << 8)
+                    | ((UNSAFE.getByte(obj, addr) & 0xff));
         }
     }
 
@@ -1647,15 +1647,15 @@ public abstract class GridUnsafe {
      */
     private static int getIntByByte(long addr, boolean bigEndian) {
         if (bigEndian) {
-            return (((int) UNSAFE.getByte(addr)) << 24)
-                    | (((int) UNSAFE.getByte(addr + 1) & 0xff) << 16)
-                    | (((int) UNSAFE.getByte(addr + 2) & 0xff) << 8)
-                    | (((int) UNSAFE.getByte(addr + 3) & 0xff));
+            return (UNSAFE.getByte(addr) << 24)
+                    | ((UNSAFE.getByte(addr + 1) & 0xff) << 16)
+                    | ((UNSAFE.getByte(addr + 2) & 0xff) << 8)
+                    | ((UNSAFE.getByte(addr + 3) & 0xff));
         } else {
-            return (((int) UNSAFE.getByte(addr + 3)) << 24)
-                    | (((int) UNSAFE.getByte(addr + 2) & 0xff) << 16)
-                    | (((int) UNSAFE.getByte(addr + 1) & 0xff) << 8)
-                    | (((int) UNSAFE.getByte(addr) & 0xff));
+            return (UNSAFE.getByte(addr + 3) << 24)
+                    | ((UNSAFE.getByte(addr + 2) & 0xff) << 16)
+                    | ((UNSAFE.getByte(addr + 1) & 0xff) << 8)
+                    | ((UNSAFE.getByte(addr) & 0xff));
         }
     }
 
@@ -1705,11 +1705,14 @@ public abstract class GridUnsafe {
     /**
      * Returns {@code long} value.
      *
+     * <p>TODO: https://issues.apache.org/jira/browse/IGNITE-26177.
+     *
      * @param obj       Object.
      * @param addr      Address.
      * @param bigEndian Order of value bytes in memory. If {@code true} - big-endian, otherwise little-endian.
      * @return {@code long} value.
      */
+    @SuppressWarnings("PMD.UnnecessaryCast")
     private static long getLongByByte(Object obj, long addr, boolean bigEndian) {
         if (bigEndian) {
             return (((long) UNSAFE.getByte(obj, addr)) << 56)
@@ -1735,10 +1738,13 @@ public abstract class GridUnsafe {
     /**
      * Returns {@code long} value.
      *
+     * <p>https://issues.apache.org/jira/browse/IGNITE-26177
+     *
      * @param addr      Address.
      * @param bigEndian Order of value bytes in memory. If {@code true} - big-endian, otherwise little-endian.
      * @return {@code long} value.
      */
+    @SuppressWarnings("PMD.UnnecessaryCast")
     private static long getLongByByte(long addr, boolean bigEndian) {
         if (bigEndian) {
             return (((long) UNSAFE.getByte(addr)) << 56)
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/HashUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/util/HashUtils.java
index ac6c6208fe4..dbfb21e8379 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/HashUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/HashUtils.java
@@ -363,12 +363,15 @@ public class HashUtils {
     /**
      * Generates 64-bit hash from the byte array with the given offset, length and seed.
      *
+     * <p>https://issues.apache.org/jira/browse/IGNITE-26177
+     *
      * @param data   The input byte array.
      * @param offset The first element of array.
      * @param length The length of array.
      * @param seed   The initial seed value.
      * @return The 64-bit hash.
      */
+    @SuppressWarnings("PMD.UnnecessaryCast")
     private static long hashInternal(byte[] data, int offset, int length, long seed) {
         long h1 = seed;
         long h2 = seed;
@@ -478,12 +481,15 @@ public class HashUtils {
     /**
      * Generates 64-bit hash from the ByteBuffer with the given offset, length and seed.
      *
+     * <p>https://issues.apache.org/jira/browse/IGNITE-26177
+     *
      * @param data   The input ByteBuffer.
      * @param offset The first element of array.
      * @param length The length of array.
      * @param seed   The initial seed value.
      * @return The 64-bit hash.
      */
+    @SuppressWarnings("PMD.UnnecessaryCast")
     private static long hashInternal(ByteBuffer data, int offset, int length, long seed) {
         long h1 = seed;
         long h2 = seed;
@@ -601,10 +607,13 @@ public class HashUtils {
     /**
      * Gets the little-endian long from 8 bytes starting at the specified index.
      *
+     * <p>https://issues.apache.org/jira/browse/IGNITE-26177
+     *
      * @param data  The data.
      * @param index The index.
      * @return The little-endian long.
      */
+    @SuppressWarnings("PMD.UnnecessaryCast")
     private static long getLittleEndianLong(byte[] data, int index) {
         return (((long) data[index] & 0xff))
                 | (((long) data[index + 1] & 0xff) << 8)
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/VarIntUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/util/VarIntUtils.java
index 550cb567688..685fc77e442 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/VarIntUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/VarIntUtils.java
@@ -110,9 +110,12 @@ public class VarIntUtils {
     /**
      * Reads a varint from a buffer.
      *
+     * <p>https://issues.apache.org/jira/browse/IGNITE-26177
+     *
      * @param buf Buffer from which to read.
      * @return Long value that was encoded as a varint.
      */
+    @SuppressWarnings("PMD.UnnecessaryCast")
     public static long readVarInt(ByteBuffer buf) {
         long res = 0;
 
@@ -132,10 +135,13 @@ public class VarIntUtils {
     /**
      * Reads a varint from a byte buffer.
      *
+     * <p>https://issues.apache.org/jira/browse/IGNITE-26177
+     *
      * @param bytes Array from which to read.
      * @param off Offset to start reading from.
      * @return Long value that was encoded as a varint.
      */
+    @SuppressWarnings("PMD.UnnecessaryCast")
     public static long readVarInt(byte[] bytes, int off) {
         long res = 0;
 
@@ -156,9 +162,12 @@ public class VarIntUtils {
     /**
      * Reads a varint from an input.
      *
+     * <p>https://issues.apache.org/jira/browse/IGNITE-26177
+     *
      * @param in Input from which to read.
      * @return Long value that was encoded as a varint.
      */
+    @SuppressWarnings("PMD.UnnecessaryCast")
     public static long readVarInt(DataInput in) throws IOException {
         long res = 0;
 
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/io/IgniteUnsafeDataInput.java b/modules/core/src/main/java/org/apache/ignite/internal/util/io/IgniteUnsafeDataInput.java
index 1a1d1e53f78..cf8753a5679 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/io/IgniteUnsafeDataInput.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/io/IgniteUnsafeDataInput.java
@@ -765,7 +765,7 @@ public class IgniteUnsafeDataInput extends InputStream implements IgniteDataInpu
         while (utfLen > 0) {
             int avail = end - pos;
 
-            if (avail >= 3 || (long) avail == utfLen) {
+            if (avail >= 3 || avail == utfLen) {
                 utfLen -= readUtfSpan(sbuf, utfLen);
             } else {
                 // shift and refill buffer manually
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/tostring/IgniteToStringBuilderSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/tostring/IgniteToStringBuilderSelfTest.java
index 961791600e1..1d8bd147c21 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/tostring/IgniteToStringBuilderSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/tostring/IgniteToStringBuilderSelfTest.java
@@ -238,7 +238,7 @@ public class IgniteToStringBuilderSelfTest extends IgniteAbstractTest {
         int limit = 100;
 
         ArrayList[] arrOf = new ArrayList[limit + 1];
-        Arrays.fill(arrOf, new ArrayList());
+        Arrays.fill(arrOf, new ArrayList<>());
         ArrayList[] arr = Arrays.copyOf(arrOf, limit);
 
         arrOf[0].add(arrOf);
@@ -369,24 +369,23 @@ public class IgniteToStringBuilderSelfTest extends IgniteAbstractTest {
     }
 
     @Test
-    @SuppressWarnings({"rawtypes", "unchecked"})
     public void testToStringColAndMapLimitWithRecursion() {
         int limit = 100;
-        Map strMap = new TreeMap<>();
-        List strList = new ArrayList<>(limit + 1);
+        Map<String, String> strMap = new TreeMap<>();
+        List<String> strList = new ArrayList<>(limit + 1);
 
         TestClass1 testClass = new TestClass1();
         testClass.strMap = strMap;
         testClass.strListIncl = strList;
 
-        Map m = new TreeMap();
+        Map<String, Map<String, String>> m = new TreeMap<>();
         m.put("m", strMap);
 
-        List l = new ArrayList();
+        List<List<String>> l = new ArrayList<>();
         l.add(strList);
 
-        strMap.put("k0", m);
-        strList.add(l);
+        strMap.put("k0", m.toString());
+        strList.add(l.toString());
 
         for (int i = 1; i < limit; i++) {
             strMap.put("k" + i, "v");
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/util/CollectionUtilsTest.java b/modules/core/src/test/java/org/apache/ignite/internal/util/CollectionUtilsTest.java
index 735328082aa..ecf272a18f9 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/util/CollectionUtilsTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/util/CollectionUtilsTest.java
@@ -197,7 +197,9 @@ public class CollectionUtilsTest {
         assertEquals(List.of(1, 2, 3), collect(concat(List.of(List.of(1).iterator(), List.of(2, 3).iterator()))));
     }
 
+    // TODO: https://issues.apache.org/jira/browse/IGNITE-26177
     @Test
+    @SuppressWarnings("PMD.UnnecessaryCast")
     void testConcatList() {
         assertTrue(concat(new List[0]).isEmpty());
         assertTrue(concat((List<Object>[]) null).isEmpty());
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/util/IgniteConcurrentMultiPairQueueTest.java b/modules/core/src/test/java/org/apache/ignite/internal/util/IgniteConcurrentMultiPairQueueTest.java
index 515c77ed2c3..f1faa6f76ac 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/util/IgniteConcurrentMultiPairQueueTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/util/IgniteConcurrentMultiPairQueueTest.java
@@ -163,16 +163,16 @@ public class IgniteConcurrentMultiPairQueueTest {
 
         assertEquals(3, pairQueue.size());
 
-        assertTrue(pairQueue.next(new Result()));
+        assertTrue(pairQueue.next(new Result<>()));
         assertEquals(2, pairQueue.size());
 
-        assertTrue(pairQueue.next(new Result()));
+        assertTrue(pairQueue.next(new Result<>()));
         assertEquals(1, pairQueue.size());
 
-        assertTrue(pairQueue.next(new Result()));
+        assertTrue(pairQueue.next(new Result<>()));
         assertEquals(0, pairQueue.size());
 
-        assertFalse(pairQueue.next(new Result()));
+        assertFalse(pairQueue.next(new Result<>()));
         assertEquals(0, pairQueue.size());
     }
 }
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/util/PendingComparableValuesTrackerTest.java b/modules/core/src/test/java/org/apache/ignite/internal/util/PendingComparableValuesTrackerTest.java
index 7a1968b70f1..6df0fa96b4f 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/util/PendingComparableValuesTrackerTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/util/PendingComparableValuesTrackerTest.java
@@ -268,21 +268,19 @@ public class PendingComparableValuesTrackerTest {
         assertThat(tracker.waitFor(2), willThrowFast(TrackerClosedException.class));
     }
 
-    @SuppressWarnings({"rawtypes", "unchecked"}) // Because of test parametrization raw PendingComparableValuesTracker is used.
     private static Stream<PendingComparableValuesTracker> hybridTimestampTrackerGenerator() {
         HybridTimestamp ts = new HybridTimestamp(1, 0);
 
         return Stream.of(
-                new PendingComparableValuesTracker(ts),
-                new PendingIndependentComparableValuesTracker(ts)
+                new PendingComparableValuesTracker<>(ts),
+                new PendingIndependentComparableValuesTracker<>(ts)
         );
     }
 
-    @SuppressWarnings({"rawtypes", "unchecked"}) // Because of test parametrization raw PendingComparableValuesTracker is used.
     private static Stream<PendingComparableValuesTracker> intTrackerGenerator() {
         return Stream.of(
-                new PendingComparableValuesTracker(1),
-                new PendingIndependentComparableValuesTracker(1)
+                new PendingComparableValuesTracker<>(1),
+                new PendingIndependentComparableValuesTracker<>(1)
         );
     }
 }
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/util/io/IgniteTestIoUtils.java b/modules/core/src/test/java/org/apache/ignite/internal/util/io/IgniteTestIoUtils.java
index fc5c9c15578..f5d8e01d8cc 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/util/io/IgniteTestIoUtils.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/util/io/IgniteTestIoUtils.java
@@ -76,8 +76,8 @@ public final class IgniteTestIoUtils {
      * @param off Offset.
      */
     public static int getIntByByteLittleEndian(byte[] arr, int off) {
-        return ((int) arr[off] & 0xff) | ((int) arr[off + 1] & 0xff) << 8
-                | ((int) arr[off + 2] & 0xff) << 16 | ((int) arr[off + 3] & 0xff) << 24;
+        return (arr[off] & 0xff) | (arr[off + 1] & 0xff) << 8
+                | (arr[off + 2] & 0xff) << 16 | (arr[off + 3] & 0xff) << 24;
     }
 
     /**
@@ -92,9 +92,12 @@ public final class IgniteTestIoUtils {
     /**
      * Gets long value from byte array assuming that value stored in little-endian byte order.
      *
+     * <p>https://issues.apache.org/jira/browse/IGNITE-26177
+     *
      * @param arr Byte array.
      * @param off Offset.
      */
+    @SuppressWarnings("PMD.UnnecessaryCast")
     public static long getLongByByteLittleEndian(byte[] arr, int off) {
         return ((long) arr[off] & 0xff) | ((long) arr[off + 1] & 0xff) << 8 | ((long) arr[off + 2] & 0xff) << 16
                 | ((long) arr[off + 3] & 0xff) << 24 | ((long) arr[off + 4] & 0xff) << 32 | ((long) arr[off + 5] & 0xff) << 40
diff --git a/modules/eventlog/src/main/java/org/apache/ignite/internal/eventlog/ser/JacksonBasedJsonSerializer.java b/modules/eventlog/src/main/java/org/apache/ignite/internal/eventlog/ser/JacksonBasedJsonSerializer.java
index 9b5ce3eef30..7d398232b6a 100644
--- a/modules/eventlog/src/main/java/org/apache/ignite/internal/eventlog/ser/JacksonBasedJsonSerializer.java
+++ b/modules/eventlog/src/main/java/org/apache/ignite/internal/eventlog/ser/JacksonBasedJsonSerializer.java
@@ -29,6 +29,7 @@ import org.apache.ignite.internal.eventlog.api.Event;
 import org.apache.ignite.internal.eventlog.event.EventUser;
 import org.apache.ignite.internal.lang.IgniteInternalException;
 import org.apache.ignite.lang.ErrorGroups.Common;
+import org.jetbrains.annotations.Nullable;
 
 /** Serializes events to JSON. Uses provided json serializer to serialize events of specified class. */
 public class JacksonBasedJsonSerializer implements EventSerializer {
@@ -65,24 +66,16 @@ public class JacksonBasedJsonSerializer implements EventSerializer {
     }
 
     private static class EventUserJacksonSerializer extends StdSerializer<EventUser> {
-        private EventUser value;
-        private JsonGenerator jgen;
-        private SerializerProvider provider;
-
         EventUserJacksonSerializer() {
             this(null);
         }
 
-        EventUserJacksonSerializer(Class<EventUser> e) {
+        EventUserJacksonSerializer(@Nullable Class<EventUser> e) {
             super(e);
         }
 
         @Override
         public void serialize(EventUser value, JsonGenerator jgen, SerializerProvider provider) throws IOException {
-            this.value = value;
-            this.jgen = jgen;
-            this.provider = provider;
-
             jgen.writeStartObject();
             jgen.writeStringField("username", value.username());
             jgen.writeStringField("authenticationProvider", value.authenticationProvider());
diff --git a/modules/file-transfer/src/main/java/org/apache/ignite/internal/network/file/messages/FileHeader.java b/modules/file-transfer/src/main/java/org/apache/ignite/internal/network/file/messages/FileHeader.java
index e95fe632cc6..5205d76c558 100644
--- a/modules/file-transfer/src/main/java/org/apache/ignite/internal/network/file/messages/FileHeader.java
+++ b/modules/file-transfer/src/main/java/org/apache/ignite/internal/network/file/messages/FileHeader.java
@@ -62,7 +62,7 @@ public interface FileHeader extends NetworkMessage {
      * @return List of file headers.
      */
     static List<FileHeader> fromPaths(FileTransferFactory factory, List<Path> paths) {
-        return paths.stream().map(path -> FileHeader.fromPath(factory, path))
+        return paths.stream().map(path -> fromPath(factory, path))
                 .collect(toList());
     }
 }
diff --git a/modules/jdbc/src/main/java/org/apache/ignite/internal/jdbc/JdbcConnection.java b/modules/jdbc/src/main/java/org/apache/ignite/internal/jdbc/JdbcConnection.java
index c0b405275ed..f87e0faa4db 100644
--- a/modules/jdbc/src/main/java/org/apache/ignite/internal/jdbc/JdbcConnection.java
+++ b/modules/jdbc/src/main/java/org/apache/ignite/internal/jdbc/JdbcConnection.java
@@ -165,7 +165,7 @@ public class JdbcConnection implements Connection {
             throw new SQLException("Connection initialization canceled.", e);
         }
 
-        txIsolation = Connection.TRANSACTION_NONE;
+        txIsolation = TRANSACTION_NONE;
 
         schema = normalizeSchema(connProps.getSchema());
 
@@ -516,11 +516,11 @@ public class JdbcConnection implements Connection {
         ensureNotClosed();
 
         switch (level) {
-            case Connection.TRANSACTION_READ_UNCOMMITTED:
-            case Connection.TRANSACTION_READ_COMMITTED:
-            case Connection.TRANSACTION_REPEATABLE_READ:
-            case Connection.TRANSACTION_SERIALIZABLE:
-            case Connection.TRANSACTION_NONE:
+            case TRANSACTION_READ_UNCOMMITTED:
+            case TRANSACTION_READ_COMMITTED:
+            case TRANSACTION_REPEATABLE_READ:
+            case TRANSACTION_SERIALIZABLE:
+            case TRANSACTION_NONE:
                 break;
 
             default:
diff --git a/modules/jdbc/src/main/java/org/apache/ignite/internal/jdbc/JdbcDatabaseMetadata.java b/modules/jdbc/src/main/java/org/apache/ignite/internal/jdbc/JdbcDatabaseMetadata.java
index 9f437a50597..2f6e12e1790 100644
--- a/modules/jdbc/src/main/java/org/apache/ignite/internal/jdbc/JdbcDatabaseMetadata.java
+++ b/modules/jdbc/src/main/java/org/apache/ignite/internal/jdbc/JdbcDatabaseMetadata.java
@@ -1540,7 +1540,7 @@ public class JdbcDatabaseMetadata implements DatabaseMetaData {
     /** {@inheritDoc} */
     @Override
     public int getSQLStateType() {
-        return DatabaseMetaData.sqlStateSQL99;
+        return sqlStateSQL99;
     }
 
     /** {@inheritDoc} */
diff --git a/modules/jdbc/src/main/java/org/apache/ignite/internal/jdbc/JdbcResultSet.java b/modules/jdbc/src/main/java/org/apache/ignite/internal/jdbc/JdbcResultSet.java
index b22a85859e9..053c169a4aa 100644
--- a/modules/jdbc/src/main/java/org/apache/ignite/internal/jdbc/JdbcResultSet.java
+++ b/modules/jdbc/src/main/java/org/apache/ignite/internal/jdbc/JdbcResultSet.java
@@ -609,7 +609,7 @@ public class JdbcResultSet implements ResultSet {
         if (val instanceof Number) {
             return ((Number) val).floatValue();
         } else if (cls == Boolean.class) {
-            return (float) ((Boolean) val ? 1 : 0);
+            return ((Boolean) val ? 1 : 0);
         } else if (cls == String.class || cls == Character.class) {
             try {
                 return Float.parseFloat(val.toString());
diff --git a/modules/jdbc/src/main/java/org/apache/ignite/internal/jdbc/JdbcStatement.java b/modules/jdbc/src/main/java/org/apache/ignite/internal/jdbc/JdbcStatement.java
index e5b2507a58a..a130955c517 100644
--- a/modules/jdbc/src/main/java/org/apache/ignite/internal/jdbc/JdbcStatement.java
+++ b/modules/jdbc/src/main/java/org/apache/ignite/internal/jdbc/JdbcStatement.java
@@ -199,10 +199,10 @@ public class JdbcStatement implements Statement {
         ensureNotClosed();
 
         switch (autoGeneratedKeys) {
-            case Statement.RETURN_GENERATED_KEYS:
+            case RETURN_GENERATED_KEYS:
                 throw new SQLFeatureNotSupportedException("Auto-generated columns are not supported.");
 
-            case Statement.NO_GENERATED_KEYS:
+            case NO_GENERATED_KEYS:
                 return executeUpdate(sql);
 
             default:
@@ -383,10 +383,10 @@ public class JdbcStatement implements Statement {
         ensureNotClosed();
 
         switch (autoGeneratedKeys) {
-            case Statement.RETURN_GENERATED_KEYS:
+            case RETURN_GENERATED_KEYS:
                 throw new SQLFeatureNotSupportedException("Auto-generated columns are not supported.");
 
-            case Statement.NO_GENERATED_KEYS:
+            case NO_GENERATED_KEYS:
                 return execute(sql);
 
             default:
diff --git a/modules/jdbc/src/main/java/org/apache/ignite/jdbc/IgniteJdbcDriver.java b/modules/jdbc/src/main/java/org/apache/ignite/jdbc/IgniteJdbcDriver.java
index 95ff8859902..ef605a95d89 100644
--- a/modules/jdbc/src/main/java/org/apache/ignite/jdbc/IgniteJdbcDriver.java
+++ b/modules/jdbc/src/main/java/org/apache/ignite/jdbc/IgniteJdbcDriver.java
@@ -239,7 +239,7 @@ public class IgniteJdbcDriver implements Driver {
         try {
             Driver registeredDriver = new IgniteJdbcDriver();
             DriverManager.registerDriver(registeredDriver);
-            IgniteJdbcDriver.instance = registeredDriver;
+            instance = registeredDriver;
         } catch (SQLException e) {
             throw new RuntimeException("Failed to register Ignite JDBC driver.", e);
         }
diff --git a/modules/marshaller-common/src/test/java/org/apache/ignite/internal/marshaller/FieldAccessorTest.java b/modules/marshaller-common/src/test/java/org/apache/ignite/internal/marshaller/FieldAccessorTest.java
index 4272d2ffee0..8fb1a74c077 100644
--- a/modules/marshaller-common/src/test/java/org/apache/ignite/internal/marshaller/FieldAccessorTest.java
+++ b/modules/marshaller-common/src/test/java/org/apache/ignite/internal/marshaller/FieldAccessorTest.java
@@ -255,7 +255,7 @@ public class FieldAccessorTest extends BaseIgniteAbstractTest {
         IdentityAccessor accessor = FieldAccessor.createIdentityAccessor(
                 new MarshallerColumn("val", BYTE_ARR),
                 0,
-                new SerializingConverter<TestSimpleObject>()
+                new SerializingConverter<>()
         );
 
         Pair<MarshallerWriter, MarshallerReader> mocks = createMocks();
diff --git a/modules/metastorage/src/main/java/org/apache/ignite/internal/metastorage/server/persistence/RocksDbKeyValueStorage.java b/modules/metastorage/src/main/java/org/apache/ignite/internal/metastorage/server/persistence/RocksDbKeyValueStorage.java
index 53fa1275b59..f1467185c7f 100644
--- a/modules/metastorage/src/main/java/org/apache/ignite/internal/metastorage/server/persistence/RocksDbKeyValueStorage.java
+++ b/modules/metastorage/src/main/java/org/apache/ignite/internal/metastorage/server/persistence/RocksDbKeyValueStorage.java
@@ -542,14 +542,14 @@ public class RocksDbKeyValueStorage extends AbstractKeyValueStorage {
 
     @Override
     public Entry get(byte[] key) {
-        try (TrackingToken token = readOperationForCompactionTracker.track(LATEST_REVISION, revSupplier, compactedRevSupplier)) {
+        try (TrackingToken unused = readOperationForCompactionTracker.track(LATEST_REVISION, revSupplier, compactedRevSupplier)) {
             return super.get(key);
         }
     }
 
     @Override
     public List<Entry> getAll(List<byte[]> keys) {
-        try (TrackingToken token = readOperationForCompactionTracker.track(LATEST_REVISION, revSupplier, compactedRevSupplier)) {
+        try (TrackingToken unused = readOperationForCompactionTracker.track(LATEST_REVISION, revSupplier, compactedRevSupplier)) {
             return super.getAll(keys);
         }
     }
diff --git a/modules/metrics/src/main/java/org/apache/ignite/internal/metrics/HitRateMetric.java b/modules/metrics/src/main/java/org/apache/ignite/internal/metrics/HitRateMetric.java
index 1c409bb2a6d..2c00be69e3c 100644
--- a/modules/metrics/src/main/java/org/apache/ignite/internal/metrics/HitRateMetric.java
+++ b/modules/metrics/src/main/java/org/apache/ignite/internal/metrics/HitRateMetric.java
@@ -166,9 +166,12 @@ public class HitRateMetric extends AbstractMetric implements LongMetric {
     /**
      * Create a zero value with tag byte.
      *
+     * <p>https://issues.apache.org/jira/browse/IGNITE-26177
+     *
      * @param tag Tag byte.
      * @return 0L with given tag byte.
      */
+    @SuppressWarnings("PMD.UnnecessaryCast")
     private static long taggedLongZero(byte tag) {
         return ((long) tag << TAG_OFFSET);
     }
diff --git a/modules/network-api/src/main/java/org/apache/ignite/internal/network/MapChannelTypeRegistry.java b/modules/network-api/src/main/java/org/apache/ignite/internal/network/MapChannelTypeRegistry.java
index 2b41d2a6e0b..b573bb26fd7 100644
--- a/modules/network-api/src/main/java/org/apache/ignite/internal/network/MapChannelTypeRegistry.java
+++ b/modules/network-api/src/main/java/org/apache/ignite/internal/network/MapChannelTypeRegistry.java
@@ -30,6 +30,8 @@ import org.apache.ignite.internal.util.CollectionUtils;
 class MapChannelTypeRegistry implements ChannelTypeRegistry {
     private final Int2ObjectMap<ChannelType> map;
 
+    // TODO: https://issues.apache.org/jira/browse/IGNITE-26177
+    @SuppressWarnings("PMD.UnnecessaryCast")
     MapChannelTypeRegistry(ChannelType... channelTypes) {
         assert !nullOrEmpty(channelTypes);
 
diff --git a/modules/network/src/main/java/org/apache/ignite/internal/network/MapStripedExecutorByChannelTypeId.java b/modules/network/src/main/java/org/apache/ignite/internal/network/MapStripedExecutorByChannelTypeId.java
index 791dc55784a..5579928ca87 100644
--- a/modules/network/src/main/java/org/apache/ignite/internal/network/MapStripedExecutorByChannelTypeId.java
+++ b/modules/network/src/main/java/org/apache/ignite/internal/network/MapStripedExecutorByChannelTypeId.java
@@ -28,6 +28,8 @@ import org.apache.ignite.internal.thread.StripedExecutor;
 class MapStripedExecutorByChannelTypeId implements StripedExecutorByChannelTypeId {
     private final Int2ObjectMap<StripedExecutor> map;
 
+    // TODO: https://issues.apache.org/jira/browse/IGNITE-26177
+    @SuppressWarnings("PMD.UnnecessaryCast")
     MapStripedExecutorByChannelTypeId(CriticalStripedThreadPoolExecutorFactory factory, ChannelType... channelTypes) {
         map = Arrays.stream(channelTypes)
                 .collect(toIntMapCollector(
diff --git a/modules/network/src/main/java/org/apache/ignite/internal/network/direct/stream/DirectByteBufferStreamImplV1.java b/modules/network/src/main/java/org/apache/ignite/internal/network/direct/stream/DirectByteBufferStreamImplV1.java
index de8844b1ccf..d1832d150ac 100644
--- a/modules/network/src/main/java/org/apache/ignite/internal/network/direct/stream/DirectByteBufferStreamImplV1.java
+++ b/modules/network/src/main/java/org/apache/ignite/internal/network/direct/stream/DirectByteBufferStreamImplV1.java
@@ -1084,8 +1084,9 @@ public class DirectByteBufferStreamImplV1 implements DirectByteBufferStream {
         }
     }
 
-    /** {@inheritDoc} */
+    // TODO: https://issues.apache.org/jira/browse/IGNITE-26177
     @Override
+    @SuppressWarnings("PMD.UnnecessaryCast")
     public short readShort() {
         lastFinished = false;
 
@@ -1126,8 +1127,9 @@ public class DirectByteBufferStreamImplV1 implements DirectByteBufferStream {
         return readBoxedValue(this::readShort);
     }
 
-    /** {@inheritDoc} */
+    // TODO: https://issues.apache.org/jira/browse/IGNITE-26177
     @Override
+    @SuppressWarnings("PMD.UnnecessaryCast")
     public int readInt() {
         lastFinished = false;
 
@@ -1202,8 +1204,9 @@ public class DirectByteBufferStreamImplV1 implements DirectByteBufferStream {
         return readBoxedValue(this::readInt);
     }
 
-    /** {@inheritDoc} */
+    // TODO: https://issues.apache.org/jira/browse/IGNITE-26177
     @Override
+    @SuppressWarnings("PMD.UnnecessaryCast")
     public long readLong() {
         lastFinished = false;
 
diff --git a/modules/network/src/main/java/org/apache/ignite/internal/network/serialization/BuiltInType.java b/modules/network/src/main/java/org/apache/ignite/internal/network/serialization/BuiltInType.java
index ac6606cc8f2..3b0d86aa1c6 100644
--- a/modules/network/src/main/java/org/apache/ignite/internal/network/serialization/BuiltInType.java
+++ b/modules/network/src/main/java/org/apache/ignite/internal/network/serialization/BuiltInType.java
@@ -98,7 +98,7 @@ public enum BuiltInType {
 
     static {
         Int2ObjectMap<BuiltInType> map = new Int2ObjectOpenHashMap<>();
-        for (BuiltInType type : BuiltInType.values()) {
+        for (BuiltInType type : values()) {
             map.put(type.descriptorId, type);
         }
         descriptorIdToValues = Int2ObjectMaps.unmodifiable(map);
@@ -108,7 +108,7 @@ public enum BuiltInType {
 
     static {
         Map<Class<?>, BuiltInType> map = new HashMap<>();
-        for (BuiltInType type : BuiltInType.values()) {
+        for (BuiltInType type : values()) {
             map.put(type.clazz, type);
         }
         classToValues = Map.copyOf(map);
diff --git a/modules/network/src/main/java/org/apache/ignite/internal/network/serialization/SerializationType.java b/modules/network/src/main/java/org/apache/ignite/internal/network/serialization/SerializationType.java
index 6cb7e102a29..53c9b5991ff 100644
--- a/modules/network/src/main/java/org/apache/ignite/internal/network/serialization/SerializationType.java
+++ b/modules/network/src/main/java/org/apache/ignite/internal/network/serialization/SerializationType.java
@@ -49,7 +49,7 @@ public enum SerializationType {
      * @return Serialization type.
      */
     public static SerializationType getByValue(int value) {
-        for (SerializationType serializationType : SerializationType.values()) {
+        for (SerializationType serializationType : values()) {
             if (serializationType.value == value) {
                 return serializationType;
             }
diff --git a/modules/network/src/main/java/org/apache/ignite/internal/network/serialization/marshal/LittleEndianBits.java b/modules/network/src/main/java/org/apache/ignite/internal/network/serialization/marshal/LittleEndianBits.java
index 4e9df5d342e..8904ec12308 100644
--- a/modules/network/src/main/java/org/apache/ignite/internal/network/serialization/marshal/LittleEndianBits.java
+++ b/modules/network/src/main/java/org/apache/ignite/internal/network/serialization/marshal/LittleEndianBits.java
@@ -47,6 +47,8 @@ class LittleEndianBits {
         return Float.intBitsToFloat(getInt(b, off));
     }
 
+    // TODO: https://issues.apache.org/jira/browse/IGNITE-26177
+    @SuppressWarnings("PMD.UnnecessaryCast")
     static long getLong(byte[] b, int off) {
         return ((b[off] & 0xFFL))
                 + ((b[off + 1] & 0xFFL) << 8)
diff --git a/modules/network/src/test/java/org/apache/ignite/internal/network/DefaultMessagingServiceTest.java b/modules/network/src/test/java/org/apache/ignite/internal/network/DefaultMessagingServiceTest.java
index a8690bcd3d4..68baac178c6 100644
--- a/modules/network/src/test/java/org/apache/ignite/internal/network/DefaultMessagingServiceTest.java
+++ b/modules/network/src/test/java/org/apache/ignite/internal/network/DefaultMessagingServiceTest.java
@@ -509,7 +509,7 @@ class DefaultMessagingServiceTest extends BaseIgniteAbstractTest {
     void sendByClusterNodeFailsIfActualNodeIdIsDifferent(SendByClusterNodeOperation operation) throws Exception {
         try (
                 Services senderServices = createMessagingService(senderNode, senderNetworkConfig);
-                Services receiverServices = createMessagingService(receiverNode, receiverNetworkConfig)
+                Services unused = createMessagingService(receiverNode, receiverNetworkConfig)
         ) {
             ClusterNode receiverWithAnotherId = copyWithDifferentId();
 
diff --git a/modules/network/src/test/java/org/apache/ignite/internal/network/SerializationMicroBenchmark.java b/modules/network/src/test/java/org/apache/ignite/internal/network/SerializationMicroBenchmark.java
index 5cef63c758d..fc9eac354de 100644
--- a/modules/network/src/test/java/org/apache/ignite/internal/network/SerializationMicroBenchmark.java
+++ b/modules/network/src/test/java/org/apache/ignite/internal/network/SerializationMicroBenchmark.java
@@ -200,17 +200,17 @@ public class SerializationMicroBenchmark {
 
     @Benchmark
     public Object deserialization_01_small_jdk() {
-        return deserializeWithJava(SerializationMicroBenchmark.smallSerializedWithJava);
+        return deserializeWithJava(smallSerializedWithJava);
     }
 
     @Benchmark
     public Object deserialization_11_medium_jdk() {
-        return deserializeWithJava(SerializationMicroBenchmark.mediumSerializedWithJava);
+        return deserializeWithJava(mediumSerializedWithJava);
     }
 
     @Benchmark
     public Object deserialization_21_large_jdk() {
-        return deserializeWithJava(SerializationMicroBenchmark.largeSerializedWithJava);
+        return deserializeWithJava(largeSerializedWithJava);
     }
 
     private Object deserializeWithJava(byte[] serialized) {
@@ -287,6 +287,7 @@ public class SerializationMicroBenchmark {
         }
     }
 
+    @SuppressWarnings("PMD.UnusedPrivateField")
     static class TestClass implements Serializable {
 
         private int foo;
diff --git a/modules/network/src/test/java/org/apache/ignite/internal/network/UosProfilerTarget.java b/modules/network/src/test/java/org/apache/ignite/internal/network/UosProfilerTarget.java
index 5dfbdfa3114..ffcb881d8d5 100644
--- a/modules/network/src/test/java/org/apache/ignite/internal/network/UosProfilerTarget.java
+++ b/modules/network/src/test/java/org/apache/ignite/internal/network/UosProfilerTarget.java
@@ -66,7 +66,7 @@ public class UosProfilerTarget {
         int accumulatedCode = 1;
         int count = (obj instanceof TestClass) ? 30_000_000 : 100_000;
         for (int i = 0; i < count; i++) {
-            byte[] bytes = doMarshal(UosProfilerTarget.obj);
+            byte[] bytes = doMarshal(obj);
             int code = Arrays.hashCode(bytes);
             accumulatedCode ^= code;
         }
diff --git a/modules/network/src/test/java/org/apache/ignite/internal/network/serialization/marshal/DefaultUserObjectMarshallerWithSerializableOverrideStreamsTest.java b/modules/network/src/test/java/org/apache/ignite/internal/network/serialization/marshal/DefaultUserObjectMarshallerWithSerializableOverrideStreamsTest.java
index 0bb167b60c2..cb6f97fcaf3 100644
--- a/modules/network/src/test/java/org/apache/ignite/internal/network/serialization/marshal/DefaultUserObjectMarshallerWithSerializableOverrideStreamsTest.java
+++ b/modules/network/src/test/java/org/apache/ignite/internal/network/serialization/marshal/DefaultUserObjectMarshallerWithSerializableOverrideStreamsTest.java
@@ -339,11 +339,11 @@ class DefaultUserObjectMarshallerWithSerializableOverrideStreamsTest {
     @Test
     void readFieldsReadsAllPrimitiveTypesAndObjectsWrittenWithDefaultMarshalling() throws Exception {
         WithReadFields original = new WithReadFields();
-        original.byteVal = (byte) 101;
-        original.shortVal = (short) 102;
+        original.byteVal = 101;
+        original.shortVal = 102;
         original.intVal = 103;
         original.longVal = 104;
-        original.floatVal = (float) 105;
+        original.floatVal = 105;
         original.doubleVal = 106;
         original.charVal = 'z';
         original.booleanVal = true;
diff --git a/modules/network/src/test/java/org/apache/ignite/internal/network/serialization/marshal/DefaultUserObjectMarshallerWithSerializableTest.java b/modules/network/src/test/java/org/apache/ignite/internal/network/serialization/marshal/DefaultUserObjectMarshallerWithSerializableTest.java
index 88167ffcdb3..de6a1954770 100644
--- a/modules/network/src/test/java/org/apache/ignite/internal/network/serialization/marshal/DefaultUserObjectMarshallerWithSerializableTest.java
+++ b/modules/network/src/test/java/org/apache/ignite/internal/network/serialization/marshal/DefaultUserObjectMarshallerWithSerializableTest.java
@@ -184,7 +184,9 @@ class DefaultUserObjectMarshallerWithSerializableTest {
         assertThat(result.value, is(0));
     }
 
+    // TODO: https://issues.apache.org/jira/browse/IGNITE-26177
     @Test
+    @SuppressWarnings("PMD.UnnecessaryCast")
     void supportsWriteObjectAndReadObjectInHierarchy() throws Exception {
         SubclassWithWriteReadOverride result = marshalAndUnmarshalNonNull(new SubclassWithWriteReadOverride(42));
 
diff --git a/modules/page-memory/src/main/java/org/apache/ignite/internal/pagememory/io/DataPageIo.java b/modules/page-memory/src/main/java/org/apache/ignite/internal/pagememory/io/DataPageIo.java
index c8be9bfa7cf..c24cd8e099e 100644
--- a/modules/page-memory/src/main/java/org/apache/ignite/internal/pagememory/io/DataPageIo.java
+++ b/modules/page-memory/src/main/java/org/apache/ignite/internal/pagememory/io/DataPageIo.java
@@ -513,7 +513,7 @@ public class DataPageIo extends PageIo {
 
         boolean valid = directCnt >= indirectCnt;
 
-        b.appendHex(PageIo.getPageId(pageAddr)).app(" [");
+        b.appendHex(getPageId(pageAddr)).app(" [");
 
         int entriesSize = 0;
 
diff --git a/modules/page-memory/src/test/java/org/apache/ignite/internal/pagememory/persistence/store/FilePageStoreTest.java b/modules/page-memory/src/test/java/org/apache/ignite/internal/pagememory/persistence/store/FilePageStoreTest.java
index d281cbad71b..ce89c917505 100644
--- a/modules/page-memory/src/test/java/org/apache/ignite/internal/pagememory/persistence/store/FilePageStoreTest.java
+++ b/modules/page-memory/src/test/java/org/apache/ignite/internal/pagememory/persistence/store/FilePageStoreTest.java
@@ -169,7 +169,7 @@ public class FilePageStoreTest extends BaseIgniteAbstractTest {
         try (FilePageStore filePageStore = createFilePageStore(workDir.resolve("test"))) {
             int[] pageIndexes = arr(0, 1, 2);
 
-            Supplier<int[]> pageIndexesSupplier = spy(new Supplier<int[]>() {
+            Supplier<int[]> pageIndexesSupplier = spy(new Supplier<>() {
                 /** {@inheritDoc} */
                 @Override
                 public int[] get() {
@@ -177,7 +177,7 @@ public class FilePageStoreTest extends BaseIgniteAbstractTest {
                 }
             });
 
-            IntFunction<Path> deltaFilePathFunction = spy(new IntFunction<Path>() {
+            IntFunction<Path> deltaFilePathFunction = spy(new IntFunction<>() {
                 /** {@inheritDoc} */
                 @Override
                 public Path apply(int index) {
diff --git a/modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/marshaller/PartitionCommandsMarshallerImpl.java b/modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/marshaller/PartitionCommandsMarshallerImpl.java
index 7d7e704a28f..03dc92744bb 100644
--- a/modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/marshaller/PartitionCommandsMarshallerImpl.java
+++ b/modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/marshaller/PartitionCommandsMarshallerImpl.java
@@ -42,7 +42,7 @@ public class PartitionCommandsMarshallerImpl extends OptimizedMarshaller impleme
     protected void beforeWriteMessage(Object o, ByteBuffer buffer) {
         int requiredCatalogVersion = o instanceof CatalogVersionAware
                 ? ((CatalogVersionAware) o).requiredCatalogVersion()
-                : PartitionCommandsMarshaller.NO_VERSION_REQUIRED;
+                : NO_VERSION_REQUIRED;
 
         stream.setBuffer(buffer);
         // We need fixed values here to know the offset for binary patcher.
diff --git a/modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/network/replication/RequestType.java b/modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/network/replication/RequestType.java
index 6a9debf4983..094a9a31acb 100644
--- a/modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/network/replication/RequestType.java
+++ b/modules/partition-replicator/src/main/java/org/apache/ignite/internal/partition/replicator/network/replication/RequestType.java
@@ -69,9 +69,6 @@ public enum RequestType {
         return requestTypeId;
     }
 
-    /** Cached array with all enum values. */
-    private static final RequestType[] VALUES = values();
-
     /**
      * Returns {@code true} if the operation is an RW read.
      */
diff --git a/modules/raft/src/main/java/org/apache/ignite/internal/raft/server/impl/RaftServiceEventInterceptor.java b/modules/raft/src/main/java/org/apache/ignite/internal/raft/server/impl/RaftServiceEventInterceptor.java
index f7d257c4c4d..d67e2da9a58 100644
--- a/modules/raft/src/main/java/org/apache/ignite/internal/raft/server/impl/RaftServiceEventInterceptor.java
+++ b/modules/raft/src/main/java/org/apache/ignite/internal/raft/server/impl/RaftServiceEventInterceptor.java
@@ -129,7 +129,7 @@ public class RaftServiceEventInterceptor {
      * @param term Term.
      */
     public void onLeaderElected(ReplicationGroupId groupId, long term) {
-        HashSet<Consumer<Long>> actionsToInvoke = new HashSet();
+        HashSet<Consumer<Long>> actionsToInvoke = new HashSet<>();
 
         subscriptions.computeIfPresent(groupId, (id, actions) -> {
             actionsToInvoke.addAll(actions);
diff --git a/modules/raft/src/test/java/org/apache/ignite/disruptor/StripedDisruptorTest.java b/modules/raft/src/test/java/org/apache/ignite/disruptor/StripedDisruptorTest.java
index 0de2a4993c3..407882002c9 100644
--- a/modules/raft/src/test/java/org/apache/ignite/disruptor/StripedDisruptorTest.java
+++ b/modules/raft/src/test/java/org/apache/ignite/disruptor/StripedDisruptorTest.java
@@ -331,7 +331,9 @@ public class StripedDisruptorTest extends IgniteAbstractTest {
         }
     }
 
+    // TODO: https://issues.apache.org/jira/browse/IGNITE-26177
     @Test
+    @SuppressWarnings("PMD.UnnecessaryCast")
     public void testConcurrentSubscribe() throws Exception {
         Random random = new Random();
 
diff --git a/modules/schema/src/test/java/org/apache/ignite/internal/schema/marshaller/RecordMarshallerValidationsTest.java b/modules/schema/src/test/java/org/apache/ignite/internal/schema/marshaller/RecordMarshallerValidationsTest.java
index 948fad2f2b2..6517eae94c7 100644
--- a/modules/schema/src/test/java/org/apache/ignite/internal/schema/marshaller/RecordMarshallerValidationsTest.java
+++ b/modules/schema/src/test/java/org/apache/ignite/internal/schema/marshaller/RecordMarshallerValidationsTest.java
@@ -225,6 +225,7 @@ public class RecordMarshallerValidationsTest {
         }
     }
 
+    @SuppressWarnings("PMD.UnusedPrivateField")
     private static class TestK1K2V1 {
         private int k1;
         private int k2;
@@ -241,6 +242,7 @@ public class RecordMarshallerValidationsTest {
         }
     }
 
+    @SuppressWarnings("PMD.UnusedPrivateField")
     private static class TestK2V1 {
         private int k2;
         private String v1;
diff --git a/modules/spring/spring-data-ignite/src/test/java/org/apache/ignite/data/repository/Person.java b/modules/spring/spring-data-ignite/src/test/java/org/apache/ignite/data/repository/Person.java
index 3630bbeefcd..609d0224431 100644
--- a/modules/spring/spring-data-ignite/src/test/java/org/apache/ignite/data/repository/Person.java
+++ b/modules/spring/spring-data-ignite/src/test/java/org/apache/ignite/data/repository/Person.java
@@ -53,12 +53,7 @@ public class Person implements Persistable<Long> {
         this.name = name;
         this.direction = Direction.LEFT;
         this.flag = false;
-        this.ref = new AggregateReference<Person, Long>() {
-            @Override
-            public Long getId() {
-                return 0L;
-            }
-        };
+        this.ref = () -> 0L;
     }
 
     @Override
diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/exp/ExpressionFactoryImpl.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/exp/ExpressionFactoryImpl.java
index ebfcfece4f0..8f1fd570304 100644
--- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/exp/ExpressionFactoryImpl.java
+++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/exp/ExpressionFactoryImpl.java
@@ -200,8 +200,7 @@ public class ExpressionFactoryImpl<RowT> implements ExpressionFactory<RowT> {
                 continue;
             }
 
-            b.append(':');
-            b.append(node.getType().getFullTypeString());
+            b.append(':').append(node.getType().getFullTypeString());
 
             new RexShuttle() {
                 @Override
diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/exp/IgniteSqlFunctions.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/exp/IgniteSqlFunctions.java
index 45f784a5942..dd7f8300eaa 100644
--- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/exp/IgniteSqlFunctions.java
+++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/exp/IgniteSqlFunctions.java
@@ -101,7 +101,7 @@ public class IgniteSqlFunctions {
 
     /** SQL {@code ROUND} operator applied to byte values. */
     public static byte sround(byte b0) {
-        return (byte) sround(b0, 0);
+        return sround(b0, 0);
     }
 
     /** SQL {@code ROUND} operator applied to byte values. */
@@ -194,7 +194,7 @@ public class IgniteSqlFunctions {
 
     /** SQL {@code TRUNCATE} operator applied to byte values. */
     public static byte struncate(byte b0) {
-        return (byte) struncate(b0, 0);
+        return struncate(b0, 0);
     }
 
     /** SQL {@code TRUNCATE} operator applied to byte values. */
diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/exp/RexExecutorImpl.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/exp/RexExecutorImpl.java
index 172b15ad7ab..15dff510b02 100644
--- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/exp/RexExecutorImpl.java
+++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/exp/RexExecutorImpl.java
@@ -137,9 +137,7 @@ public class RexExecutorImpl implements RexExecutor {
             List<RexNode> exps,
             RelDataType rowType
     ) {
-        final JavaTypeFactoryImpl typeFactory =
-                new JavaTypeFactoryImpl(rexBuilder.getTypeFactory().getTypeSystem());
-        final RexToLixTranslator.InputGetter getter = new DataContextInputGetter(rowType, typeFactory);
+        final RexToLixTranslator.InputGetter getter = new DataContextInputGetter(rowType);
         final String code = compile(rexBuilder, exps, getter, rowType);
 
         return new RexExecutable(code, "generated Rex code");
@@ -172,18 +170,11 @@ public class RexExecutorImpl implements RexExecutor {
      * <code>{@link org.apache.calcite.DataContext#get}("inputRecord")</code>.
      */
     private static class DataContextInputGetter implements RexToLixTranslator.InputGetter {
-        /** Type factory. */
-        private final RelDataTypeFactory typeFactory;
-
         /** Row type. */
         private final RelDataType rowType;
 
-        DataContextInputGetter(
-                RelDataType rowType,
-                RelDataTypeFactory typeFactory
-        ) {
+        DataContextInputGetter(RelDataType rowType) {
             this.rowType = rowType;
-            this.typeFactory = typeFactory;
         }
 
         /** {@inheritDoc} */
diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/exp/agg/AccumulatorsFactory.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/exp/agg/AccumulatorsFactory.java
index 7f28df0fbb9..39386c6885a 100644
--- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/exp/agg/AccumulatorsFactory.java
+++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/exp/agg/AccumulatorsFactory.java
@@ -229,7 +229,7 @@ public class AccumulatorsFactory<RowT> {
             List<Function<Object, Object>> casts =
                     Commons.transform(Pair.zip(inTypes, outTypes), AccumulatorsFactory::cast);
 
-            return new Function<Object[], Object[]>() {
+            return new Function<>() {
                 @Override
                 public Object[] apply(Object[] args) {
                     for (int i = 0; i < args.length; i++) {
diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/mapping/FragmentPrinter.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/mapping/FragmentPrinter.java
index 747a16f2636..56b4b31880d 100644
--- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/mapping/FragmentPrinter.java
+++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/mapping/FragmentPrinter.java
@@ -224,9 +224,7 @@ public final class FragmentPrinter {
         void writeKeyValue(String name, String value) {
             appendPadding();
 
-            builder.append(name);
-            builder.append(": ");
-            builder.append(value);
+            builder.append(name).append(": ").append(value);
 
             writeNewline();
         }
diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/rel/AbstractSetOpNode.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/rel/AbstractSetOpNode.java
index d88d2d78574..bf7d17394d1 100644
--- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/rel/AbstractSetOpNode.java
+++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/rel/AbstractSetOpNode.java
@@ -129,7 +129,7 @@ public abstract class AbstractSetOpNode<RowT> extends AbstractNode<RowT> {
     /** {@inheritDoc} */
     @Override
     protected Downstream<RowT> requestDownstream(int idx) {
-        return new Downstream<RowT>() {
+        return new Downstream<>() {
             @Override
             public void push(RowT row) throws Exception {
                 AbstractSetOpNode.this.push(row, idx);
diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/rel/CorrelatedNestedLoopJoinNode.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/rel/CorrelatedNestedLoopJoinNode.java
index 120c9abb3f1..d3dacc02262 100644
--- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/rel/CorrelatedNestedLoopJoinNode.java
+++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/rel/CorrelatedNestedLoopJoinNode.java
@@ -139,7 +139,7 @@ public class CorrelatedNestedLoopJoinNode<RowT> extends AbstractNode<RowT> {
     @Override
     protected Downstream<RowT> requestDownstream(int idx) {
         if (idx == 0) {
-            return new Downstream<RowT>() {
+            return new Downstream<>() {
                 /** {@inheritDoc} */
                 @Override
                 public void push(RowT row) throws Exception {
@@ -159,7 +159,7 @@ public class CorrelatedNestedLoopJoinNode<RowT> extends AbstractNode<RowT> {
                 }
             };
         } else if (idx == 1) {
-            return new Downstream<RowT>() {
+            return new Downstream<>() {
                 /** {@inheritDoc} */
                 @Override
                 public void push(RowT row) throws Exception {
diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/rel/HashJoinNode.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/rel/HashJoinNode.java
index c315ca719e1..2a576879a9c 100644
--- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/rel/HashJoinNode.java
+++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/rel/HashJoinNode.java
@@ -804,6 +804,8 @@ public abstract class HashJoinNode<RowT> extends AbstractRightMaterializedJoinNo
         return Collections.emptyList();
     }
 
+    // TODO: https://issues.apache.org/jira/browse/IGNITE-26175
+    @SuppressWarnings("PMD.UseDiamondOperator")
     private static <RowT> Iterator<RowT> getUntouched(Map<Key, TouchedCollection<RowT>> entries) {
         return new Iterator<RowT>() {
             private final Iterator<TouchedCollection<RowT>> it = entries.values().iterator();
diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/rel/MergeJoinNode.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/rel/MergeJoinNode.java
index 807cb8b5cd1..c7cbb2a0367 100644
--- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/rel/MergeJoinNode.java
+++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/exec/rel/MergeJoinNode.java
@@ -95,7 +95,7 @@ public abstract class MergeJoinNode<RowT> extends AbstractNode<RowT> {
     @Override
     protected Downstream<RowT> requestDownstream(int idx) {
         if (idx == 0) {
-            return new Downstream<RowT>() {
+            return new Downstream<>() {
                 /** {@inheritDoc} */
                 @Override
                 public void push(RowT row) throws Exception {
@@ -115,7 +115,7 @@ public abstract class MergeJoinNode<RowT> extends AbstractNode<RowT> {
                 }
             };
         } else if (idx == 1) {
-            return new Downstream<RowT>() {
+            return new Downstream<>() {
                 /** {@inheritDoc} */
                 @Override
                 public void push(RowT row) throws Exception {
diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/externalize/RelJsonReader.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/externalize/RelJsonReader.java
index c4e06423f09..458e7fdb0eb 100644
--- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/externalize/RelJsonReader.java
+++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/externalize/RelJsonReader.java
@@ -319,7 +319,7 @@ public class RelJsonReader {
             List<String> names =
                     (List<String>) get(fieldsTag);
             return Commons.typeFactory().createStructType(
-                    new AbstractList<Map.Entry<String, RelDataType>>() {
+                    new AbstractList<>() {
                         @Override
                         public Map.Entry<String, RelDataType> get(int index) {
                             return Pair.of(names.get(index),
diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/prepare/IgniteAliasNamespace.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/prepare/IgniteAliasNamespace.java
index 3347c3d6466..5e7fe58b225 100644
--- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/prepare/IgniteAliasNamespace.java
+++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/prepare/IgniteAliasNamespace.java
@@ -147,9 +147,7 @@ public class IgniteAliasNamespace extends AliasNamespace {
             if (field.getIndex() > 0) {
                 buf.append(", ");
             }
-            buf.append('\'');
-            buf.append(field.getName());
-            buf.append('\'');
+            buf.append('\'').append(field.getName()).append('\'');
         }
         buf.append(')');
         return buf.toString();
diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/prepare/IgniteSqlValidator.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/prepare/IgniteSqlValidator.java
index 68db7dbccb8..c777e66bdbc 100644
--- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/prepare/IgniteSqlValidator.java
+++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/prepare/IgniteSqlValidator.java
@@ -892,12 +892,14 @@ public class IgniteSqlValidator extends SqlValidatorImpl {
                 });
         return typeFactory.createStructType(
                 types,
-                new AbstractList<String>() {
-                    @Override public String get(int index) {
+                new AbstractList<>() {
+                    @Override
+                    public String get(int index) {
                         return "?" + index;
                     }
 
-                    @Override public int size() {
+                    @Override
+                    public int size() {
                         return types.size();
                     }
                 });
diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/explain/RelTreeToTextWriter.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/explain/RelTreeToTextWriter.java
index aba8ff01cb2..7b8dd9808ca 100644
--- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/explain/RelTreeToTextWriter.java
+++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/rel/explain/RelTreeToTextWriter.java
@@ -419,19 +419,16 @@ class RelTreeToTextWriter {
         if (call.distinctKeys != null) {
             buf.append(" WITHIN DISTINCT (");
             for (Ord<Integer> key : Ord.zip(call.distinctKeys)) {
-                buf.append(key.i > 0 ? ", " : "");
-                buf.append(rowType.getFieldNames().get(key.e));
+                buf.append(key.i > 0 ? ", " : "")
+                        .append(rowType.getFieldNames().get(key.e));
             }
             buf.append(')');
         }
         if (call.hasCollation()) {
-            buf.append(" WITHIN GROUP (");
-            buf.append(beautifyCollation(call.collation, rowType));
-            buf.append(')');
+            buf.append(" WITHIN GROUP (").append(beautifyCollation(call.collation, rowType)).append(')');
         }
         if (call.hasFilter()) {
-            buf.append(" FILTER ");
-            buf.append(rowType.getFieldNames().get(call.filterArg));
+            buf.append(" FILTER ").append(rowType.getFieldNames().get(call.filterArg));
         }
         return buf.toString();
     }
diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/sql/IgniteAbstractSqlAlterZone.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/sql/IgniteAbstractSqlAlterZone.java
index 752a31cd7c2..1a7b5896940 100644
--- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/sql/IgniteAbstractSqlAlterZone.java
+++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/sql/IgniteAbstractSqlAlterZone.java
@@ -67,7 +67,6 @@ public abstract class IgniteAbstractSqlAlterZone extends SqlDdl {
 
     /** Returns whether IF EXISTS was specified or not. **/
     public boolean ifExists() {
-        IgniteDdlOperator operator = (IgniteDdlOperator) getOperator();
-        return operator.existFlag();
+        return getOperator().existFlag();
     }
 }
diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/util/IgniteMath.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/util/IgniteMath.java
index 2f7d0bea09f..d82cbc3a48d 100644
--- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/util/IgniteMath.java
+++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/util/IgniteMath.java
@@ -198,7 +198,7 @@ public class IgniteMath {
 
     /** Returns the product of the arguments, throwing an exception if the result overflows an {@code int}. */
     public static int multiplyExact(int x, int y) {
-        long r = (long) x * (long) y;
+        long r = (long) x * y;
 
         if ((int) r != r) {
             throw outOfRangeForTypeException(INTEGER);
diff --git a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/util/RexUtils.java b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/util/RexUtils.java
index 46f0677f1c5..26c7f8202ee 100644
--- a/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/util/RexUtils.java
+++ b/modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/util/RexUtils.java
@@ -847,7 +847,7 @@ public class RexUtils {
     }
 
     private static Boolean containsFieldAccess(RexNode node) {
-        RexVisitor<Void> v = new RexVisitorImpl<Void>(true) {
+        RexVisitor<Void> v = new RexVisitorImpl<>(true) {
             @Override
             public Void visitFieldAccess(RexFieldAccess fieldAccess) {
                 throw Util.FoundOne.NULL;
@@ -1043,7 +1043,7 @@ public class RexUtils {
      */
     public static boolean hasCorrelation(List<RexNode> nodes) {
         try {
-            RexVisitor<Void> v = new RexVisitorImpl<Void>(true) {
+            RexVisitor<Void> v = new RexVisitorImpl<>(true) {
                 @Override
                 public Void visitCorrelVariable(RexCorrelVariable correlVariable) {
                     throw new ControlFlowException();
@@ -1077,7 +1077,7 @@ public class RexUtils {
     public static Set<CorrelationId> extractCorrelationIds(List<RexNode> nodes) {
         final Set<CorrelationId> cors = new HashSet<>();
 
-        RexVisitor<Void> v = new RexVisitorImpl<Void>(true) {
+        RexVisitor<Void> v = new RexVisitorImpl<>(true) {
             @Override
             public Void visitCorrelVariable(RexCorrelVariable correlVariable) {
                 cors.add(correlVariable.id);
diff --git a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/RuntimeSortedIndexTest.java b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/RuntimeSortedIndexTest.java
index 9e7512cfa23..1fd333efa8b 100644
--- a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/RuntimeSortedIndexTest.java
+++ b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/RuntimeSortedIndexTest.java
@@ -60,15 +60,15 @@ public class RuntimeSortedIndexTest extends IgniteAbstractTest {
     private static final int[] NOT_UNIQUE_ROWS_IN_GROUP = {1, 10};
 
     private static final Pair<NativeType[], ImmutableIntList>[] ROW_TYPES = new Pair[]{
-            new Pair(new NativeType[]{NativeTypes.INT32, NativeTypes.INT32, NativeTypes.INT32}, ImmutableIntList.of(1)),
-
-            new Pair(new NativeType[]{NativeTypes.INT32, NativeTypes.INT64, NativeTypes.INT32}, ImmutableIntList.of(1)),
-            new Pair(new NativeType[]{NativeTypes.INT32, NativeTypes.STRING, NativeTypes.INT32}, ImmutableIntList.of(1)),
-            new Pair(new NativeType[]{NativeTypes.INT32, NativeTypes.DATE, NativeTypes.INT32}, ImmutableIntList.of(1)),
-            new Pair(new NativeType[]{NativeTypes.INT32, NativeTypes.time(0), NativeTypes.INT32}, ImmutableIntList.of(1)),
-            new Pair(new NativeType[]{NativeTypes.INT32, NativeTypes.datetime(6), NativeTypes.INT32}, ImmutableIntList.of(1)),
-            new Pair(new NativeType[]{NativeTypes.INT32, NativeTypes.timestamp(6), NativeTypes.INT32}, ImmutableIntList.of(1)),
-            new Pair(new NativeType[]{NativeTypes.INT32, NativeTypes.STRING, NativeTypes.time(0),
+            new Pair<>(new NativeType[]{NativeTypes.INT32, NativeTypes.INT32, NativeTypes.INT32}, ImmutableIntList.of(1)),
+
+            new Pair<>(new NativeType[]{NativeTypes.INT32, NativeTypes.INT64, NativeTypes.INT32}, ImmutableIntList.of(1)),
+            new Pair<>(new NativeType[]{NativeTypes.INT32, NativeTypes.STRING, NativeTypes.INT32}, ImmutableIntList.of(1)),
+            new Pair<>(new NativeType[]{NativeTypes.INT32, NativeTypes.DATE, NativeTypes.INT32}, ImmutableIntList.of(1)),
+            new Pair<>(new NativeType[]{NativeTypes.INT32, NativeTypes.time(0), NativeTypes.INT32}, ImmutableIntList.of(1)),
+            new Pair<>(new NativeType[]{NativeTypes.INT32, NativeTypes.datetime(6), NativeTypes.INT32}, ImmutableIntList.of(1)),
+            new Pair<>(new NativeType[]{NativeTypes.INT32, NativeTypes.timestamp(6), NativeTypes.INT32}, ImmutableIntList.of(1)),
+            new Pair<>(new NativeType[]{NativeTypes.INT32, NativeTypes.STRING, NativeTypes.time(0),
                     NativeTypes.DATE, NativeTypes.datetime(6), NativeTypes.INT32}, ImmutableIntList.of(1, 2, 3, 4))
     };
 
diff --git a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/coercion/BaseTypeCheckExecutionTest.java b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/coercion/BaseTypeCheckExecutionTest.java
index 92e8817f6fd..e53de5dd978 100644
--- a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/coercion/BaseTypeCheckExecutionTest.java
+++ b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/coercion/BaseTypeCheckExecutionTest.java
@@ -152,7 +152,7 @@ class BaseTypeCheckExecutionTest extends BaseIgniteAbstractTest {
                 byte res;
 
                 do {
-                    res = (byte) (((byte) SqlTestUtils.generateValueByType(type, 0, 0)));
+                    res = (((byte) SqlTestUtils.generateValueByType(type, 0, 0)));
                 } while (res == 0);
 
                 return res;
diff --git a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/exp/ExpressionFactoryImplTest.java b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/exp/ExpressionFactoryImplTest.java
index 71830db31f9..534f70e31de 100644
--- a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/exp/ExpressionFactoryImplTest.java
+++ b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/exp/ExpressionFactoryImplTest.java
@@ -122,7 +122,7 @@ public class ExpressionFactoryImplTest extends BaseIgniteAbstractTest {
                 .add("C1", SqlTypeName.INTEGER)
                 .build();
 
-        RexNode intValue1 = rexBuilder.makeExactLiteral(new BigDecimal("1"));
+        RexNode intValue1 = rexBuilder.makeExactLiteral(BigDecimal.ONE);
         RexNode intValue5 = rexBuilder.makeExactLiteral(new BigDecimal("5"));
         RexNode nullValue = rexBuilder.makeNullLiteral(typeFactory.createSqlType(SqlTypeName.INTEGER));
 
@@ -295,6 +295,7 @@ public class ExpressionFactoryImplTest extends BaseIgniteAbstractTest {
     }
 
     @Test
+    @SuppressWarnings("PMD.BigIntegerInstantiation")
     void multiBoundConditionsAreMergedCorrectly() {
         RexBuilder rexBuilder = Commons.rexBuilder();
 
@@ -305,7 +306,7 @@ public class ExpressionFactoryImplTest extends BaseIgniteAbstractTest {
                 .add("C1", SqlTypeName.INTEGER)
                 .build();
 
-        RexNode intValue1 = rexBuilder.makeExactLiteral(new BigDecimal("1"));
+        RexNode intValue1 = rexBuilder.makeExactLiteral(BigDecimal.ONE);
         RexNode intValue2 = rexBuilder.makeExactLiteral(new BigDecimal("2"));
         RexNode intValue3 = rexBuilder.makeExactLiteral(new BigDecimal("3"));
         RexNode intValue5 = rexBuilder.makeExactLiteral(new BigDecimal("5"));
@@ -466,6 +467,7 @@ public class ExpressionFactoryImplTest extends BaseIgniteAbstractTest {
     }
 
     @Test
+    @SuppressWarnings("PMD.BigIntegerInstantiation")
     public void testInvalidConditions() {
         // At the moment, such conditions are impossible to obtain, but we should be aware of them,
         // since they can break the merge procedure.
@@ -478,7 +480,7 @@ public class ExpressionFactoryImplTest extends BaseIgniteAbstractTest {
                 .add("C1", SqlTypeName.INTEGER)
                 .build();
 
-        RexNode intValue1 = rexBuilder.makeExactLiteral(new BigDecimal("1"));
+        RexNode intValue1 = rexBuilder.makeExactLiteral(BigDecimal.ONE);
         RexNode intValue2 = rexBuilder.makeExactLiteral(new BigDecimal("2"));
 
         { // conditions 'val between 2 and 1 or val = 2' should lead to single 'val = 2' (ASCENDING)
@@ -522,10 +524,11 @@ public class ExpressionFactoryImplTest extends BaseIgniteAbstractTest {
 
     @ParameterizedTest(name = "condition satisfies the index: [{0}]")
     @ValueSource(booleans = {true, false})
+    @SuppressWarnings("PMD.BigIntegerInstantiation")
     public void testConditionsNotContainsNulls(boolean conditionSatisfyIdx) {
         RexBuilder rexBuilder = Commons.rexBuilder();
 
-        RexNode val1 = rexBuilder.makeExactLiteral(new BigDecimal("1"));
+        RexNode val1 = rexBuilder.makeExactLiteral(BigDecimal.ONE);
         RexNode val2 = rexBuilder.makeExactLiteral(new BigDecimal("2"));
 
         RelDataTypeSystem typeSystem = Commons.emptyCluster().getTypeFactory().getTypeSystem();
@@ -575,6 +578,7 @@ public class ExpressionFactoryImplTest extends BaseIgniteAbstractTest {
     }
 
     @Test
+    @SuppressWarnings("PMD.BigIntegerInstantiation")
     public void testProject() {
         RexBuilder rexBuilder = Commons.rexBuilder();
         IgniteTypeFactory tf = Commons.typeFactory();
@@ -582,7 +586,7 @@ public class ExpressionFactoryImplTest extends BaseIgniteAbstractTest {
         RelDataType intType = tf.createSqlType(SqlTypeName.INTEGER);
         RelDataType bigIntType = tf.createSqlType(SqlTypeName.BIGINT);
 
-        RexNode val1 = rexBuilder.makeExactLiteral(new BigDecimal("1"), intType);
+        RexNode val1 = rexBuilder.makeExactLiteral(BigDecimal.ONE, intType);
         RexNode val2 = rexBuilder.makeExactLiteral(new BigDecimal("2"), bigIntType);
 
         RelDataType rowType = new Builder(tf)
@@ -672,6 +676,7 @@ public class ExpressionFactoryImplTest extends BaseIgniteAbstractTest {
     }
 
     @Test
+    @SuppressWarnings("PMD.BigIntegerInstantiation")
     public void testValues() {
         RexBuilder rexBuilder = Commons.rexBuilder();
         IgniteTypeFactory tf = Commons.typeFactory();
@@ -679,7 +684,7 @@ public class ExpressionFactoryImplTest extends BaseIgniteAbstractTest {
         RelDataType intType = tf.createSqlType(SqlTypeName.INTEGER);
         RelDataType bigIntType = tf.createSqlType(SqlTypeName.BIGINT);
 
-        RexLiteral val10 = rexBuilder.makeExactLiteral(new BigDecimal("1"), intType);
+        RexLiteral val10 = rexBuilder.makeExactLiteral(BigDecimal.ONE, intType);
         RexLiteral val11 = rexBuilder.makeExactLiteral(new BigDecimal("2"), bigIntType);
         RexLiteral val20 = rexBuilder.makeExactLiteral(new BigDecimal("3"), intType);
         RexLiteral val21 = rexBuilder.makeExactLiteral(new BigDecimal("4"), bigIntType);
@@ -868,7 +873,7 @@ public class ExpressionFactoryImplTest extends BaseIgniteAbstractTest {
                 Arguments.of(makeLit.apply(doubleMin, doubleType), doubleType, ((BigDecimal) doubleMin).doubleValue(), false),
 
                 // DECIMAL
-                Arguments.of(makeLit.apply(new BigDecimal("1"), decimal5), decimal5, new BigDecimal("1"), false),
+                Arguments.of(makeLit.apply(BigDecimal.ONE, decimal5), decimal5, BigDecimal.ONE, false),
                 Arguments.of(makeLit.apply(new BigDecimal("1.0"), decimal52), decimal52, new BigDecimal("1.00"), false)
         );
     }
diff --git a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/exp/IgniteSqlFunctionsTest.java b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/exp/IgniteSqlFunctionsTest.java
index 0936c2c35f9..4aece34e378 100644
--- a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/exp/IgniteSqlFunctionsTest.java
+++ b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/exp/IgniteSqlFunctionsTest.java
@@ -89,17 +89,17 @@ public class IgniteSqlFunctionsTest {
     @Test
     public void testPrimitiveToDecimal() {
         assertEquals(
-                new BigDecimal(10),
+                BigDecimal.TEN,
                 IgniteSqlFunctions.toBigDecimal((byte) 10, 10, 0)
         );
 
         assertEquals(
-                new BigDecimal(10),
+                BigDecimal.TEN,
                 IgniteSqlFunctions.toBigDecimal((short) 10, 10, 0)
         );
 
         assertEquals(
-                new BigDecimal(10),
+                BigDecimal.TEN,
                 IgniteSqlFunctions.toBigDecimal(10, 10, 0)
         );
 
@@ -128,17 +128,17 @@ public class IgniteSqlFunctionsTest {
         assertNull(IgniteSqlFunctions.toBigDecimal((String) null, 10, 0));
 
         assertEquals(
-                new BigDecimal(10),
+                BigDecimal.TEN,
                 IgniteSqlFunctions.toBigDecimal(Byte.valueOf("10"), 10, 0)
         );
 
         assertEquals(
-                new BigDecimal(10),
+                BigDecimal.TEN,
                 IgniteSqlFunctions.toBigDecimal(Short.valueOf("10"), 10, 0)
         );
 
         assertEquals(
-                new BigDecimal(10),
+                BigDecimal.TEN,
                 IgniteSqlFunctions.toBigDecimal(Integer.valueOf(10), 10, 0)
         );
 
@@ -251,8 +251,9 @@ public class IgniteSqlFunctionsTest {
 
     /** Tests for ROUND(x) function. */
     @Test
+    @SuppressWarnings("PMD.BigIntegerInstantiation")
     public void testRound() {
-        assertEquals(new BigDecimal("1"), IgniteSqlFunctions.sround(new BigDecimal("1.000")));
+        assertEquals(BigDecimal.ONE, IgniteSqlFunctions.sround(new BigDecimal("1.000")));
         assertEquals(new BigDecimal("2"), IgniteSqlFunctions.sround(new BigDecimal("1.5")));
         assertEquals(1, IgniteSqlFunctions.sround(1), "int");
         assertEquals(1L, IgniteSqlFunctions.sround(1L), "long");
@@ -370,8 +371,8 @@ public class IgniteSqlFunctionsTest {
     /** Tests for TRUNCATE(x) function. */
     @Test
     public void testTruncate() {
-        assertEquals(new BigDecimal("1"), IgniteSqlFunctions.struncate(new BigDecimal("1.000")));
-        assertEquals(new BigDecimal("1"), IgniteSqlFunctions.struncate(new BigDecimal("1.5")));
+        assertEquals(BigDecimal.ONE, IgniteSqlFunctions.struncate(new BigDecimal("1.000")));
+        assertEquals(BigDecimal.ONE, IgniteSqlFunctions.struncate(new BigDecimal("1.5")));
         assertEquals(1, IgniteSqlFunctions.struncate(1), "int");
         assertEquals(1L, IgniteSqlFunctions.struncate(1L), "long");
         assertEquals(1.0d, IgniteSqlFunctions.struncate(1.5d), "double");
diff --git a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/mapping/MappingTestRunner.java b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/mapping/MappingTestRunner.java
index 9ea506e6017..d9efc986eb4 100644
--- a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/mapping/MappingTestRunner.java
+++ b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/mapping/MappingTestRunner.java
@@ -308,8 +308,8 @@ final class MappingTestRunner {
     private static void appendTestCaseStr(int idx, StringBuilder testCaseStr, TestCaseDef testCaseDef, String result) {
         // Write description or a blank line (if this is not the first test case).
         if (testCaseDef.description != null) {
-            testCaseStr.append(testCaseDef.description);
-            testCaseStr.append(System.lineSeparator());
+            testCaseStr.append(testCaseDef.description)
+                    .append(System.lineSeparator());
         } else if (idx > 0) {
             testCaseStr.append(System.lineSeparator());
         }
diff --git a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/rel/AbstractExecutionTest.java b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/rel/AbstractExecutionTest.java
index dc439faa727..ec4c72e879b 100644
--- a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/rel/AbstractExecutionTest.java
+++ b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/rel/AbstractExecutionTest.java
@@ -277,7 +277,7 @@ public abstract class AbstractExecutionTest<T> extends IgniteAbstractTest {
                                         return null;
                                 }
                             })
-                            .collect(Collectors.toList()).toArray(new Function[rowType.getFieldCount()])
+                            .collect(Collectors.toList()).toArray(new Function[0])
             );
         }
 
diff --git a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/rel/BaseAggregateTest.java b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/rel/BaseAggregateTest.java
index 89193ad311e..34dc7e642b8 100644
--- a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/rel/BaseAggregateTest.java
+++ b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/rel/BaseAggregateTest.java
@@ -549,7 +549,7 @@ public abstract class BaseAggregateTest extends AbstractExecutionTest<Object[]>
 
         assertTrue(root.hasNext());
 
-        assertArrayEquals(row(0, new BigDecimal(Long.MAX_VALUE).add(new BigDecimal(10))), root.next());
+        assertArrayEquals(row(0, new BigDecimal(Long.MAX_VALUE).add(BigDecimal.TEN)), root.next());
 
         assertFalse(root.hasNext());
     }
diff --git a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/rel/DataSourceScanNodeExecutionTest.java b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/rel/DataSourceScanNodeExecutionTest.java
index 9163885b94b..362b69a7747 100644
--- a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/rel/DataSourceScanNodeExecutionTest.java
+++ b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/rel/DataSourceScanNodeExecutionTest.java
@@ -300,7 +300,7 @@ public class DataSourceScanNodeExecutionTest extends AbstractExecutionTest<RowWr
         public Publisher<InternalTuple> scan() {
             Iterator<InternalTuple> it = iterable.iterator();
 
-            return new Publisher<InternalTuple>() {
+            return new Publisher<>() {
                 @Override
                 public void subscribe(Subscriber<? super InternalTuple> subscriber) {
                     Subscription subscription = new Subscription() {
diff --git a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/rel/SingleRangeIterable.java b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/rel/SingleRangeIterable.java
index 17f44fa23e1..ad659bec189 100644
--- a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/rel/SingleRangeIterable.java
+++ b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/exec/rel/SingleRangeIterable.java
@@ -53,7 +53,7 @@ final class SingleRangeIterable<T> implements RangeIterable<T> {
     /** {@inheritDoc} */
     @Override
     public Iterator<RangeCondition<T>> iterator() {
-        RangeCondition<T> range = new RangeCondition<T>() {
+        RangeCondition<T> range = new RangeCondition<>() {
             @Override
             public T lower() {
                 return lower;
diff --git a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/framework/DataProvider.java b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/framework/DataProvider.java
index 47db00a004b..166b5447b64 100644
--- a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/framework/DataProvider.java
+++ b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/framework/DataProvider.java
@@ -38,7 +38,7 @@ public interface DataProvider<T> extends Iterable<T> {
      * @return A data provider instance backed by given collection.
      */
     static <T> DataProvider<T> fromCollection(Collection<T> collection) {
-        return new DataProvider<T>() {
+        return new DataProvider<>() {
             @Override
             public long estimatedSize() {
                 return collection.size();
diff --git a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/planner/AbstractPlannerTest.java b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/planner/AbstractPlannerTest.java
index d4679a92967..bd0e52782fb 100644
--- a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/planner/AbstractPlannerTest.java
+++ b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/planner/AbstractPlannerTest.java
@@ -599,7 +599,10 @@ public abstract class AbstractPlannerTest extends IgniteAbstractTest {
 
     /**
      * Predicate builder for "Any child satisfy predicate" condition.
+     *
+     * <p>TODO: https://issues.apache.org/jira/browse/IGNITE-26177
      */
+    @SuppressWarnings("PMD.UseDiamondOperator")
     protected <T extends RelNode> Predicate<RelNode> hasChildThat(Predicate<T> predicate) {
         return new Predicate<RelNode>() {
             public boolean checkRecursively(RelNode node) {
diff --git a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/prepare/PrepareServiceImplTest.java b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/prepare/PrepareServiceImplTest.java
index dfc870ed19a..f5875d3845a 100644
--- a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/prepare/PrepareServiceImplTest.java
+++ b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/prepare/PrepareServiceImplTest.java
@@ -325,11 +325,10 @@ public class PrepareServiceImplTest extends BaseIgniteAbstractTest {
         StringBuilder stmt = new StringBuilder();
         for (int i = 0; i < 100; i++) {
             if (i > 0) {
-                stmt.append("UNION");
-                stmt.append(System.lineSeparator());
+                stmt.append("UNION")
+                        .append(System.lineSeparator());
             }
-            stmt.append("SELECT * FROM t WHERE c = ").append(i);
-            stmt.append(System.lineSeparator());
+            stmt.append("SELECT * FROM t WHERE c = ").append(i).append(System.lineSeparator());
         }
 
         ParsedResult parsedResult = parse(stmt.toString());
diff --git a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/sql/SqlDdlParserTest.java b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/sql/SqlDdlParserTest.java
index b32143bdc4f..ebf3d69746c 100644
--- a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/sql/SqlDdlParserTest.java
+++ b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/sql/SqlDdlParserTest.java
@@ -1080,7 +1080,7 @@ public class SqlDdlParserTest extends AbstractParserTest {
      * @return {@code true} in case name in the column declaration equals to the expected one.
      */
     private static <T extends SqlColumnDeclaration> Matcher<T> columnWithName(String name) {
-        return new CustomMatcher<T>("column with name=" + name) {
+        return new CustomMatcher<>("column with name=" + name) {
             /** {@inheritDoc} */
             @Override
             public boolean matches(Object item) {
diff --git a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/util/StatementChecker.java b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/util/StatementChecker.java
index f4d8ec71ef9..6fbc523b38e 100644
--- a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/util/StatementChecker.java
+++ b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/util/StatementChecker.java
@@ -322,7 +322,7 @@ public class StatementChecker {
 
         // please do not replace generic in TypeSafeMatcher with diamond.
         // Sometimes IDEA goes crazy and start throwing error on compilation                                  V
-        return shouldFail(name, exception, new TypeSafeMatcher<Throwable>() {
+        return shouldFail(name, exception, new TypeSafeMatcher<>() {
             @Override
             protected boolean matchesSafely(Throwable t) {
                 if (t.getMessage() == null) {
diff --git a/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/mv/io/BlobFragmentIo.java b/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/mv/io/BlobFragmentIo.java
index 6bf0c213f1a..e606d585589 100644
--- a/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/mv/io/BlobFragmentIo.java
+++ b/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/mv/io/BlobFragmentIo.java
@@ -40,7 +40,7 @@ import org.apache.ignite.internal.pagememory.util.PageUtils;
  * </ul>
  */
 public class BlobFragmentIo extends PageIo {
-    private static final int NEXT_PAGE_ID_OFF = PageIo.COMMON_HEADER_END;
+    private static final int NEXT_PAGE_ID_OFF = COMMON_HEADER_END;
 
     private static final int FRAGMENT_BYTES_OR_TOTAL_LENGTH_OFF = NEXT_PAGE_ID_OFF + Long.BYTES;
 
diff --git a/modules/storage-rocksdb/src/main/java/org/apache/ignite/internal/storage/rocksdb/RocksDbMvPartitionStorage.java b/modules/storage-rocksdb/src/main/java/org/apache/ignite/internal/storage/rocksdb/RocksDbMvPartitionStorage.java
index 54cfc23fd4e..8d6134813b5 100644
--- a/modules/storage-rocksdb/src/main/java/org/apache/ignite/internal/storage/rocksdb/RocksDbMvPartitionStorage.java
+++ b/modules/storage-rocksdb/src/main/java/org/apache/ignite/internal/storage/rocksdb/RocksDbMvPartitionStorage.java
@@ -985,7 +985,9 @@ public class RocksDbMvPartitionStorage implements MvPartitionStorage {
                 && rowId.leastSignificantBits() == normalize(dataIdKey.getLong());
     }
 
+    // TODO: https://issues.apache.org/jira/browse/IGNITE-26175
     @Override
+    @SuppressWarnings("PMD.UseDiamondOperator")
     public Cursor<ReadResult> scanVersions(RowId rowId) throws StorageException {
         return busy(() -> {
             assert rowIsLocked(rowId);
diff --git a/modules/storage-rocksdb/src/main/java/org/apache/ignite/internal/storage/rocksdb/index/RocksDbHashIndexStorage.java b/modules/storage-rocksdb/src/main/java/org/apache/ignite/internal/storage/rocksdb/index/RocksDbHashIndexStorage.java
index d58cf20de41..b2fddb38103 100644
--- a/modules/storage-rocksdb/src/main/java/org/apache/ignite/internal/storage/rocksdb/index/RocksDbHashIndexStorage.java
+++ b/modules/storage-rocksdb/src/main/java/org/apache/ignite/internal/storage/rocksdb/index/RocksDbHashIndexStorage.java
@@ -97,7 +97,9 @@ public class RocksDbHashIndexStorage extends AbstractRocksDbIndexStorage impleme
         return (StorageHashIndexDescriptor) descriptor;
     }
 
+    // TODO: https://issues.apache.org/jira/browse/IGNITE-26175
     @Override
+    @SuppressWarnings("PMD.UseDiamondOperator")
     public Cursor<RowId> get(BinaryTuple key) {
         return busyDataRead(() -> {
             throwExceptionIfStorageInProgressOfRebalance(state.get(), this::createStorageInfo);
diff --git a/modules/storage-rocksdb/src/main/java/org/apache/ignite/internal/storage/rocksdb/index/RocksDbSortedIndexStorage.java b/modules/storage-rocksdb/src/main/java/org/apache/ignite/internal/storage/rocksdb/index/RocksDbSortedIndexStorage.java
index e8f25f712f8..a7820a317ef 100644
--- a/modules/storage-rocksdb/src/main/java/org/apache/ignite/internal/storage/rocksdb/index/RocksDbSortedIndexStorage.java
+++ b/modules/storage-rocksdb/src/main/java/org/apache/ignite/internal/storage/rocksdb/index/RocksDbSortedIndexStorage.java
@@ -174,7 +174,9 @@ public class RocksDbSortedIndexStorage extends AbstractRocksDbIndexStorage imple
         };
     }
 
+    // TODO: https://issues.apache.org/jira/browse/IGNITE-26175
     @Override
+    @SuppressWarnings("PMD.UseDiamondOperator")
     public Cursor<IndexRow> readOnlyScan(@Nullable BinaryTuplePrefix lowerBound, @Nullable BinaryTuplePrefix upperBound, int flags) {
         return busyDataRead(() -> {
             throwExceptionIfStorageInProgressOfRebalance(state.get(), this::createStorageInfo);
diff --git a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/PartitionSet.java b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/PartitionSet.java
index 0c5089cf537..d3efe3fb754 100644
--- a/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/PartitionSet.java
+++ b/modules/table/src/main/java/org/apache/ignite/internal/table/distributed/PartitionSet.java
@@ -188,7 +188,7 @@ public interface PartitionSet {
 
             @Override
             public PartitionSet copy() {
-                return PartitionSet.of(partId);
+                return of(partId);
             }
 
             @Override
diff --git a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/gc/MvGcTest.java b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/gc/MvGcTest.java
index 3c1f6995756..ce4c665081d 100644
--- a/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/gc/MvGcTest.java
+++ b/modules/table/src/test/java/org/apache/ignite/internal/table/distributed/gc/MvGcTest.java
@@ -487,7 +487,7 @@ public class MvGcTest extends BaseIgniteAbstractTest {
         when(safeTimeTracker.waitFor(any())).then(invocation -> {
             startAwaitSafeTimeFuture.complete(null);
 
-            return new CompletableFuture<Void>();
+            return new CompletableFuture<>();
         });
 
         when(gcUpdateHandler.getSafeTimeTracker()).thenReturn(safeTimeTracker);
diff --git a/modules/table/src/test/java/org/apache/ignite/internal/table/type/NumericTypesSerializerTest.java b/modules/table/src/test/java/org/apache/ignite/internal/table/type/NumericTypesSerializerTest.java
index 88abd44b45a..dda677d91c6 100644
--- a/modules/table/src/test/java/org/apache/ignite/internal/table/type/NumericTypesSerializerTest.java
+++ b/modules/table/src/test/java/org/apache/ignite/internal/table/type/NumericTypesSerializerTest.java
@@ -67,7 +67,7 @@ public class NumericTypesSerializerTest {
      */
     private static List<Pair<BigDecimal, BigDecimal>> sameDecimals() {
         return Arrays.asList(
-                new Pair<>(new BigDecimal("10"), BigDecimal.valueOf(10)),
+                new Pair<>(BigDecimal.TEN, BigDecimal.valueOf(10)),
                 new Pair<>(new BigDecimal("10.00"), BigDecimal.valueOf(10)),
                 new Pair<>(new BigDecimal("999999999"), BigDecimal.valueOf(999999999L)),
                 new Pair<>(new BigDecimal("-999999999"), BigDecimal.valueOf(-999999999L)),
diff --git a/modules/transactions/src/main/java/org/apache/ignite/internal/tx/storage/state/rocksdb/TxStateRocksDbPartitionStorage.java b/modules/transactions/src/main/java/org/apache/ignite/internal/tx/storage/state/rocksdb/TxStateRocksDbPartitionStorage.java
index 7e89785ec55..61210110308 100644
--- a/modules/transactions/src/main/java/org/apache/ignite/internal/tx/storage/state/rocksdb/TxStateRocksDbPartitionStorage.java
+++ b/modules/transactions/src/main/java/org/apache/ignite/internal/tx/storage/state/rocksdb/TxStateRocksDbPartitionStorage.java
@@ -278,7 +278,9 @@ public class TxStateRocksDbPartitionStorage implements TxStatePartitionStorage {
         });
     }
 
+    // TODO: https://issues.apache.org/jira/browse/IGNITE-26175
     @Override
+    @SuppressWarnings("PMD.UseDiamondOperator")
     public Cursor<IgniteBiTuple<UUID, TxMeta>> scan() {
         return busy(() -> {
             throwExceptionIfStorageInProgressOfRebalance();
diff --git a/modules/workers/src/main/java/org/apache/ignite/internal/worker/CriticalWorkerWatchdog.java b/modules/workers/src/main/java/org/apache/ignite/internal/worker/CriticalWorkerWatchdog.java
index 32a927b5144..ef0dcc85dfd 100644
--- a/modules/workers/src/main/java/org/apache/ignite/internal/worker/CriticalWorkerWatchdog.java
+++ b/modules/workers/src/main/java/org/apache/ignite/internal/worker/CriticalWorkerWatchdog.java
@@ -206,22 +206,17 @@ public class CriticalWorkerWatchdog implements CriticalWorkerRegistry, IgniteCom
         int i = 0;
         for (; i < threadInfo.getStackTrace().length; i++) {
             StackTraceElement ste = threadInfo.getStackTrace()[i];
-            sb.append("\tat ").append(ste.toString());
-            sb.append('\n');
+            sb.append("\tat ").append(ste.toString()).append('\n');
+
             if (i == 0 && threadInfo.getLockInfo() != null) {
                 Thread.State ts = threadInfo.getThreadState();
                 switch (ts) {
                     case BLOCKED:
-                        sb.append("\t-  blocked on ").append(threadInfo.getLockInfo());
-                        sb.append('\n');
+                        sb.append("\t-  blocked on ").append(threadInfo.getLockInfo()).append('\n');
                         break;
                     case WAITING:
-                        sb.append("\t-  waiting on ").append(threadInfo.getLockInfo());
-                        sb.append('\n');
-                        break;
                     case TIMED_WAITING:
-                        sb.append("\t-  waiting on ").append(threadInfo.getLockInfo());
-                        sb.append('\n');
+                        sb.append("\t-  waiting on ").append(threadInfo.getLockInfo()).append('\n');
                         break;
                     default:
                 }
@@ -229,19 +224,16 @@ public class CriticalWorkerWatchdog implements CriticalWorkerRegistry, IgniteCom
 
             for (MonitorInfo mi : threadInfo.getLockedMonitors()) {
                 if (mi.getLockedStackDepth() == i) {
-                    sb.append("\t-  locked ").append(mi);
-                    sb.append('\n');
+                    sb.append("\t-  locked ").append(mi).append('\n');
                 }
             }
         }
 
         LockInfo[] locks = threadInfo.getLockedSynchronizers();
         if (locks.length > 0) {
-            sb.append("\n\tNumber of locked synchronizers = ").append(locks.length);
-            sb.append('\n');
+            sb.append("\n\tNumber of locked synchronizers = ").append(locks.length).append('\n');
             for (LockInfo li : locks) {
-                sb.append("\t- ").append(li);
-                sb.append('\n');
+                sb.append("\t- ").append(li).append('\n');
             }
         }
         sb.append('\n');