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

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


The following commit(s) were added to refs/heads/master by this push:
     new 1c084a64 EMPIREDB-444 ValueUtils: fix for Enum null
1c084a64 is described below

commit 1c084a64d5ec6c4a22873c1fb20ccd830b2a3ea8
Author: Rainer Döbele <[email protected]>
AuthorDate: Tue Oct 29 16:57:38 2024 +0100

    EMPIREDB-444
    ValueUtils: fix for Enum null
---
 .../main/java/org/apache/empire/commons/ValueUtils.java    | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/empire-db/src/main/java/org/apache/empire/commons/ValueUtils.java 
b/empire-db/src/main/java/org/apache/empire/commons/ValueUtils.java
index ab07ba09..10330d61 100644
--- a/empire-db/src/main/java/org/apache/empire/commons/ValueUtils.java
+++ b/empire-db/src/main/java/org/apache/empire/commons/ValueUtils.java
@@ -99,6 +99,8 @@ public class ValueUtils
             return true;
         if (o instanceof DBValueExpr)
             return isEmpty(((DBValueExpr)o).getValue());
+        if (o instanceof Enum)
+            return isEmpty(getString((Enum<?>)o));
         // not empty
         return false;
     }
@@ -183,16 +185,16 @@ public class ValueUtils
             if (o2 instanceof Number)
                 return ((Enum<?>)o1).ordinal()==((Number)o2).intValue();
             // Compare Strings
-            String strVal = StringUtils.coalesce(getString((Enum<?>)o1), 
StringUtils.NULL);
-            return strVal.equals(getString(o2));
+            String strVal = getString((Enum<?>)o1);
+            return StringUtils.compareEqual(strVal, getString(o2));
         }
         else if (o2 instanceof Enum<?>)
         {   // Special enum handling   
             if (o1 instanceof Number)
                 return ((Enum<?>)o2).ordinal()==((Number)o1).intValue();
             // Compare Strings
-            String strVal = StringUtils.coalesce(getString((Enum<?>)o2), 
StringUtils.NULL); 
-            return strVal.equals(getString(o1));
+            String strVal = getString((Enum<?>)o2); 
+            return StringUtils.compareEqual(strVal, getString(o1));
         }
         // Compare Strings
         if (o1 instanceof String)
@@ -461,8 +463,8 @@ public class ValueUtils
         if (enumValue instanceof EnumValue)
             return StringUtils.toString(((EnumValue)enumValue).toValue(false));
         /* special case */
-        if (enumValue==null || enumValue.name().equals(StringUtils.NULL))
-            return null;
+        if (enumValue==null || enumValue.name().equalsIgnoreCase("NULL"))
+            return StringUtils.EMPTY;
         /* use name */
         return enumValue.name();
     }

Reply via email to