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

derjan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/empire-db.git

commit 0c9a689b934321c7d691f4bcbb4c1a6c0ede742b
Author: Sascha <[email protected]>
AuthorDate: Thu Sep 7 11:10:29 2023 +0200

    Bugfix ObjectUtils isZero for decimal type
---
 .../main/java/org/apache/empire/commons/ObjectUtils.java |  2 +-
 .../java/org/apache/empire/commons/ObjectUtilsTest.java  | 16 ++++++++++++++++
 2 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/empire-db/src/main/java/org/apache/empire/commons/ObjectUtils.java 
b/empire-db/src/main/java/org/apache/empire/commons/ObjectUtils.java
index e59957f0..ff4a4f8b 100644
--- a/empire-db/src/main/java/org/apache/empire/commons/ObjectUtils.java
+++ b/empire-db/src/main/java/org/apache/empire/commons/ObjectUtils.java
@@ -150,7 +150,7 @@ public final class ObjectUtils
         if (value instanceof Float)
             return (((Float) value).compareTo(0.0f)==0);
         if (value instanceof Double)
-            return (((Float) value).compareTo(0.0f)==0);
+            return (((Double) value).compareTo(0.0d)==0);
         if (value instanceof Long)
             return (value.longValue()==0l);
         // default: check int value
diff --git 
a/empire-db/src/test/java/org/apache/empire/commons/ObjectUtilsTest.java 
b/empire-db/src/test/java/org/apache/empire/commons/ObjectUtilsTest.java
index 9b48375f..93b2d2bc 100644
--- a/empire-db/src/test/java/org/apache/empire/commons/ObjectUtilsTest.java
+++ b/empire-db/src/test/java/org/apache/empire/commons/ObjectUtilsTest.java
@@ -20,6 +20,7 @@ package org.apache.empire.commons;
 
 import static org.junit.Assert.*;
 
+import java.math.BigDecimal;
 import java.text.DateFormat;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
@@ -52,6 +53,21 @@ public class ObjectUtilsTest
                assertFalse(ObjectUtils.isEmpty(new Object()));
        }
 
+       @Test
+    public void testIsZero()
+    {
+        assertTrue(ObjectUtils.isZero(BigDecimal.ZERO));
+        assertTrue(ObjectUtils.isZero(0f));
+        assertTrue(ObjectUtils.isZero(Float.valueOf("0")));
+        assertTrue(ObjectUtils.isZero(0d));
+        assertTrue(ObjectUtils.isZero(0l));
+        assertTrue(ObjectUtils.isZero(0));
+               assertTrue(ObjectUtils.isZero(null));
+               assertFalse(ObjectUtils.isZero(0.1d));
+        assertFalse(ObjectUtils.isZero(444l));
+        assertFalse(ObjectUtils.isZero(-0.01f));
+    }
+
        /**
         * Test method for
         * {@link 
org.apache.empire.commons.ObjectUtils#compareEqual(java.lang.Object, 
java.lang.Object)}

Reply via email to