From b5cd74441202dbf840e31b2c96ae629caa16b735 Mon Sep 17 00:00:00 2001 From: hongwei Date: Thu, 12 Jun 2025 09:17:46 +0200 Subject: [PATCH] refactor/update JsonSerializers to disable JDouble and JInt deserialization for BigDecimal --- .../com/openbankproject/commons/util/JsonSerializers.scala | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/obp-commons/src/main/scala/com/openbankproject/commons/util/JsonSerializers.scala b/obp-commons/src/main/scala/com/openbankproject/commons/util/JsonSerializers.scala index 2c912360d..b1e5725fe 100644 --- a/obp-commons/src/main/scala/com/openbankproject/commons/util/JsonSerializers.scala +++ b/obp-commons/src/main/scala/com/openbankproject/commons/util/JsonSerializers.scala @@ -146,7 +146,8 @@ object BigDecimalSerializer extends Serializer[BigDecimal] { override def deserialize(implicit format: Formats): PartialFunction[(TypeInfo, JValue), BigDecimal] = { case (TypeInfo(IntervalClass, _), json) => json match { case JString(s) => BigDecimal(s) - case JDouble(s) => BigDecimal(s) +// case JDouble(s) => BigDecimal(s)// not safe,from JInt to BigDecimal, it may lose precision +// case JInt(s) => BigDecimal(s) // not safe,from JInt to BigDecimal, it may lose precision case x => throw new MappingException("Can't convert " + x + " to BigDecimal") } }