-
-
Notifications
You must be signed in to change notification settings - Fork 1.4k
/
VERSION-2.x
3092 lines (2780 loc) · 140 KB
/
VERSION-2.x
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Project: jackson-databind
------------------------------------------------------------------------
=== Releases ===
------------------------------------------------------------------------
2.18.2 (not yet released)
#4733: Wrong serialization of Type Ids for certain types of Enum values
(reported by @nlisker)
#4787: Wrong `String.format()` in `StdDelegatingDeserializer` hides actual error
(reported by @Horus1337)
#4788: `EnumFeature.WRITE_ENUMS_TO_LOWERCASE` overrides `@JsonProperty` values
(reported by Mike M)
(fix by Joo-Hyuk K)
#4790: Fix `@JsonAnySetter` issue with "setter" method (related to #4639)
(reported by @bsa01)
(fix by Joo-Hyuk K)
2.18.1 (28-Oct-2024)
#4508: Deserialized JsonAnySetter field in Kotlin data class is null
(reported by @MaximValeev)
(fix by Joo-Hyuk K)
#4639: @JsonAnySetter on field ignoring unrecognized properties if they are
declared before the last recognized properties in JSON
(reported by Sim Y-T)
(fix by Joo-Hyuk K)
#4718: Should not fail on trying to serialize `java.time.DateTimeException`
#4724: Deserialization behavior change with Records, `@JsonCreator` and
`@JsonValue` between 2.17 and 2.18
(reported by Antti L)
#4727: Eclipse having issues due`module-info` class "lost" on 2.18.0 jars
#4741: When `Include.NON_DEFAULT` setting is used on POJO, empty values
are not included in json if default is `null`
(reported by @ragnhov)
(fix by Joo-Hyuk K)
#4749: Fixed a problem with `StdDelegatingSerializer#serializeWithType` looking up the serializer
with the wrong argument
(fix by wrongwrong)
2.18.0 (26-Sep-2024)
#562: Allow `@JsonAnySetter` to flow through Creators
(reported by Benson M)
(fix by Joo-Hyuk K)
#806: Problem with `NamingStrategy`, creator methods with implicit names
#2977: Incompatible `FAIL_ON_MISSING_PRIMITIVE_PROPERTIES` and
field level `@JsonProperty`
(reported by @GeorgiPetkov)
#3120: Return `ListIterator` from `ArrayNode.elements()`
(requested by @ludgerb)
(fix by Joo-Hyuk K)
#3241: `constructorDetector` seems to invalidate `defaultSetterInfo`
for nullability
(reported by @joca-bt)
#3439: Java Record `@JsonAnySetter` value is null after deserialization
(reported by @oujesky)
#4085: `@JsonView` does not work on class-level for records
(reported by Ulf D)
#4119: Exception when deserialization uses a record with a constructor
property with `access=READ_ONLY`
(reported by @Mochis)
#4356: `BeanDeserializerModifier::updateBuilder()` doesn't work for
beans with Creator methods
(reported by Mark H)
#4407: `null` type id handling does not work with `writeTypePrefix()`
#4452: `@JsonProperty` not serializing field names properly
on `@JsonCreator` in Record
(reported by @Incara)
#4453: Allow JSON Integer to deserialize into a single-arg constructor of
parameter type `double`
(contributed by David M)
#4456: Rework locking in `DeserializerCache`
(contributed by @pjfanning)
#4458: Rework synchronized block from `BeanDeserializerBase`
(contributed by @pjfanning)
#4464: When `Include.NON_DEFAULT` setting is used, `isEmpty()` method is
not called on the serializer
(reported by Teodor D)
(fix by Joo-Hyuk K)
#4472: Rework synchronized block in `TypeDeserializerBase`
(contributed by @pjfanning)
#4483: Remove `final` on method BeanSerializer.serialize()
(contributed by Matthew L)
#4515: Rewrite Bean Property Introspection logic in Jackson 2.x
#4545: Unexpected deserialization behavior with `@JsonCreator`,
`@JsonProperty` and javac `-parameters`
(reported by Alexandre J)
#4570: Deprecate `ObjectMapper.canDeserialize()`/`ObjectMapper.canSerialize()`
#4580: Add `MapperFeature.SORT_CREATOR_PROPERTIES_BY_DECLARATION_ORDER` to use
Creator properties' declaration order for sorting
#4584: Provide extension point for detecting "primary" Constructor for Kotlin
(and similar) data classes
#4602: Possible wrong use of _arrayDelegateDeserializer in
BeanDeserializerBase::deserializeFromObjectUsingNonDefault()
(reported by Eduard G)
#4617: Record property serialization order not preserved
(reported by @GeorgiPetkov)
#4626: `@JsonIgnore` on Record property ignored for deserialization, if
there is getter override
(reported by Sim Y-T)
#4630: `@JsonIncludeProperties`, `@JsonIgnoreProperties` ignored when serializing
Records, if there is getter override
(reported by Sim Y-T)
#4634: `@JsonAnySetter` not working when annotated on both constructor
parameter & field
(contributed by Sim Y-T)
#4678: Java records don't serialize with `MapperFeature.REQUIRE_SETTERS_FOR_GETTERS`
(reported by Mathijs V)
#4688: Should allow deserializing with no-arg `@JsonCreator(mode = DELEGATING)`
(contributed by Carter K)
#4694: Deserializing `BigDecimal` with large number of decimals result in incorrect value
(reported by @lnthai2002)
#4699: Add extra `writeNumber()` method in `TokenBuffer`
(contributed by @pjfanning)
#4709: Add `JacksonCollectors` with `toArrayNode()` implementation
(contributed by @rikkarth)
2.17.3 (01-Nov-2024)
#4718: Should not fail on trying to serialize `java.time.DateTimeException`
2.17.2 (05-Jul-2024)
#4561: Issues using jackson-databind 2.17.1 with Reactor
(reported by @wdallastella)
#4575: StdDelegatingSerializer does not consider a Converter that may
return null for a non-null input
(reported, fix contributed by Peter L)
#4577: Cannot deserialize value of type `java.math.BigDecimal` from
String "3." (not a valid representation)
(reported by @dmelisso)
#4595: No way to explicitly disable wrapping in custom annotation processor
(reported by @SimonCockx)
#4607: `MismatchedInput`: No Object Id found for an instance of X to
assign to property '@id'
(reported by Susan W)
#4610: `DeserializationFeature.FAIL_ON_UNRESOLVED_OBJECT_IDS` does not work when
used with Polymorphic type handling
(fix by Joo-Hyuk K)
2.17.1 (04-May-2024)
#4428: `ByteBuddy` scope went beyond `test` in version 2.17.0
(reported by Miguel M-R)
(fix by Joo-Hyuk K)
#4430: Use `ReentrantLock` instead of `synchronized` in `DeserializerCache`
to avoid deadlock on pinning
(reported, fix contributed by Oddbjørn K)
#4435: Cannot deserialize value of type `java.math.BigDecimal` from
String ".05": not a valid representation
(reported by @EAlf91)
(fix by @pjfanning)
#4441: `@JsonSetter(nulls = Nulls.SKIP)` doesn't work in some situations
(reported by @Asapin)
(fix by Joo-Hyuk K)
#4450: Empty QName deserialized as `null`
(reported by @winfriedgerlach)
#4471: Reconsider deprecation of `JsonNode.asText(defaultValue)`
(requested by @aerisnju)
(fix by Joo-Hyuk K)
#4481: Unable to override `DeserializationFeature.READ_UNKNOWN_ENUM_VALUES_AS_NULL`
with `JsonFormat.Feature.READ_UNKNOWN_ENUM_VALUES_AS_NULL`
(reported by @luozhenyu)
#4489: Unable to override `DeserializationFeature.READ_UNKNOWN_ENUM_VALUES_USING_DEFAULT_VALUE`
with `JsonFormat.Feature.READ_UNKNOWN_ENUM_VALUES_USING_DEFAULT_VALUE`
(fix by Joo-Hyuk K)
2.17.0 (12-Mar-2024)
#437: Support throwing `MismatchedInputException` when deserializing
properties that are not part of the view
(contributed by Joo-Hyuk K)
#736: `MapperFeature.REQUIRE_SETTERS_FOR_GETTERS` has no effect
(reported by @migel)
(fix contributed by Joo-Hyuk K)
#2543: Introspection includes delegating ctor's only parameter as
a property in `BeanDescription`
(reported by @nikita2206)
(fix contributed by Kyrylo M)
#4160: Deprecate `DefaultTyping.EVERYTHING` in `2.x` and remove in `3.0`
(contributed by Joo-Hyuk K)
#4194: Add `JsonNodeFeature.FAIL_ON_NAN_TO_BIG_DECIMAL_COERCION` option to
fail on attempting to coerce `NaN` into `BigDecimal`
(contributed by Joo-Hyuk K)
#4205: Consider types in `sun.*` package(s) to be JDK (platform) types
for purposes of handling
#4209: Make `BeanDeserializerModifier`/`BeanSerializerModifier`
implement `java.io.Serializable`
(fix contributed by Muhammad K)
#4214: `EnumSet` deserialization does not work when we activate
default typing in `ObjectMapper`
(reported by @dvhvsekhar)
#4248: `ThrowableDeserializer` does not handle `null` well for `cause`
#4250: Add input validation for `NumberDeserializers` deserializers
for "stringified" FP numbers
#4262: Improve handling of `null` insertion failure for `TreeSet`
#4263: Change `ObjectArrayDeserializer` to use "generic" type parameter
(`java.lang.Object`) to remove co-variant return type
#4299: Some `Collection` and `Map` fallbacks don't work in GraalVM native image
(contributed by Eduard D)
#4309: `@JsonSetter(nulls=...)` handling of `Collection` `null` values during
deserialization with `READ_UNKNOWN_ENUM_VALUES_AS_NULL` and `FAIL_ON_INVALID_SUBTYPE` wrong
(reported by @ivan-zaitsev)
(fix contributed by Joo-Hyuk K)
#4327: `@JsonAlias` not respected by polymorphic deduction
(reported by @k-wall)
(fix contributed by Joo-Hyuk K)
#4337: `AtomicReference` serializer does not support `@JsonSerialize(contentConverter=...)`
#4364: `@JsonProperty` and equivalents should merge with `AnnotationIntrospectorPair`
#4394: Better Base64 support for `java.util.UUIDs`
without padding
(fix contributed by Jesper B)
#4403: Deserialization of unknown value for enums does not yield default enum value
(reported by @dominik-henning)
#4416: Deprecate `JsonNode.asText(String)`
(suggested by András P)
- JUnit5 upgraded to 5.10.1
2.16.3 (not yet released)
#4564: Possible 2.16.0 Enum-as-JSON-Object serialization regression
(reported by Guillaume J)
(fix contributed by Joo-Hyuk K)
#4581: Incompatible Constructor Parameter Type in `EnumDeserializer`
(reported by @Hunter-Lam)
#4787: Wrong `String.format()` in `StdDelegatingDeserializer` hides actual error
(reported by @Horus1337)
2.16.2 (09-Mar-2024)
#4302: Problem deserializing some type of Enums when using `PropertyNamingStrategy`
(reported by Pieter D-S)
(fix contributed by Joo-Hyuk K)
#4303: `ObjectReader` is not serializable if it's configured for polymorphism
(reported by @asardaes)
(fix contributed by Joo-Hyuk K)
#4316: NPE when deserializing `JsonAnySetter` in `Throwable`
(reported by @jpraet)
(fix contributed by Joo-Hyuk K)
#4355: Jackson 2.16 fails attempting to obtain `ObjectWriter` for an `Enum` of which
some value returns null from `toString()`
(reported by @YutaHiguchi-bsn)
#4409: Deserialization of enums with name defined with different cases leads to
`InvalidDefinitionException`: Multiple fields representing property
(reported by Stephane B)
(fix contributed by Joo-Hyuk K)
2.16.1 (24-Dec-2023)
#4200: `JsonSetter(contentNulls = FAIL)` is ignored in delegating
`@JsonCreator` argument
#4216: Primitive array deserializer cannot being captured by `DeserializerModifier`
(reported by @SakuraKoi)
(fix contributed by Joo-Hyuk K)
#4229 JsonNode findValues and findParents missing expected values in 2.16.0
(reported by @gcookemoto)
(fix contributed by Joo-Hyuk K)
2.16.0 (15-Nov-2023)
#1770: Incorrect deserialization for `BigDecimal` numbers
(reported by @cristian-mocanu-mob)
(fix by @pjfanning)
#2502: Add a way to configure caches Jackson uses
(contributed by Joo-Hyuk K)
#2787: Mix-ins do not work for `Enum`s
(fix contributed by Joo-Hyuk K)
#3133: Map deserialization results in different numeric classes based on
json ordering (BigDecimal / Double) when used in combination with @JsonSubTypes
(reported by @mreiterer)
#3277: Combination of `@JsonUnwrapped` and `@JsonAnySetter` results in `BigDecimal`
instead of `Double`
(reported John H)
#3251: Generic class with generic field of runtime type `Double` is deserialized
as `BigDecimal` when used with `@JsonTypeInfo` and `JsonTypeInfo.As.EXISTING_PROPERTY`
(reported by Kevin B)
#3647: `@JsonIgnoreProperties` not working with `@JsonValue`
(reported by @ThatSneakyRaccoon)
(fix contributed by Joo-Hyuk K)
#3780: Deprecated JsonNode.with(String) suggests using JsonNode.withObject(String)
but it is not the same thing
(reported by @bmatasar)
#3838: Difference in the handling of `ObjectId-property` in `JsonIdentityInfo`
depending on the deserialization route
(fix contributed by Joo-Hyuk K)
#3877: Add new `OptBoolean` valued property in `@JsonTypeInfo`, handling,
to allow per-polymorphic type loose Type Id handling
(contributed by Joo-Hyuk K)
#3906: Regression: 2.15.0 breaks deserialization for records when
`mapper.setVisibility(PropertyAccessor.ALL, Visibility.NONE)`
(reported by Endre S)
#3924: Incorrect target type when disabling coercion, trying to deserialize
String from Array/Object
(reported by João G)
(fix contributed by Joo-Hyuk K)
#3928: `@JsonProperty` on constructor parameter changes default field serialization order
(contributed by @pjfanning)
#3948: `@JsonIgnore` no longer works for transient backing fields
(reported by Jason L)
#3950: Create new `JavaType` subtype `IterationType` (extending `SimpleType`)
#3953: Use `JsonTypeInfo.Value` for annotation handling
(contributed by Joo-Hyuk K)
#3965: Add `JsonNodeFeature.WRITE_PROPERTIES_SORTED` for sorting `ObjectNode` properties
on serialization
#3992: `@JsonIgnore` on Record property ignored if there is getter override
(reported by @ennishol)
#4008: Optimize `ObjectNode` findValue(s) and findParent(s) fast paths
(contributed by David S)
#4009: Locale "" is deserialised as `null` if `ACCEPT_EMPTY_STRING_AS_NULL_OBJECT`
is enabled
(reported by Philipp K)
#4011: Add guardrail setting for `TypeParser` handling of type parameters
#4036: Use `@JsonProperty` for Enum values also when `READ_ENUMS_USING_TO_STRING` enabled
(contributed by @iProdigy)
#4037: Fix `Enum` deserialization to use `@JsonProperty`, `@JsonAlias` even if
`EnumNamingStrategy` used
(contributed by @iProdigy)
#4039: Use `@JsonProperty` and lowercase feature when serializing Enums despite
using toString()
(contributed by @iProdigy)
#4040: Use `@JsonProperty` over `EnumNamingStrategy` for Enum serialization
(contributed by @iProdigy)
#4041: Actually cache EnumValues#internalMap
(contributed by @iProdigy)
#4047: `ObjectMapper.valueToTree()` will ignore the configuration
`SerializationFeature.WRAP_ROOT_VALUE`
(contributed by Joo-Hyuk K)
#4056: Provide the "ObjectMapper.treeToValue(TreeNode, TypeReference)" method
(contributed by @fantasy0v0)
#4060: Expose `NativeImageUtil.isRunningInNativeImage()` method
#4061: Add JsonTypeInfo.Id.SIMPLE_NAME which defaults type id to `Class.getSimpleName()`
(requested by Omar A)
(contributed by Joo-Hyuk K)
#4071: Impossible to deserialize custom `Throwable` sub-classes that do not
have single-String constructors
(reported by @PasKal)
(fix contributed by Joo-Hyuk K)
#4078: `java.desktop` module is no longer optional
(reported by Andreas Z)
(fix contributed by Joo-Hyuk K)
#4082: `ClassUtil` fails with `java.lang.reflect.InaccessibleObjectException`
trying to setAccessible on `OptionalInt` with JDK 17+
#4090: Support sequenced collections (JDK 21)S
(contributed by @pjfanning)
#4095: Add `withObjectProperty(String)`, `withArrayProperty(String)` in `JsonNode`
#4096: Change `JsonNode.withObject(String)` to work similar to `withArray()`
wrt argument
#4144: Log WARN if deprecated subclasses of `PropertyNamingStrategy` is used
(contributed by Naoki T)
#4145: NPE when transforming a tree to a model class object, at `ArrayNode.elements()`
(reported by Ondrej Z)
#4153: Deprecated `ObjectReader.withType(Type)` has no direct replacement;
need `forType(Type)`
(reported by Garren W)
#4164: Do not rewind `position` when serializing direct `ByteBuffer`
(fix contributed by Jonas K)
#4159: Add new `DefaultTyping.NON_FINAL_AND_ENUMS` to allow Default Typing for `Enum`s
(contributed by Joo-Hyuk K)
#4175: Exception when deserialization of private record with default constructor
(reported by Jan P)
(contributed by Joo-Hyuk K)
#4184: `BeanDeserializer` updates `currentValue` incorrectly when
deserialising empty Object
(reported by @nocny-x)
2.15.4 (15-Feb-2024)
#1172: `@JsonView` doesn't work with `@JsonCreator`
(reported by Dmitry B)
#4185: `@JsonIgnoreProperties` with `@JsonTypeInfo(include = JsonTypeInfo.As.EXTERNAL_PROPERTY)`
does not work
(reported by @jonasho)
(fix contributed by Joo-Hyuk K)
#4303: `ObjectReader` is not serializable if it's configured for polymorphism
(reported by @asardaes)
(fix contributed by Joo-Hyuk K)
#4378: `TextNode.equals()` throws `NullPointerException` when `TextNode`
constructed with `null`
(reported by @Javed6234)
(fix contributed by @pjfanning)
2.15.3 (12-Oct-2023)
#3968: Records with additional constructors failed to deserialize
(fix contributed by Sim Y-T)
#4121: Preserve the original component type in merging to an array
(contributed by Yury M)
2.15.2 (30-May-2023)
#3938: Record setter not included from interface (2.15 regression)
2.15.1 (16-May-2023)
#3882: Error in creating nested `ArrayNode`s with `JsonNode.withArray()`
(reported by @SaiKrishna369)
#3894: Only avoid Records fields detection for deserialization
(contributed by Sim Y-T)
#3895: 2.15.0 breaking behaviour change for records and Getter Visibility
(reported by Matteo B)
#3897: 2.15.0 breaks deserialization when POJO/Record only has a single field
and is marked `Access.WRITE_ONLY`
(reported by Antti L)
(fix contributed by Sim Y-T)
#3913: Issue with deserialization when there are unexpected properties (due
to null `StreamReadConstraints`)
(reported by @sbertault)
#3914: Fix TypeId serialization for `JsonTypeInfo.Id.DEDUCTION`, native type ids
2.15.0 (23-Apr-2023)
#2536: Add `EnumFeature.READ_ENUM_KEYS_USING_INDEX` to work with
existing "WRITE_ENUM_KEYS_USING_INDEX"#
#2667: Add `@EnumNaming`, `EnumNamingStrategy` to allow use of naming
strategies for Enums
(contributed by Joo-Hyuk K)
#2968: Deserialization of `@JsonTypeInfo` annotated type fails with
missing type id even for explicit concrete subtypes
(requested by Patrick S)
(fix contributed by Joo-Hyuk K)
#2974: Null coercion with `@JsonSetter` does not work with `java.lang.Record`
(fix contributed by Sim Y-T)
#2992: Properties naming strategy do not work with Record
(fix contributed by Sim Y-T)
#3053: Allow serializing enums to lowercase (`EnumFeature.WRITE_ENUMS_TO_LOWERCASE`)
(requested by Vojtěch K)
(fix contributed by Joo-Hyuk K)
#3180: Support `@JsonCreator` annotation on record classes
(fix contributed by Sim Y-T)
#3262: InvalidDefinitionException when calling mapper.createObjectNode().putPOJO
#3297: `@JsonDeserialize(converter = ...)` does not work with Records
(fix contributed by Sim Y-T)
#3342: `JsonTypeInfo.As.EXTERNAL_PROPERTY` does not work with record wrappers
(fix contributed by Sim Y-T)
#3352: Do not require the usage of opens in a modular app when using records
#3566: Cannot use both `JsonCreator.Mode.DELEGATING` and `JsonCreator.Mode.PROPERTIES`
static creator factory methods for Enums
(reported by @andrewbents)
#3637: Add enum features into `@JsonFormat.Feature`
(requested by @Anatoly4444)
(fix contributed by Ajay S)
#3638: Case-insensitive and number-based enum deserialization are
(unnecessarily) mutually exclusive
(reported by Phil G)
(fix contributed by Joo-Hyuk K)
#3651: Deprecate "exact values" setting from `JsonNodeFactory`, replace with
`JsonNodeFeature.STRIP_TRAILING_BIGDECIMAL_ZEROES`
#3654: Infer `@JsonCreator(mode = Mode.DELEGATING)` from use of `@JsonValue`)
#3676: Allow use of `@JsonCreator(mode = Mode.PROPERTIES)` creator for POJOs
with"empty String" coercion
#3680: Timestamp in classes inside jar showing 02/01/1980
(fix contributed by Hervé B)
#3682: Transient `Field`s are not ignored as Mutators if there is visible Getter
#3690: Incorrect target type for arrays when disabling coercion
(reported by João G)
#3708: Seems like `java.nio.file.Path` is safe for Android API level 26
(contributed by @pjfanning)
#3730: Add support in `TokenBuffer` for lazily decoded (big) numbers
(contributed by @pjfanning)
#3736: Try to avoid auto-detecting Fields for Record types
#3742: schemaType of `LongSerializer` is wrong
(reported by @luozhenyu)
#3745: Deprecate classes in package `com.fasterxml.jackson.databind.jsonschema`
(contributed by @luozhenyu)
#3748: `DelegatingDeserializer` missing override of `getAbsentValue()`
(and couple of other methods)
#3771: Classloader leak: DEFAULT_ANNOTATION_INTROSPECTOR holds annotation reference
(reported by Christoph S)
#3791: Flush readonly map together with shared on `SerializerCache.flush()`
(suggested by @vdaniloff)
#3796: Enum Deserialisation Failing with Polymorphic type validator
(reported by @sagarika4)
#3809: Add Stream-friendly alternative to `ObjectNode.fields()`:
`Set<Map.Entry<String, JsonNode>> properties()`
#3814: Enhance `StdNodeBasedDeserializer` to support `readerForUpdating`
(requested by Matt N)
(contributed by Joo-Hyuk K)
#3816: TokenBuffer does not implement writeString(Reader reader, int len)
(reported by Patrick S)
#3819: Add convenience method `SimpleBeanPropertyFilter.filterOutAll()` as
counterpart of `serializeAll()`
(contributed by Joo-Hyuk K)
#3836: `Optional<Boolean>` is not recognized as boolean field
(reported by @thnaeff)
(fix contributed by Joo-Hyuk K)
#3853: Add `MapperFeature.REQUIRE_TYPE_ID_FOR_SUBTYPES` to enable/disable
strict subtype Type Id handling
(contributed by Steve S))
#3876: `TypeFactory` cache performance degradation with `constructSpecializedType()`
(contributed by Carter K)
2.14.3 (05-May-2023)
#3784: `PrimitiveArrayDeserializers$ByteDeser.deserialize` ignores
`DeserializationProblemHandler` for invalid Base64 content
#3837: Set transformer factory attributes to improve protection against XXE
(contributed by @pjfanning)
2.14.2 (28-Jan-2023)
#1751: `@JsonTypeInfo` does not work if the Type Id is an Integer value
(reported by @marvin-we)
#3063: `@JsonValue` fails for Java Record
(reported by Gili T)
#3699: Allow custom `JsonNode` implementations
(contributed by Philippe M)
#3711: Enum polymorphism not working correctly with DEDUCTION
(reported by @smilep)
#3741: `StdDelegatingDeserializer` ignores `nullValue` of `_delegateDeserializer`.
2.14.1 (21-Nov-2022)
#3655: `Enum` values can not be read from single-element array even with
`DeserializationFeature.UNWRAP_SINGLE_VALUE_ARRAYS`
(reported by Andrej M)
(fix contributed by Jonas K)
#3665: `ObjectMapper` default heap consumption increased significantly from 2.13.x to 2.14.0
(reported by Moritz H)
(fix contributed by Jonas K)
2.14.0 (05-Nov-2022)
#1980: Add method(s) in `JsonNode` that works like combination of `at()`
and `with()`: `withObject(...)` and `withArray(...)`
#2541: Cannot merge polymorphic objects
(reported by Matthew A)
(fix contributed by James W)
#3013: Allow disabling Integer to String coercion via `CoercionConfig`
(reported by @emilkostadinov)
(fix contributed by Jordi O-A)
#3212: Add method `ObjectMapper.copyWith(JsonFactory)`
(requested by @quaff)
(contributed by Felix V)
#3311: Add serializer-cache size limit to avoid Metaspace issues from
caching Serializers
(requested by mcolemanNOW@github)
#3338: `configOverride.setMergeable(false)` not supported by `ArrayNode`
(requested by Ernst-Jan vdL)
#3357: `@JsonIgnore` does not if together with `@JsonProperty` or `@JsonFormat`
(reported by lizongbo@github)
#3373: Change `TypeSerializerBase` to skip `generator.writeTypePrefix()`
for `null` typeId
#3394: Allow use of `JsonNode` field for `@JsonAnySetter`
(requested by @sixcorners)
#3405: Create DataTypeFeature abstraction (for JSTEP-7) with placeholder features
#3417: Allow (de)serializing records using Bean(De)SerializerModifier even when
reflection is unavailable
(contributed by Jonas K)
#3419: Improve performance of `UnresolvedForwardReference` for forward reference
resolution
(contributed by Gary M)
#3421: Implement `JsonNodeFeature.READ_NULL_PROPERTIES` to allow skipping of
JSON `null` values on reading
#3443: Do not strip generic type from `Class<C>` when resolving `JavaType`
(contributed by Jan J)
#3447: Deeply nested JsonNode throws StackOverflowError for toString()
(reported by Deniz H)
#3475: Support use of fast double parse
(contributed by @pjfanning)
#3476: Implement `JsonNodeFeature.WRITE_NULL_PROPERTIES` to allow skipping
JSON `null` values on writing
#3481: Filter method only got called once if the field is null when using
`@JsonInclude(value = JsonInclude.Include.CUSTOM, valueFilter = SomeFieldFilter.class)`
(contributed by AmiDavidW@github)
#3484: Update `MapDeserializer` to support `StreamReadCapability.DUPLICATE_PROPERTIES`
#3497: Deserialization of Throwables with PropertyNamingStrategy does not work
#3500: Add optional explicit `JsonSubTypes` repeated names check
(contributed by Igor S)
#3503: `StdDeserializer` coerces ints to floats even if configured to fail
(contributed by Jordi O-A)
#3505: Fix deduction deserializer with DefaultTypeResolverBuilder
(contributed by Arnaud S)
#3528: `TokenBuffer` defaults for parser/stream-read features neither passed
from parser nor use real defaults
#3530: Change LRUMap to just evict one entry when maxEntries reached
(contributed by @pjfanning)
#3533: Deserialize missing value of `EXTERNAL_PROPERTY` type using
custom `NullValueProvider`
#3535: Replace `JsonNode.with()` with `JsonNode.withObject()`
#3559: Support `null`-valued `Map` fields with "any setter"
#3568: Change `JsonNode.with(String)` and `withArray(String)` to consider
argument as `JsonPointer` if valid expression
#3590: Add check in primitive value deserializers to avoid deep wrapper array
nesting wrt `UNWRAP_SINGLE_VALUE_ARRAYS` [CVE-2022-42003]
#3609: Allow non-boolean return type for "is-getters" with
`MapperFeature.ALLOW_IS_GETTERS_FOR_NON_BOOLEAN`
(contributed by Richard K)
#3613: Implement `float` and `boolean` to `String` coercion config
(fix contributed by Jordi O-A)
#3624: Legacy `ALLOW_COERCION_OF_SCALARS` interacts poorly with Integer to
Float coercion
(contributed by Carter K)
#3633: Expose `translate()` method of standard `PropertyNamingStrategy` implementations
(requested by Joachim D)
2.13.5 (23-Jan-2023)
#3659: Improve testing (likely via CI) to try to ensure compatibility with
specific Android SDKs
#3661: Jackson 2.13 uses Class.getTypeName() that is only available on Android SDK 26
(with fix works on ASDK 24)
2.13.4.2 (13-Oct-2022)
#3627: Gradle module metadata for `2.13.4.1` references non-existent
jackson-bom `2.13.4.1` (instead of `2.13.4.20221012`)
(NOTE: root cause is [jackson-bom#52])
2.13.4.1 (12-Oct-2022)
#3590: Add check in primitive value deserializers to avoid deep wrapper array
nesting wrt `UNWRAP_SINGLE_VALUE_ARRAYS` [CVE-2022-42003]
2.13.4 (03-Sep-2022)
#3275: JDK 16 Illegal reflective access for `Throwable.setCause()` with
`PropertyNamingStrategy.UPPER_CAMEL_CASE`
(reported by Jason H)
(fix suggested by gsinghlulu@github)
#3565: `Arrays.asList()` value deserialization has changed from mutable to
immutable in 2.13
(reported by JonasWilms@github)
#3582: Add check in `BeanDeserializer._deserializeFromArray()` to prevent
use of deeply nested arrays [CVE-2022-42004]
2.13.3 (14-May-2022)
#3412: Version 2.13.2 uses `Method.getParameterCount()` which is not supported on
Android before API 26
#3419: Improve performance of `UnresolvedForwardReference` for forward
reference resolution
(contributed by Gary M)
#3446: `java.lang.StringBuffer` cannot be deserialized
(reported by Lolf1010@github)
#3450: DeserializationProblemHandler is not working with wrapper type
when returning null
(reported by LJeanneau@github)
2.13.2.2 (28-Mar-2022)
No changes since 2.13.2.1 but fixed Gradle Module Metadata ("module.json")
2.13.2.1 (24-Mar-2022)
#2816: Optimize UntypedObjectDeserializer wrt recursion
(contributed by Taylor S, Spence N)
#3412: Version 2.13.2 uses `Method.getParameterCount()` which is not
supported on Android before API 26
(reported by Matthew F)
2.13.2 (06-Mar-2022)
#3293: Use Method.getParameterCount() where possible
(suggested by Christoph D)
#3344: `Set.of()` (Java 9) cannot be deserialized with polymorphic handling
(reported by Sam K)
#3368: `SnakeCaseStrategy` causes unexpected `MismatchedInputException` during
deserialization
(reported by sszuev@github)
#3369: Deserialization ignores other Object fields when Object or Array
value used for enum
(reported by Krishna G)
#3380: `module-info.java` is in `META-INF/versions/11` instead of `META-INF/versions/9`
2.13.1 (19-Dec-2021)
#3006: Argument type mismatch for `enum` with `@JsonCreator` that takes String,
gets JSON Number
(reported by GrozaAnton@github)
#3299: Do not automatically trim trailing whitespace from `java.util.regex.Pattern` values
(reported by Joel B)
#3305: ObjectMapper serializes `CharSequence` subtypes as POJO instead of
as String (JDK 15+)
(reported by stevenupton@github; fix suggested by Sergey C)
#3308: `ObjectMapper.valueToTree()` fails when
`DeserializationFeature.FAIL_ON_TRAILING_TOKENS` is enabled
(fix contributed by raphaelNguyen@github)
#3328: Possible DoS if using JDK serialization to serialize JsonNode
2.13.0 (30-Sep-2021)
#1850: `@JsonValue` with integer for enum does not deserialize correctly
(reported by tgolden-andplus@github)
(fix contributed by limengning@github)
#1988: MapperFeature.ACCEPT_CASE_INSENSITIVE_ENUM does not work for Enum keys of Map
(reported by Myp3ik@github)
#2509: `AnnotatedMethod.getValue()/setValue()` doesn't have useful exception message
(reported by henryptung@github)
(fix contributed by Stephan S)
#2828: Add `DatabindException` as intermediate subtype of `JsonMappingException`
#2900: Jackson does not support deserializing new Java 9 unmodifiable collections
(reported by Daniel H)
#2989: Allocate TokenBuffer instance via context objects (to allow format-specific
buffer types)
#3001: Add mechanism for setting default `ContextAttributes` for `ObjectMapper`
#3002: Add `DeserializationContext.readTreeAsValue()` methods for more convenient
conversions for deserializers to use
#3011: Clean up support of typed "unmodifiable", "singleton" Maps/Sets/Collections
#3033: Extend internal bitfield of `MapperFeature` to be `long`
#3035: Add `removeMixIn()` method in `MapperBuilder`
#3036: Backport `MapperBuilder` lambda-taking methods: `withConfigOverride()`,
`withCoercionConfig()`, `withCoercionConfigDefaults()`
#3080: configOverrides(boolean.class) silently ignored, whereas .configOverride(Boolean.class)
works for both primitives and boxed boolean values
(reported by Asaf R)
#3082: Dont track unknown props in buffer if `ignoreAllUnknown` is true
(contributed by David H)
#3091: Should allow deserialization of java.time types via opaque
`JsonToken.VALUE_EMBEDDED_OBJECT`
#3099: Optimize "AnnotatedConstructor.call()" case by passing explicit null
#3101: Add AnnotationIntrospector.XmlExtensions interface for decoupling javax dependencies
#3110: Custom SimpleModule not included in list returned by ObjectMapper.getRegisteredModuleIds()
after registration
(reported by dkindler@github)
#3117: Use more limiting default visibility settings for JDK types (java.*, javax.*)
#3122: Deep merge for `JsonNode` using `ObjectReader.readTree()`
(reported by Eric S)
#3125: IllegalArgumentException: Conflicting setter definitions for property
with more than 2 setters
(reported by mistyzyq@github)
#3130: Serializing java.lang.Thread fails on JDK 11 and above (should suppress
serialization of ClassLoader)
#3143: String-based `Map` key deserializer is not deterministic when there is no
single arg constructor
(reported by Halil İbrahim Ş)
#3154: Add ArrayNode#set(int index, primitive_type value)
(contributed by Tarekk Mohamed A)
#3160: JsonStreamContext "currentValue" wrongly references to @JsonTypeInfo
annotated object
(reported by Aritz B)
#3174: DOM `Node` serialization omits the default namespace declaration
(contributed by Morten A-G)
#3177: Support `suppressed` property when deserializing `Throwable`
(contributed by Klaas D)
#3187: `AnnotatedMember.equals()` does not work reliably
(contributed by Klaas D)
#3193: Add `MapperFeature.APPLY_DEFAULT_VALUES`, initially for Scala module
(suggested by Nick B)
#3214: For an absent property Jackson injects `NullNode` instead of `null` to a
JsonNode-typed constructor argument of a `@ConstructorProperties`-annotated constructor
(reported by robvarga@github)
#3217: `XMLGregorianCalendar` doesn't work with default typing
(reported by Xinzhe Y)
#3227: Content `null` handling not working for root values
(reported by João G)
(fix contributed by proost@github)
#3234: StdDeserializer rejects blank (all-whitespace) strings for ints
(reported by Peter B)
(fix proposed by qthegreat3@github)
#3235: `USE_BASE_TYPE_AS_DEFAULT_IMPL` not working with `DefaultTypeResolverBuilder`
(reported, fix contributed by silas.u / sialais@github)
#3238: Add PropertyNamingStrategies.UpperSnakeCaseStrategy (and UPPER_SNAKE_CASE constant)
(requested by Kenneth J)
(contributed by Tanvesh)
#3244: StackOverflowError when serializing JsonProcessingException
(reported by saneksanek@github)
#3259: Support for BCP 47 `java.util.Locale` serialization/deserialization
(contributed by Abishek R)
#3271: String property deserializes null as "null" for JsonTypeInfo.As.EXISTING_PROPERTY
(reported by jonc2@github)
#3280: Can not deserialize json to enum value with Object-/Array-valued input,
`@JsonCreator`
(reported by peteryuanpan@github)
#3397: Optimize `JsonNodeDeserialization` wrt recursion
- Fix to avoid problem with `BigDecimalNode`, scale of `Integer.MIN_VALUE` (see
[dataformats-binary#264] for details)
- Extend handling of `FAIL_ON_NULL_FOR_PRIMITIVES` to cover coercion from (Empty) String
via `AsNull`
- Add `mvnw` wrapper
2.12.7.1 (12-Oct-2022)
#3582: Add check in `BeanDeserializer._deserializeFromArray()` to prevent
use of deeply nested arrays [CVE-2022-42004]
#3590: Add check in primitive value deserializers to avoid deep wrapper array
nesting wrt `UNWRAP_SINGLE_VALUE_ARRAYS` [CVE-2022-42003]
2.12.7 (26-May-2022)
#2816: Optimize UntypedObjectDeserializer wrt recursion [CVE-2020-36518]
2.12.6 (15-Dec-2021)
#3280: Can not deserialize json to enum value with Object-/Array-valued input,
`@JsonCreator`
(reported by peteryuanpan@github)
#3305: ObjectMapper serializes `CharSequence` subtypes as POJO instead of
as String (JDK 15+)
(reported by stevenupton@github; fix suggested by Sergey C)
#3328: Possible DoS if using JDK serialization to serialize JsonNode
2.12.5 (27-Aug-2021)
#3220: (regression) Factory method generic type resolution does not use
Class-bound type parameter
(reported by Marcos P)
2.12.4 (06-Jul-2021)
#3139: Deserialization of "empty" subtype with DEDUCTION failed
(reported by JoeWoo; fix provided by drekbour@github)
#3146: Merge findInjectableValues() results in AnnotationIntrospectorPair
(contributed by Joe B)
#3171: READ_UNKNOWN_ENUM_VALUES_USING_DEFAULT_VALUE doesn't work with empty strings
(reported by unintended@github)
2.12.3 (12-Apr-2021)
#3108: `TypeFactory` cannot convert `Collection` sub-type without type parameters
to canonical form and back
(reported by lbilger@github)
- Fix for [modules-java8#207]: prevent fail on secondary Java 8 date/time types
2.12.2 (03-Mar-2021)
#754: EXTERNAL_PROPERTY does not work well with `@JsonCreator` and
`FAIL_ON_UNKNOWN_PROPERTIES`
(reported by Vassil D)
#3008: String property deserializes null as "null" for
`JsonTypeInfo.As.EXTERNAL_PROPERTY`
#3022: Property ignorals cause `BeanDeserializer `to forget how to read
from arrays (not copying `_arrayDelegateDeserializer`)
(reported by Gian M)
#3025: UntypedObjectDeserializer` mixes multiple unwrapped
collections (related to #2733)
(fix contributed by Migwel@github)
#3038: Two cases of incorrect error reporting about DeserializationFeature
(reported by Jelle V)
#3045: Bug in polymorphic deserialization with `@JsonCreator`, `@JsonAnySetter`,
`JsonTypeInfo.As.EXTERNAL_PROPERTY`
(reported by martineaus83@github)
#3055: Polymorphic subtype deduction ignores `defaultImpl` attribute
(contributed by drekbour@github)
#3056: MismatchedInputException: Cannot deserialize instance of
`com.fasterxml.jackson.databind.node.ObjectNode` out of VALUE_NULL token
(reported by Stexxen@github)
#3060: Missing override for `hasAsKey()` in `AnnotationIntrospectorPair`
#3062: Creator lookup fails with `InvalidDefinitionException` for conflict
between single-double/single-Double arg constructor
#3068: `MapDeserializer` forcing `JsonMappingException` wrapping even if
WRAP_EXCEPTIONS set to false
(reported by perkss@github)
2.12.1 (08-Jan-2021)
#2962: Auto-detection of constructor-based creator method skipped if there is
an annotated factory-based creator method (regression from 2.11)
(reported by Halil I-S)
#2972: `ObjectMapper.treeToValue()` no longer invokes `JsonDeserializer.getNullValue()`
(reported by andpal@github)
#2973: DeserializationProblemHandler is not invoked when trying to deserializing String
(reported by zigzago@github)
#2978: Fix failing `double` JsonCreators in jackson 2.12.0
(contributed by Carter K)
#2979: Conflicting in POJOPropertiesCollector when having namingStrategy
(reported, fix suggested by SunYiJun)
#2990: Breaking API change in `BasicClassIntrospector` (2.12.0)
(reported, fix contributed by Faron D)
#3005: `JsonNode.requiredAt()` does NOT fail on some path expressions
#3009: Exception thrown when `Collections.synchronizedList()` is serialized
with type info, deserialized
(reported by pcloves@github)
2.12.0 (29-Nov-2020)
#43: Add option to resolve type from multiple existing properties,
`@JsonTypeInfo(use=DEDUCTION)`
(contributed by drekbour@github)
#426: `@JsonIgnoreProperties` does not prevent Exception Conflicting getter/setter
definitions for property
(reported by gmkll@github)
#921: Deserialization Not Working Right with Generic Types and Builders
(reported by Mike G; fix contributed by Ville K)
#1296: Add `@JsonIncludeProperties(propertyNames)` (reverse of `@JsonIgnoreProperties`)
(contributed Baptiste P)
#1458: `@JsonAnyGetter` should be allowed on a field
(contributed by Dominik K)
#1498: Allow handling of single-arg constructor as property based by default
(requested by Lovro P)
#1852: Allow case insensitive deserialization of String value into
`boolean`/`Boolean` (esp for Excel)
(requested by Patrick J)
#1886: Allow use of `@JsonFormat(with=JsonFormat.Feature.ACCEPT_CASE_INSENSITIVE_PROPERTIES)`
on Class
#1919: Abstract class included as part of known type ids for error message
when using JsonSubTypes
(reported by Incara@github)
#2066: Distinguish null from empty string for UUID deserialization
(requested by leonshaw@github)
#2091: `ReferenceType` does not expose valid containedType
(reported by Nate B)
#2113: Add `CoercionConfig[s]` mechanism for configuring allowed coercions
#2118: `JsonProperty.Access.READ_ONLY` does not work with "getter-as-setter" `Collection`s
(reported by Xiang Z)
#2215: Support `BigInteger` and `BigDecimal` creators in `StdValueInstantiator`
(requested by David N, implementation contributed by Tiago M)
#2283: `JsonProperty.Access.READ_ONLY` fails with collections when a property name is specified
(reported by Yona A)
#2644: `BigDecimal` precision not retained for polymorphic deserialization
(reported by rost5000@github)
#2675: Support use of `Void` valued properties (`MapperFeature.ALLOW_VOID_VALUED_PROPERTIES`)
#2683: Explicitly fail (de)serialization of `java.time.*` types in absence of
registered custom (de)serializers
#2707: Improve description included in by `DeserializationContext.handleUnexpectedToken()`
#2709: Support for JDK 14 record types (`java.lang.Record`)
(contributed by Youri B)
#2715: `PropertyNamingStrategy` class initialization depends on its subclass, this can
lead to class loading deadlock
(reported by fangwentong@github)
#2719: `FAIL_ON_IGNORED_PROPERTIES` does not throw on `READONLY` properties with
an explicit name
(reported, fix contributed by David B)
#2726: Add Gradle Module Metadata for version alignment with Gradle 6
(contributed by Jendrik J)
#2732: Allow `JsonNode` auto-convert into `ArrayNode` if duplicates found (for XML)
#2733: Allow values of "untyped" auto-convert into `List` if duplicates found (for XML)
#2751: Add `ValueInstantiator.createContextual(...)
#2761: Support multiple names in `JsonSubType.Type`
(contributed by Swayam R)
#2775: Disabling `FAIL_ON_INVALID_SUBTYPE` breaks polymorphic deserialization of Enums
(reported by holgerknoche@github)
#2776: Explicitly fail (de)serialization of `org.joda.time.*` types in absence of registered
custom (de)serializers
#2784: Trailing zeros are stripped when deserializing BigDecimal values inside a
@JsonUnwrapped property
(reported by mjustin@github)
#2800: Extract getter/setter/field name mangling from `BeanUtil` into
pluggable `AccessorNamingStrategy`
#2804: Throw `InvalidFormatException` instead of `MismatchedInputException`
for ACCEPT_FLOAT_AS_INT coercion failures
(requested by mjustin@github)
#2871: Add `@JsonKey` annotation (similar to `@JsonValue`) for customizable
serialization of Map keys
(requested by CidTori@github; implementation contributed by Kevin B)
#2873: `MapperFeature.ACCEPT_CASE_INSENSITIVE_ENUMS` should work for enum as keys
(fix contributed by Ilya G)
#2879: Add support for disabling special handling of "Creator properties" wrt
alphabetic property ordering
(contributed by Sergiy Y)
#2885: Add `JsonNode.canConvertToExactIntegral()` to indicate whether floating-point/BigDecimal
values could be converted to integers losslessly
(requested by Oguzhan U; implementation contributed by Siavash S)
#2895: Improve static factory method generic type resolution logic
(contributed by Carter K)
#2903: Allow preventing "Enum from integer" coercion using new `CoercionConfig` system
#2909: `@JsonValue` not considered when evaluating inclusion
(reported by chrylis@github)
#2910: Make some java platform modules optional
(contributed by XakepSDK@github)
#2925: Add support for serializing `java.sql.Blob`
(contributed by M Rizky S)
#2928: `AnnotatedCreatorCollector` should avoid processing synthetic static
(factory) methods
(contributed by Carter K)
#2931: Add errorprone static analysis profile to detect bugs at build time
(contributed by Carter K)
#2932: Problem with implicit creator name detection for constructor detection
- Add `BeanDeserializerBase.isCaseInsensitive()`
- Some refactoring of `CollectionDeserializer` to solve CSV array handling issues
- Full "LICENSE" included in jar for easier access by compliancy tools
2.11.4 (12-Dec-2020)
#2894: Fix type resolution for static methods (regression in 2.11.3 due to #2821 fix)
(reported by Łukasz W)
#2944: `@JsonCreator` on constructor not compatible with `@JsonIdentityInfo`,
`PropertyGenerator`
(reported by Lucian H)
- Add debug improvements wrt #2807 (`ClassUtil.getClassMethods()`)
2.11.3 (02-Oct-2020)
#2795: Cannot detect creator arguments of mixins for JDK types
(reported by Marcos P)
#2815: Add `JsonFormat.Shape` awareness for UUID serialization (`UUIDSerializer`)
#2821: Json serialization fails or a specific case that contains generics and
static methods with generic parameters (2.11.1 -> 2.11.2 regression)
(reported by Lari H)
#2822: Using JsonValue and JsonFormat on one field does not work as expected
(reported by Nils-Christian E)
#2840: `ObjectMapper.activateDefaultTypingAsProperty()` is not using
parameter `PolymorphicTypeValidator`
(reported by Daniel W)
#2846: Problem deserialization "raw generic" fields (like `Map`) in 2.11.2
- Fix issues with `MapLikeType.isTrueMapType()`,
`CollectionLikeType.isTrueCollectionType()`
2.11.2 (02-Aug-2020)
#2783: Parser/Generator features not set when using `ObjectMapper.createParser()`,
`createGenerator()`
#2785: Polymorphic subtypes not registering on copied ObjectMapper (2.11.1)
(reported, fix contributed by Joshua S)
#2789: Failure to read AnnotatedField value in Jackson 2.11
(reported by isaki@github)
#2796: `TypeFactory.constructType()` does not take `TypeBindings` correctly
(reported by Daniel H)