From af8c29def476b1fda4e1f1430f437e66ae151c6d Mon Sep 17 00:00:00 2001 From: Valera V Harseko Date: Wed, 8 Jul 2026 16:56:15 +0300 Subject: [PATCH] Declare never-null local variables as primitives (CodeQL java/non-null-boxed-variable) Seven local variables were declared with a boxed type (Integer/Long/Double/ Boolean) but only ever hold a primitive value and are never null, so each incurred needless boxing and an implicit unbox on every use. Declare them with the corresponding primitive type: - DateUtil.getDateDifferenceInDays: l and r become long; r.intValue() becomes the equivalent (int) r cast. The nullable result stays Integer. - MemoryBackend.compareValues and JsonValueUtils.compareValues: n1/n2 become double and the comparison uses Double.compare(n1, n2), which is exactly what Double.compareTo already delegated to (same NaN / -0.0 ordering). - ThreadSequencer.describeHistory: iterate the int[] with a primitive int; appendHistoryElement already takes an int. - InstallExternalDependencyMojo: cachedCreateChecksums (from a boolean field) and artifactAlreadyInstalled (from File.exists()) become boolean. Each value was already unboxed at its point of use, so behaviour is unchanged. --- .../src/main/java/org/forgerock/audit/util/DateUtil.java | 7 ++++--- .../main/java/org/forgerock/audit/util/JsonValueUtils.java | 7 ++++--- .../java/org/forgerock/json/resource/MemoryBackend.java | 7 ++++--- .../plugin/dependency/InstallExternalDependencyMojo.java | 4 ++-- .../src/main/java/com/persistit/util/ThreadSequencer.java | 2 +- 5 files changed, 15 insertions(+), 12 deletions(-) diff --git a/commons/audit/core/src/main/java/org/forgerock/audit/util/DateUtil.java b/commons/audit/core/src/main/java/org/forgerock/audit/util/DateUtil.java index 2ec307195f..cde55b8bbe 100644 --- a/commons/audit/core/src/main/java/org/forgerock/audit/util/DateUtil.java +++ b/commons/audit/core/src/main/java/org/forgerock/audit/util/DateUtil.java @@ -12,6 +12,7 @@ * information: "Portions Copyrighted [year] [name of copyright owner]". * * Copyright © 2011-2015 ForgeRock AS. All rights reserved. + * Portions Copyrighted 2026 3A Systems, LLC */ package org.forgerock.audit.util; @@ -204,9 +205,9 @@ public DateTime parseIfDate(final String timestamp) { public static int getDateDifferenceInDays(final Date start, final Date end, final Boolean includeDay) { Integer result = null; if (start != null && end != null) { - final Long l = 86400000L; - final Long r = (end.getTime() - start.getTime()) / l; - result = r.intValue(); + final long l = 86400000L; + final long r = (end.getTime() - start.getTime()) / l; + result = (int) r; if (includeDay) { result++; } diff --git a/commons/audit/core/src/main/java/org/forgerock/audit/util/JsonValueUtils.java b/commons/audit/core/src/main/java/org/forgerock/audit/util/JsonValueUtils.java index 3930dac63b..a7c4a068be 100644 --- a/commons/audit/core/src/main/java/org/forgerock/audit/util/JsonValueUtils.java +++ b/commons/audit/core/src/main/java/org/forgerock/audit/util/JsonValueUtils.java @@ -12,6 +12,7 @@ * information: "Portions copyright [year] [name of copyright owner]". * * Copyright 2015-2016 ForgeRock AS. + * Portions Copyrighted 2026 3A Systems, LLC */ package org.forgerock.audit.util; @@ -479,9 +480,9 @@ private int compareValues(final Object v1, final Object v2) { final String s2 = (String) v2; return s1.compareToIgnoreCase(s2); } else if (v1 instanceof Number && v2 instanceof Number) { - final Double n1 = ((Number) v1).doubleValue(); - final Double n2 = ((Number) v2).doubleValue(); - return n1.compareTo(n2); + final double n1 = ((Number) v1).doubleValue(); + final double n2 = ((Number) v2).doubleValue(); + return Double.compare(n1, n2); } else if (v1 instanceof Boolean && v2 instanceof Boolean) { final Boolean b1 = (Boolean) v1; final Boolean b2 = (Boolean) v2; diff --git a/commons/rest/json-resource/src/main/java/org/forgerock/json/resource/MemoryBackend.java b/commons/rest/json-resource/src/main/java/org/forgerock/json/resource/MemoryBackend.java index 0e1df3f767..3a46a851f8 100644 --- a/commons/rest/json-resource/src/main/java/org/forgerock/json/resource/MemoryBackend.java +++ b/commons/rest/json-resource/src/main/java/org/forgerock/json/resource/MemoryBackend.java @@ -12,6 +12,7 @@ * information: "Portions copyright [year] [name of copyright owner]". * * Copyright 2012-2015 ForgeRock AS. + * Portions Copyrighted 2026 3A Systems, LLC */ package org.forgerock.json.resource; @@ -360,9 +361,9 @@ private static int compareValues(final Object v1, final Object v2) { final String s2 = (String) v2; return s1.compareToIgnoreCase(s2); } else if (v1 instanceof Number && v2 instanceof Number) { - final Double n1 = ((Number) v1).doubleValue(); - final Double n2 = ((Number) v2).doubleValue(); - return n1.compareTo(n2); + final double n1 = ((Number) v1).doubleValue(); + final double n2 = ((Number) v2).doubleValue(); + return Double.compare(n1, n2); } else if (v1 instanceof Boolean && v2 instanceof Boolean) { final Boolean b1 = (Boolean) v1; final Boolean b2 = (Boolean) v2; diff --git a/maven-external-dependency-plugin/maven-external-dependency-plugin/src/main/java/com/savage7/maven/plugin/dependency/InstallExternalDependencyMojo.java b/maven-external-dependency-plugin/maven-external-dependency-plugin/src/main/java/com/savage7/maven/plugin/dependency/InstallExternalDependencyMojo.java index 11648d7da5..a3d9b67d99 100644 --- a/maven-external-dependency-plugin/maven-external-dependency-plugin/src/main/java/com/savage7/maven/plugin/dependency/InstallExternalDependencyMojo.java +++ b/maven-external-dependency-plugin/maven-external-dependency-plugin/src/main/java/com/savage7/maven/plugin/dependency/InstallExternalDependencyMojo.java @@ -81,7 +81,7 @@ public void execute() throws MojoExecutionException, MojoFailureException super.md5Digester = this.md5Digester; super.sha1Digester = this.sha1Digester; - Boolean cachedCreateChecksums = this.createChecksum; + boolean cachedCreateChecksums = this.createChecksum; getLog() .info( @@ -101,7 +101,7 @@ public void execute() throws MojoExecutionException, MojoFailureException // determine if the artifact is already installed in the local // Maven repository - Boolean artifactAlreadyInstalled = getLocalRepoFile(artifact) + boolean artifactAlreadyInstalled = getLocalRepoFile(artifact) .exists(); // only proceed with this artifact if it is not already diff --git a/persistit/core/src/main/java/com/persistit/util/ThreadSequencer.java b/persistit/core/src/main/java/com/persistit/util/ThreadSequencer.java index c91d2e9ec4..4d8af4a59a 100644 --- a/persistit/core/src/main/java/com/persistit/util/ThreadSequencer.java +++ b/persistit/core/src/main/java/com/persistit/util/ThreadSequencer.java @@ -202,7 +202,7 @@ public static void appendHistoryElement(final StringBuilder sb, int location) { public static String describeHistory(final int[] history) { final StringBuilder sb = new StringBuilder(); if (history != null) { - for (final Integer location : history) { + for (final int location : history) { if (sb.length() > 0) { sb.append(','); }