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();
}