This is an automated email from the ASF dual-hosted git repository. ggregory pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-configuration.git
commit db62a50b9ffe67cc4cfde8dff3868e94ec9779d5 Author: Gary Gregory <garydgreg...@gmail.com> AuthorDate: Wed Jun 29 17:36:35 2022 -0400 Avoid creating BigDecimal with a decimal (float/double) literal. PMD Error Prone violation <file name="C:\d3vsrc\git\apache\commons-configuration\src\main\java\org\apache\commons\configuration2\convert\PropertyConverter.java"> <violation beginline="348" endline="348" begincolumn="16" endcolumn="46" rule="AvoidDecimalLiteralsInBigDecimalConstructor" ruleset="Error Prone" package="org.apache.commons.configuration2.convert" class="PropertyConverter" method="toBigDecimal" externalInfoUrl="https://pmd.github.io/pmd-6.44.0/pmd_rules_java_errorprone.html#avoiddecimalliteralsinbigdecimalconstructor" priority="3"> Avoid creating BigDecimal with a decimal (float/double) literal. Use a String literal </violation> --- .../org/apache/commons/configuration2/convert/PropertyConverter.java | 2 +- .../java/org/apache/commons/configuration2/TestBaseConfiguration.java | 2 +- .../apache/commons/configuration2/convert/TestPropertyConverter.java | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/apache/commons/configuration2/convert/PropertyConverter.java b/src/main/java/org/apache/commons/configuration2/convert/PropertyConverter.java index 261c248b..c65ed3d6 100644 --- a/src/main/java/org/apache/commons/configuration2/convert/PropertyConverter.java +++ b/src/main/java/org/apache/commons/configuration2/convert/PropertyConverter.java @@ -345,7 +345,7 @@ public final class PropertyConverter { if (n instanceof BigDecimal) { return (BigDecimal) n; } - return new BigDecimal(n.doubleValue()); + return BigDecimal.valueOf(n.doubleValue()); } /** diff --git a/src/test/java/org/apache/commons/configuration2/TestBaseConfiguration.java b/src/test/java/org/apache/commons/configuration2/TestBaseConfiguration.java index e5596f3c..50657766 100644 --- a/src/test/java/org/apache/commons/configuration2/TestBaseConfiguration.java +++ b/src/test/java/org/apache/commons/configuration2/TestBaseConfiguration.java @@ -667,7 +667,7 @@ public class TestBaseConfiguration { assertEquals("Wrong Long returned", Long.valueOf(42L), config.getLong(KEY_NUMBER, null)); assertEquals("Wrong BigInt returned", new BigInteger("42"), config.getBigInteger(KEY_NUMBER)); - assertEquals("Wrong DigDecimal returned", new BigDecimal("42"), config.getBigDecimal(KEY_NUMBER)); + assertEquals("Wrong DigDecimal returned", new BigDecimal("42.0"), config.getBigDecimal(KEY_NUMBER)); } @Test diff --git a/src/test/java/org/apache/commons/configuration2/convert/TestPropertyConverter.java b/src/test/java/org/apache/commons/configuration2/convert/TestPropertyConverter.java index 050eb84d..6e99e536 100644 --- a/src/test/java/org/apache/commons/configuration2/convert/TestPropertyConverter.java +++ b/src/test/java/org/apache/commons/configuration2/convert/TestPropertyConverter.java @@ -48,7 +48,8 @@ public class TestPropertyConverter { // The result is 0.1000000000000000055511151231257827021181583404541015625. // See Sonar rule: https://rules.sonarsource.com/java/type/Bug/RSPEC-2111 final double d = 0.1; - assertEquals("Incorrect BigDecimal value", new BigDecimal(d), PropertyConverter.toBigDecimal(d)); + // Use BigDecimal#valueOf() Fix PMD AvoidDecimalLiteralsInBigDecimalConstructor + assertEquals("Incorrect BigDecimal value", BigDecimal.valueOf(d), PropertyConverter.toBigDecimal(d)); } /**