From 7e3f5c17e95c0afb3de3fd640648f148eda4775c Mon Sep 17 00:00:00 2001 From: PJ Fanning Date: Sat, 8 Feb 2025 21:58:03 +0100 Subject: [PATCH] add extra number test --- .../xml/deser/NumberDeserWithXMLTest.java | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/test/java/com/fasterxml/jackson/dataformat/xml/deser/NumberDeserWithXMLTest.java b/src/test/java/com/fasterxml/jackson/dataformat/xml/deser/NumberDeserWithXMLTest.java index 234b373e..cea08164 100644 --- a/src/test/java/com/fasterxml/jackson/dataformat/xml/deser/NumberDeserWithXMLTest.java +++ b/src/test/java/com/fasterxml/jackson/dataformat/xml/deser/NumberDeserWithXMLTest.java @@ -74,6 +74,24 @@ static class NestedFloatHolder2784 { public FloatHolder2784 holder; } + static class DeserializationIssue4917 { + public DecimalHolder4917 decimalHolder; + public double number; + } + + static class DecimalHolder4917 { + public BigDecimal value; + + private DecimalHolder4917(BigDecimal value) { + this.value = value; + } + + @JsonCreator(mode = JsonCreator.Mode.DELEGATING) + static DecimalHolder4917 of(BigDecimal value) { + return new DecimalHolder4917(value); + } + } + /* /********************************************************************** /* Test methods @@ -160,4 +178,15 @@ public void testVeryBigDecimalUnwrappedWithUnlimitedNumLength() throws Exception NestedBigDecimalHolder2784 result = new XmlMapper(f).readValue(DOC, NestedBigDecimalHolder2784.class); assertEquals(new BigDecimal(value), result.holder.value); } + + // [databind#4917] + @Test + public void bigDecimal4917() throws Exception + { + DeserializationIssue4917 issue = MAPPER.readValue( + "100.0050", + DeserializationIssue4917.class); + assertEquals(new BigDecimal("100.00"), issue.decimalHolder.value); + assertEquals(50.0, issue.number); + } }