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

garydgregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-beanutils.git


The following commit(s) were added to refs/heads/master by this push:
     new aa68b17e Refactor code duplication
aa68b17e is described below

commit aa68b17eef5ac75e449c711a084437f98bd30c29
Author: Gary Gregory <[email protected]>
AuthorDate: Mon Jul 6 15:40:57 2026 -0400

    Refactor code duplication
---
 .../commons/beanutils2/locale/converters/ByteLocaleConverter.java | 6 +-----
 .../beanutils2/locale/converters/DecimalLocaleConverter.java      | 8 ++++++++
 .../beanutils2/locale/converters/IntegerLocaleConverter.java      | 6 +-----
 .../commons/beanutils2/locale/converters/LongLocaleConverter.java | 5 +----
 .../beanutils2/locale/converters/ShortLocaleConverter.java        | 6 +-----
 5 files changed, 12 insertions(+), 19 deletions(-)

diff --git 
a/src/main/java/org/apache/commons/beanutils2/locale/converters/ByteLocaleConverter.java
 
b/src/main/java/org/apache/commons/beanutils2/locale/converters/ByteLocaleConverter.java
index a3286dda..e2e41e93 100644
--- 
a/src/main/java/org/apache/commons/beanutils2/locale/converters/ByteLocaleConverter.java
+++ 
b/src/main/java/org/apache/commons/beanutils2/locale/converters/ByteLocaleConverter.java
@@ -74,11 +74,7 @@ public class ByteLocaleConverter extends 
DecimalLocaleConverter<Byte> {
         if (parsed.longValue() != parsed.byteValue()) {
             throw new ConversionException("Supplied number is not of type 
Byte: " + parsed.longValue());
         }
-        final double doubleValue = parsed.doubleValue();
-        if (doubleValue != Math.rint(doubleValue)) {
-            throw new ConversionException("Supplied number is not an integer: 
" + parsed);
-        }
         // now returns property Byte
-        return Byte.valueOf(parsed.byteValue());
+        return Byte.valueOf(checkInteger(parsed).byteValue());
     }
 }
diff --git 
a/src/main/java/org/apache/commons/beanutils2/locale/converters/DecimalLocaleConverter.java
 
b/src/main/java/org/apache/commons/beanutils2/locale/converters/DecimalLocaleConverter.java
index bdce9a89..353eca74 100644
--- 
a/src/main/java/org/apache/commons/beanutils2/locale/converters/DecimalLocaleConverter.java
+++ 
b/src/main/java/org/apache/commons/beanutils2/locale/converters/DecimalLocaleConverter.java
@@ -96,6 +96,14 @@ public class DecimalLocaleConverter<T extends Number> 
extends BaseLocaleConverte
         super(defaultValue, locale, pattern, useDefault, locPattern);
     }
 
+    Number checkInteger(final Number number) {
+        final double doubleValue = number.doubleValue();
+        if (doubleValue != Math.rint(doubleValue)) {
+            throw new ConversionException("Supplied number is not an integer: 
" + number);
+        }
+        return number;
+    }
+
     /**
      * Tests whether the underlying {@link DecimalFormat} should parse into a 
{@link java.math.BigDecimal} so that magnitude and precision are preserved.
      * Subclasses that build {@link java.math.BigInteger} or {@link 
java.math.BigDecimal} values override this to return {@code true}; the 
narrowing converters
diff --git 
a/src/main/java/org/apache/commons/beanutils2/locale/converters/IntegerLocaleConverter.java
 
b/src/main/java/org/apache/commons/beanutils2/locale/converters/IntegerLocaleConverter.java
index 0cfe6957..5e4fe962 100644
--- 
a/src/main/java/org/apache/commons/beanutils2/locale/converters/IntegerLocaleConverter.java
+++ 
b/src/main/java/org/apache/commons/beanutils2/locale/converters/IntegerLocaleConverter.java
@@ -74,10 +74,6 @@ public class IntegerLocaleConverter extends 
DecimalLocaleConverter<Integer> {
         if (parsed.longValue() != parsed.intValue()) {
             throw new ConversionException("Supplied number is not of type 
Integer: " + parsed.longValue());
         }
-        final double doubleValue = parsed.doubleValue();
-        if (doubleValue != Math.rint(doubleValue)) {
-            throw new ConversionException("Supplied number is not an integer: 
" + parsed);
-        }
-        return Integer.valueOf(parsed.intValue()); // unlike superclass it 
will return proper Integer
+        return Integer.valueOf(checkInteger(parsed).intValue()); // unlike 
superclass it will return proper Integer
     }
 }
diff --git 
a/src/main/java/org/apache/commons/beanutils2/locale/converters/LongLocaleConverter.java
 
b/src/main/java/org/apache/commons/beanutils2/locale/converters/LongLocaleConverter.java
index 7f9ae377..289f4ba1 100644
--- 
a/src/main/java/org/apache/commons/beanutils2/locale/converters/LongLocaleConverter.java
+++ 
b/src/main/java/org/apache/commons/beanutils2/locale/converters/LongLocaleConverter.java
@@ -79,9 +79,6 @@ public class LongLocaleConverter extends 
DecimalLocaleConverter<Long> {
         if (doubleValue < Long.MIN_VALUE || doubleValue > Long.MAX_VALUE) {
             throw new ConversionException("Supplied number is not of type 
Long: " + result);
         }
-        if (doubleValue != Math.rint(doubleValue)) {
-            throw new ConversionException("Supplied number is not an integer: 
" + result);
-        }
-        return Long.valueOf(result.longValue());
+        return Long.valueOf(checkInteger(result).longValue());
     }
 }
diff --git 
a/src/main/java/org/apache/commons/beanutils2/locale/converters/ShortLocaleConverter.java
 
b/src/main/java/org/apache/commons/beanutils2/locale/converters/ShortLocaleConverter.java
index e2d2fad4..9befbc54 100644
--- 
a/src/main/java/org/apache/commons/beanutils2/locale/converters/ShortLocaleConverter.java
+++ 
b/src/main/java/org/apache/commons/beanutils2/locale/converters/ShortLocaleConverter.java
@@ -84,11 +84,7 @@ public class ShortLocaleConverter extends 
DecimalLocaleConverter<Short> {
         if (parsed.longValue() != parsed.shortValue()) {
             throw new ConversionException("Supplied number is not of type 
Short: " + parsed.longValue());
         }
-        final double doubleValue = parsed.doubleValue();
-        if (doubleValue != Math.rint(doubleValue)) {
-            throw new ConversionException("Supplied number is not an integer: 
" + parsed);
-        }
         // now returns property Short
-        return Short.valueOf(parsed.shortValue());
+        return Short.valueOf(checkInteger(parsed).shortValue());
     }
 }

Reply via email to