From 36b2c498dff5cf39143915f41360faa47e5599aa Mon Sep 17 00:00:00 2001 From: AndriiD Date: Tue, 4 Apr 2023 11:52:41 +0300 Subject: [PATCH 1/2] replaced long with BigInteger --- .../thingsboard/server/dao/sql/query/EntityDataAdapter.java | 5 +++-- .../server/dao/sql/query/EntityDataAdapterTest.java | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/dao/src/main/java/org/thingsboard/server/dao/sql/query/EntityDataAdapter.java b/dao/src/main/java/org/thingsboard/server/dao/sql/query/EntityDataAdapter.java index 93875007df..fccdae02ba 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/sql/query/EntityDataAdapter.java +++ b/dao/src/main/java/org/thingsboard/server/dao/sql/query/EntityDataAdapter.java @@ -26,6 +26,7 @@ import org.thingsboard.server.common.data.query.EntityKey; import org.thingsboard.server.common.data.query.EntityKeyType; import org.thingsboard.server.common.data.query.TsValue; +import java.math.BigInteger; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -86,8 +87,8 @@ public class EntityDataAdapter { return strVal; } try { - long longVal = Long.parseLong(strVal); - return Long.toString(longVal); + BigInteger longVal = new BigInteger(strVal); + return longVal.toString(); } catch (NumberFormatException ignored) { } try { diff --git a/dao/src/test/java/org/thingsboard/server/dao/sql/query/EntityDataAdapterTest.java b/dao/src/test/java/org/thingsboard/server/dao/sql/query/EntityDataAdapterTest.java index 89f1dad5ba..876a013646 100644 --- a/dao/src/test/java/org/thingsboard/server/dao/sql/query/EntityDataAdapterTest.java +++ b/dao/src/test/java/org/thingsboard/server/dao/sql/query/EntityDataAdapterTest.java @@ -27,5 +27,6 @@ public class EntityDataAdapterTest { assertThat(EntityDataAdapter.convertValue("500D")).isEqualTo("500D"); //do not convert to Double !!! assertThat(EntityDataAdapter.convertValue("0101010521130565")).isEqualTo("0101010521130565"); //do not convert to Double !!! assertThat(EntityDataAdapter.convertValue("89010303310033979663")).isEqualTo("89010303310033979663"); //do not convert to Double !!! + assertThat(EntityDataAdapter.convertValue("89914009129080723322")).isEqualTo("89914009129080723322"); } } From 54f472e43605f902324c77d832902daa8e6ee5ea Mon Sep 17 00:00:00 2001 From: AndriiD Date: Wed, 5 Apr 2023 12:13:31 +0300 Subject: [PATCH 2/2] added test for case when NumberFormatException is being thrown --- .../thingsboard/server/dao/sql/query/EntityDataAdapterTest.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dao/src/test/java/org/thingsboard/server/dao/sql/query/EntityDataAdapterTest.java b/dao/src/test/java/org/thingsboard/server/dao/sql/query/EntityDataAdapterTest.java index 876a013646..42b1e2c2f6 100644 --- a/dao/src/test/java/org/thingsboard/server/dao/sql/query/EntityDataAdapterTest.java +++ b/dao/src/test/java/org/thingsboard/server/dao/sql/query/EntityDataAdapterTest.java @@ -28,5 +28,7 @@ public class EntityDataAdapterTest { assertThat(EntityDataAdapter.convertValue("0101010521130565")).isEqualTo("0101010521130565"); //do not convert to Double !!! assertThat(EntityDataAdapter.convertValue("89010303310033979663")).isEqualTo("89010303310033979663"); //do not convert to Double !!! assertThat(EntityDataAdapter.convertValue("89914009129080723322")).isEqualTo("89914009129080723322"); + assertThat(EntityDataAdapter.convertValue("899140091AAAA29080723322")).isEqualTo("899140091AAAA29080723322"); + assertThat(EntityDataAdapter.convertValue("899140091.29080723322")).isEqualTo("899140091.29080723322"); } }