diff --git a/common/src/main/java/com/genexus/CommonUtil.java b/common/src/main/java/com/genexus/CommonUtil.java index 56f1dcfd8..02d44a005 100644 --- a/common/src/main/java/com/genexus/CommonUtil.java +++ b/common/src/main/java/com/genexus/CommonUtil.java @@ -19,6 +19,7 @@ import java.math.BigInteger; import java.net.HttpURLConnection; import java.net.URL; +import java.util.Comparator; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -853,8 +854,12 @@ public static boolean dateCompare( Date left , Date right) public static int strcmp( String left , String right ) { - return rtrim(left).compareTo(rtrim(right)); - } + return Comparator.nullsFirst(String::compareTo) + .compare( + left == null ? null : rtrim(left), + right == null ? null : rtrim(right) + ); + } public static boolean strcmp2( String left , String right ) @@ -2804,7 +2809,7 @@ else if (className.equals("long") || className.equals("java.lang.Long") || class } else if (className.equals("string") || className.indexOf("java.lang.String") != -1) { - return objStr.equals("null") ? null : objStr; + return (obj == JSONObject.NULL)? null : objStr; } else if (className.equals("double") || className.equals("java.lang.Double") || className.equals("[D")) { diff --git a/java/src/test/java/com/genexus/TestCommonUtil.java b/java/src/test/java/com/genexus/TestCommonUtil.java index 970cfd1fc..6e7765d5e 100644 --- a/java/src/test/java/com/genexus/TestCommonUtil.java +++ b/java/src/test/java/com/genexus/TestCommonUtil.java @@ -295,7 +295,7 @@ public void testConvertObjectTo() { try{ Class stringClass = Class.forName("java.lang.String"); result = CommonUtil.convertObjectTo(obj, stringClass, true); - Assert.assertEquals(null, result); + Assert.assertEquals("null", result); } catch (Exception e){ Assert.fail("Test failed " + e); }