@@ -81,6 +81,34 @@ static class NestedBigDecimalHolder2784 {
81
81
public BigDecimalHolder2784 holder ;
82
82
}
83
83
84
+ static class DeserializationIssue4917 {
85
+ public DecimalHolder4917 decimalHolder ;
86
+ public double number ;
87
+ }
88
+
89
+ static class DeserializationIssue4917V2 {
90
+ public DecimalHolder4917 decimalHolder ;
91
+ public int number ;
92
+ }
93
+
94
+ static class DeserializationIssue4917V3 {
95
+ public BigDecimal decimal ;
96
+ public double number ;
97
+ }
98
+
99
+ static class DecimalHolder4917 {
100
+ public BigDecimal value ;
101
+
102
+ private DecimalHolder4917 (BigDecimal value ) {
103
+ this .value = value ;
104
+ }
105
+
106
+ @ JsonCreator (mode = JsonCreator .Mode .DELEGATING )
107
+ static DecimalHolder4917 of (BigDecimal value ) {
108
+ return new DecimalHolder4917 (value );
109
+ }
110
+ }
111
+
84
112
/*
85
113
/**********************************************************************
86
114
/* Helper classes, serializers/deserializers/resolvers
@@ -415,4 +443,34 @@ public void bigDecimal4694FromBytes() throws Exception
415
443
assertEquals (BIG_DEC , MAPPER .readValue (b , 0 , b .length , BigDecimal .class ));
416
444
}
417
445
446
+ // [databind#4917]
447
+ @ Test
448
+ public void bigDecimal4917 () throws Exception
449
+ {
450
+ DeserializationIssue4917 issue = MAPPER .readValue (
451
+ a2q ("{'decimalHolder':100.00,'number':50}" ),
452
+ DeserializationIssue4917 .class );
453
+ assertEquals (new BigDecimal ("100.00" ), issue .decimalHolder .value );
454
+ assertEquals (50.0 , issue .number );
455
+ }
456
+
457
+ @ Test
458
+ public void bigDecimal4917V2 () throws Exception
459
+ {
460
+ DeserializationIssue4917V2 issue = MAPPER .readValue (
461
+ a2q ("{'decimalHolder':100.00,'number':50}" ),
462
+ DeserializationIssue4917V2 .class );
463
+ assertEquals (new BigDecimal ("100.00" ), issue .decimalHolder .value );
464
+ assertEquals (50 , issue .number );
465
+ }
466
+
467
+ @ Test
468
+ public void bigDecimal4917V3 () throws Exception
469
+ {
470
+ DeserializationIssue4917V3 issue = MAPPER .readValue (
471
+ a2q ("{'decimal':100.00,'number':50}" ),
472
+ DeserializationIssue4917V3 .class );
473
+ assertEquals (new BigDecimal ("100.00" ), issue .decimal );
474
+ assertEquals (50 , issue .number );
475
+ }
418
476
}
0 commit comments