From 33e6b39fb58f13026214317259fd21008cb7ac5f Mon Sep 17 00:00:00 2001 From: tomas-sexenian Date: Tue, 24 Jan 2023 22:02:44 -0300 Subject: [PATCH 1/5] Revert "Added webp-imageio lib as dependency to support webp (#657)" This reverts commit 2beb566d81e146eb04a3c1e8ee29b981fd4057db. --- java/pom.xml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/java/pom.xml b/java/pom.xml index d87ff7eed..cad438cb5 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -163,11 +163,6 @@ opentelemetry-api ${io.opentelemetry.version} - - com.github.usefulness - webp-imageio - 0.2.1 - From e7ea082d11696ac39271614473bb120f46ef9b70 Mon Sep 17 00:00:00 2001 From: tomas-sexenian Date: Thu, 2 Feb 2023 14:13:46 -0300 Subject: [PATCH 2/5] FromJson assigns empty strg if input strg is null Issue:101141 --- common/src/main/java/com/genexus/CommonUtil.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/common/src/main/java/com/genexus/CommonUtil.java b/common/src/main/java/com/genexus/CommonUtil.java index 73e92727c..4afe44204 100644 --- a/common/src/main/java/com/genexus/CommonUtil.java +++ b/common/src/main/java/com/genexus/CommonUtil.java @@ -2726,7 +2726,7 @@ public static Object convertObjectTo(Object obj, Class toClass, boolean fail) th try { - if (objStr.isEmpty()) + if (objStr.isEmpty() || objStr.equals("null")) objStr ="0"; else { @@ -2765,7 +2765,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; + return objStr.equals("null") ? "" : objStr; } else if (className.equals("double") || className.equals("java.lang.Double") || className.equals("[D")) { From a5f0250283e9a36437b853f73240ded8267f13be Mon Sep 17 00:00:00 2001 From: tomas-sexenian Date: Tue, 7 Feb 2023 13:42:14 -0300 Subject: [PATCH 3/5] Cover null serialization for all posible toClass --- common/src/main/java/com/genexus/CommonUtil.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/common/src/main/java/com/genexus/CommonUtil.java b/common/src/main/java/com/genexus/CommonUtil.java index 4afe44204..d4c976b55 100644 --- a/common/src/main/java/com/genexus/CommonUtil.java +++ b/common/src/main/java/com/genexus/CommonUtil.java @@ -2771,7 +2771,7 @@ else if (className.equals("double") || className.equals("java.lang.Double") || c { try { - if (objStr.isEmpty()) + if (objStr.isEmpty() || objStr.equals("null")) objStr = "0"; return Double.valueOf(objStr); } @@ -2786,7 +2786,7 @@ else if (className.equals("float") || className.equals("java.lang.Float") || cla { try { - if (objStr.isEmpty()) + if (objStr.isEmpty() || objStr.equals("null")) objStr = "0"; return Float.valueOf(objStr); } @@ -2801,7 +2801,7 @@ else if (className.equals("boolean") || className.equals("java.lang.Boolean") || { try { - return Boolean.valueOf(objStr); + return objStr.equals("null") ? false : Boolean.valueOf(objStr); } catch(Exception e) { @@ -2814,7 +2814,7 @@ else if (className.indexOf("java.math.BigDecimal") != -1) { try { - if (objStr.isEmpty()) + if (objStr.isEmpty() || objStr.equals("null")) objStr = "0"; return DecimalUtil.stringToDec(objStr); } @@ -2828,7 +2828,9 @@ else if (className.indexOf("java.math.BigDecimal") != -1) else if (className.indexOf("java.util.Date") != -1) { try { - if (objStr.indexOf('/')>0) //Json CallAjax + if (objStr.equals("null")) + return nullDate(); + else if (objStr.indexOf('/')>0) //Json CallAjax return LocalUtil.getISO8601Date(objStr); else return new java.text.SimpleDateFormat("EEE MMM dd HH:mm:ss zzz Z").parse(objStr); @@ -2839,7 +2841,7 @@ else if (className.indexOf("java.util.Date") != -1) else if(className.indexOf("java.util.UUID") != -1) { try { - return UUID.fromString(objStr); + return objStr.equals("null") ? new UUID(0,0) : UUID.fromString(objStr); }catch(IllegalArgumentException e) { if(fail) From 693d0f4c5e7e9feefb1efc80b85c36834fe47e52 Mon Sep 17 00:00:00 2001 From: tomas-sexenian Date: Tue, 7 Feb 2023 16:54:45 -0300 Subject: [PATCH 4/5] convertObjectTo unit tests --- .../test/java/com/genexus/TestCommonUtil.java | 146 ++++++++++++++++++ 1 file changed, 146 insertions(+) create mode 100644 java/src/test/java/com/genexus/TestCommonUtil.java diff --git a/java/src/test/java/com/genexus/TestCommonUtil.java b/java/src/test/java/com/genexus/TestCommonUtil.java new file mode 100644 index 000000000..7ea72e3a8 --- /dev/null +++ b/java/src/test/java/com/genexus/TestCommonUtil.java @@ -0,0 +1,146 @@ +package com.genexus; + +import com.genexus.specific.java.Connect; +import com.genexus.specific.java.LogManager; +import org.junit.Assert; +import org.junit.Test; +import java.util.Date; +import java.util.UUID; + +public class TestCommonUtil { + + private void initialize() + { + Connect.init(); + LogManager.initialize("."); + } + + @Test + public void testConvertObjectTo() { + initialize(); + + Object obj; + Object result; + + // Test case 1: Pass in a non-null integer + obj = 1; + try{ + Class integerClass = Class.forName("java.lang.Integer"); + result = CommonUtil.convertObjectTo(obj, integerClass, true); + Assert.assertEquals(Integer.valueOf("1"), result); + } catch (Exception e){ + Assert.fail("Test failed " + e); + } + + // Test case 2: Pass in a "null" integer + obj = "null"; + try{ + Class integerClass = Class.forName("java.lang.Integer"); + result = CommonUtil.convertObjectTo(obj, integerClass, true); + Assert.assertEquals(Integer.valueOf("0"), result); + } catch (Exception e){ + Assert.fail("Test failed " + e); + } + + // Test case 3: Pass in a non-null string + obj = "Hello world"; + try { + Class stringClass = Class.forName("java.lang.String"); + result = CommonUtil.convertObjectTo(obj, stringClass, true); + Assert.assertEquals("Hello world", result); + } catch (Exception e){ + Assert.fail("Test failed " + e); + } + + // Test case 4: Pass in a "null" string + obj = "null"; + try{ + Class stringClass = Class.forName("java.lang.String"); + result = CommonUtil.convertObjectTo(obj, stringClass, true); + Assert.assertEquals("", result); + } catch (Exception e){ + Assert.fail("Test failed " + e); + } + + // Test case 5: Pass in a non-null decimal + obj = 1.5; + try{ + Class decimalClass = Class.forName("java.lang.Float"); + result = CommonUtil.convertObjectTo(obj, decimalClass, true); + Assert.assertEquals(Float.valueOf("1.5"), result); + } catch (Exception e){ + Assert.fail("Test failed " + e); + } + + // Test case 6: Pass in a "null" decimal + obj = "null"; + try{ + Class decimalClass = Class.forName("java.lang.Float"); + result = CommonUtil.convertObjectTo(obj, decimalClass, true); + Assert.assertEquals(Float.valueOf("0"), result); + } catch (Exception e){ + Assert.fail("Test failed " + e); + } + + // Test case 7: Pass in a non-null boolean + obj = true; + try{ + Class booleanClass = Class.forName("java.lang.Boolean"); + result = CommonUtil.convertObjectTo(obj, booleanClass, true); + Assert.assertEquals(true, result); + } catch (Exception e){ + Assert.fail("Test failed " + e); + } + + // Test case 7: Pass in a "null" boolean + obj = "null"; + try{ + Class booleanClass = Class.forName("java.lang.Boolean"); + result = CommonUtil.convertObjectTo(obj, booleanClass, true); + Assert.assertEquals(false, result); + } catch (Exception e){ + Assert.fail("Test failed " + e); + } + + // Test case 8: Pass in a non-null date + obj = new Date(0); + try{ + Class dateClass = Class.forName("java.util.Date"); + result = CommonUtil.convertObjectTo(obj, dateClass, true); + Assert.assertEquals(LocalUtil.getISO8601Date("0001/01/01"), result); + } catch (Exception e){ + Assert.fail("Test failed " + e); + } + + // Test case 9: Pass in a "null" date + obj = "null"; + try{ + Class dateClass = Class.forName("java.util.Date"); + result = CommonUtil.convertObjectTo(obj, dateClass, true); + Assert.assertEquals(CommonUtil.nullDate(), result); + } catch (Exception e){ + Assert.fail("Test failed " + e); + } + + // Test case 9: Pass in a non-null uuid + obj = UUID.randomUUID(); + try{ + Class uudiClass = Class.forName("java.util.UUID"); + result = CommonUtil.convertObjectTo(obj, uudiClass, true); + Assert.assertEquals(UUID.fromString(obj.toString()), result); + } catch (Exception e){ + Assert.fail("Test failed " + e); + } + + // Test case 10: Pass in a "null" uuid + obj = "null"; + try{ + Class uudiClass = Class.forName("java.util.UUID"); + result = CommonUtil.convertObjectTo(obj, uudiClass, true); + Assert.assertEquals(new UUID(0,0), result); + } catch (Exception e){ + Assert.fail("Test failed " + e); + } + } + +} From 3cf9a4c862d9a5a0af5cffdac9a4d7e334d8f2f4 Mon Sep 17 00:00:00 2001 From: tomas-sexenian Date: Mon, 13 Feb 2023 12:01:40 -0300 Subject: [PATCH 5/5] Empty commit