Skip to content

Commit

Permalink
Merge pull request #8002 from ShvaykaD/bugfix/entity-data-adapter-con…
Browse files Browse the repository at this point in the history
…vert-value

[3.4.4] Fix data convertion for BigInteger values that stored in DB as String
  • Loading branch information
ashvayka committed Jan 30, 2023
2 parents 9ff4a1d + 8060c67 commit b22d31d
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 3 deletions.
Expand Up @@ -92,8 +92,9 @@ static String convertValue(Object value) {
}
try {
double dblVal = Double.parseDouble(strVal);
if (!Double.isInfinite(dblVal)) {
return Double.toString(dblVal);
String doubleAsString = Double.toString(dblVal);
if (!Double.isInfinite(dblVal) && isSimpleDouble(doubleAsString)) {
return doubleAsString;
}
} catch (NumberFormatException ignored) {
}
Expand All @@ -104,4 +105,9 @@ static String convertValue(Object value) {
}
}

private static boolean isSimpleDouble(String valueAsString) {
return valueAsString.contains(".") && !valueAsString.contains("E") && !valueAsString.contains("e");
}


}
Expand Up @@ -25,6 +25,7 @@ public class EntityDataAdapterTest {
public void testConvertValue() {
assertThat(EntityDataAdapter.convertValue("500")).isEqualTo("500");
assertThat(EntityDataAdapter.convertValue("500D")).isEqualTo("500D"); //do not convert to Double !!!
assertThat(EntityDataAdapter.convertValue("0101010521130565")).isEqualTo("0101010521130565");
assertThat(EntityDataAdapter.convertValue("0101010521130565")).isEqualTo("0101010521130565"); //do not convert to Double !!!
assertThat(EntityDataAdapter.convertValue("89010303310033979663")).isEqualTo("89010303310033979663"); //do not convert to Double !!!
}
}

0 comments on commit b22d31d

Please sign in to comment.