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));
     }
 
     /**

Reply via email to