-
-
Notifications
You must be signed in to change notification settings - Fork 1.4k
/
VERSION-2.x
2514 lines (2238 loc) · 115 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 ===
------------------------------------------------------------------------
Not yet released
#3784: `PrimitiveArrayDeserializers$ByteDeser.deserialize` ignores
`DeserializationProblemHandler` for invalid Base64 content
(reported by @or-else)
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.2 (02-May-2024)
#3275: JDK 16 Illegal reflective access for `Throwable.setCause()` with
`PropertyNamingStrategy.UPPER_CAMEL_CASE`
(reported by Jason H)
(fix suggested by gsinghlulu@github)
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)
2.11.1 (25-Jun-2020)
#2486: Builder Deserialization with JsonCreator Value vs Array
(reported by Ville K)
#2725: JsonCreator on static method in Enum and Enum used as key in map
fails randomly
(reported by Michael C)
#2755: `StdSubtypeResolver` is not thread safe (possibly due to copy
not being made with `ObjectMapper.copy()`)
(reported by tjwilson90@github)
#2757: "Conflicting setter definitions for property" exception for `Map`
subtype during deserialization
(reported by Frank S)
#2758: Fail to deserialize local Records
(reported by Johannes K)
#2759: Rearranging of props when property-based generator is in use leads
to incorrect output
(reported by Oleg C)
#2760: Jackson doesn't respect `CAN_OVERRIDE_ACCESS_MODIFIERS=false` for
deserializer properties
(reported by Johannes K)
#2767: `DeserializationFeature.UNWRAP_SINGLE_VALUE_ARRAYS` don't support `Map`
type field
(reported by abomb4@github)
#2770: JsonParser from MismatchedInputException cannot getText() for
floating-point value
(reported by João G)
2.11.0 (26-Apr-2020)
#953: i-I case conversion problem in Turkish locale with case-insensitive deserialization
(reported by Máté R)
#962: `@JsonInject` fails on trying to find deserializer even if inject-only
(reported by David B)
#1983: Polymorphic deserialization should handle case-insensitive Type Id property name
if `MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES` is enabled
(reported by soundvibe@github, fix contributed by Oleksandr P)
#2049: TreeTraversingParser and UTF8StreamJsonParser create contexts differently
(reported by Antonio P)
#2352: Support use of `@JsonAlias` for enum values
(contributed by Robert D)
#2365: `declaringClass` of "enum-as-POJO" not removed for `ObjectMapper` with
a naming strategy
(reported by Tynakuh@github)
#2480: Fix `JavaType.isEnumType()` to support sub-classes
#2487: BeanDeserializerBuilder Protected Factory Method for Extension
(contributed by Ville K)
#2503: Support `@JsonSerialize(keyUsing)` and `@JsonDeserialize(keyUsing)` on Key class
#2511: Add `SerializationFeature.WRITE_SELF_REFERENCES_AS_NULL`
(contributed by Joongsoo P)
#2515: `ObjectMapper.registerSubtypes(NamedType...)` doesn't allow registering
same POJO for two different type ids
(contributed by Joseph K)
#2522: `DeserializationContext.handleMissingInstantiator()` throws
`MismatchedInputException` for non-static inner classes
#2525: Incorrect `JsonStreamContext` for `TokenBuffer` and `TreeTraversingParser`
#2527: Add `AnnotationIntrospector.findRenameByField()` to support Kotlin's
"is-getter" naming convention
#2555: Use `@JsonProperty(index)` for sorting properties on serialization
#2565: Java 8 `Optional` not working with `@JsonUnwrapped` on unwrappable type
(reported by Haowei W)
#2587: Add `MapperFeature.BLOCK_UNSAFE_POLYMORPHIC_BASE_TYPES` to allow blocking
use of unsafe base type for polymorphic deserialization
#2589: `DOMDeserializer`: setExpandEntityReferences(false) may not prevent
external entity expansion in all cases [CVE-2020-25649]
(reported by Bartosz B)
#2592: `ObjectMapper.setSerializationInclusion()` is ignored for `JsonAnyGetter`
(reported by Oleksii K)
#2608: `ValueInstantiationException` when deserializing using a builder and
`UNWRAP_SINGLE_VALUE_ARRAYS`
(reported by cadrake@github)
#2627: JsonIgnoreProperties(ignoreUnknown = true) does not work on field and method level
(reported by robotmrv@github)
#2632: Failure to resolve generic type parameters on serialization
(reported by Simone D)
#2635: JsonParser cannot getText() for input stream on MismatchedInputException
(reported by João G)
#2636: ObjectReader readValue lacks Class<T> argument
(contributed by Robin R)
#2643: Change default textual serialization of `java.util.Date`/`Calendar`
to include colon in timezone offset
#2647: Add `ObjectMapper.createParser()` and `createGenerator()` methods
#2657: Allow serialization of `Properties` with non-String values
#2663: Add new factory method for creating custom `EnumValues` to pass to `EnumDeserializer
(requested by Rafal K)
#2668: `IllegalArgumentException` thrown for mismatched subclass deserialization
(reported by nbruno@github)
#2693: Add convenience methods for creating `List`, `Map` valued `ObjectReader`s
(ObjectMapper.readerForListOf())
- Add `SerializerProvider.findContentValueSerializer()` methods
2.10.5.1 (02-Dec-2020)
#2589: (see desc on 2.11.0 -- backported)
2.10.5 (21-Jul-2020)
#2787 (partial fix): NPE after add mixin for enum
(reported by Denis K)
2.10.4 (03-May-2020)
#2679: `ObjectMapper.readValue("123", Void.TYPE)` throws "should never occur"
(reported by Endre S)
2.10.3 (03-Mar-2020)
#2482: `JSONMappingException` `Location` column number is one line Behind the actual
location
(reported by Kamal A, fixed by Ivo S)
#2599: NoClassDefFoundError at DeserializationContext.<init> on Android 4.1.2
and Jackson 2.10.0
(reported by Tobias P)
#2602: ByteBufferSerializer produces unexpected results with a duplicated ByteBuffer
and a position > 0
(reported by Eduard T)
#2605: Failure to deserializer polymorphic subtypes of base type `Enum`
(reported by uewle@github)
#2610: `EXTERNAL_PROPERTY` doesn't work with `@JsonIgnoreProperties`
(reported, fix suggested by Alexander S)
2.10.2 (05-Jan-2020)
#2101: `FAIL_ON_NULL_FOR_PRIMITIVES` failure does not indicate field name in exception message
(reported by raderio@github)
2.10.1 (09-Nov-2019)
#2457: Extended enum values are not handled as enums when used as Map keys
(reported by Andrey K)
#2473: Array index missing in path of `JsonMappingException` for `Collection<String>`,
with custom deserializer
(reported by João G)
#2475: `StringCollectionSerializer` calls `JsonGenerator.setCurrentValue(value)`,
which messes up current value for sibling properties
(reported by Ryan B)
#2485: Add `uses` for `Module` in module-info
(contributed by Marc M)
#2513: BigDecimalAsStringSerializer in NumberSerializer throws IllegalStateException in 2.10
(reported by Johan H)
#2519: Serializing `BigDecimal` values inside containers ignores shape override
(reported by Richard W)
#2520: Sub-optimal exception message when failing to deserialize non-static inner classes
(reported by Mark S)
#2529: Add tests to ensure `EnumSet` and `EnumMap` work correctly with "null-as-empty"
#2534: Add `BasicPolymorphicTypeValidator.Builder.allowIfSubTypeIsArray()`
#2535: Allow String-to-byte[] coercion for String-value collections
2.10.0 (26-Sep-2019)
#18: Make `JsonNode` serializable
#1093: Default typing does not work with `writerFor(Object.class)`
(reported by hoomanv@github)
#1675: Remove "impossible" `IOException` in `readTree()` and `readValue()` `ObjectMapper`
methods which accept Strings
(requested by matthew-pwnieexpress@github)
#1954: Add Builder pattern for creating configured `ObjectMapper` instances
#1995: Limit size of `DeserializerCache`, auto-flush on exceeding
#2059: Remove `final` modifier for `TypeFactory`
(requested by Thibaut R)
#2077: `JsonTypeInfo` with a subtype having `JsonFormat.Shape.ARRAY` and
no fields generates `{}` not `[]`
(reported by Sadayuki F)
#2115: Support naive deserialization of `Serializable` values as "untyped", same
as `java.lang.Object`
(requested by Christopher S)
#2116: Make NumberSerializers.Base public and its inherited classes not final
(requested by Édouard M)
#2126: `DeserializationContext.instantiationException()` throws `InvalidDefinitionException`
#2129: Add `SerializationFeature.WRITE_ENUM_KEYS_USING_INDEX`, separate from value setting
(suggested by renzihui@github)
#2133: Improve `DeserializationProblemHandler.handleUnexpectedToken()` to allow handling of
Collection problems
(contributed by Semyon L)
#2149: Add `MapperFeature.ACCEPT_CASE_INSENSITIVE_VALUES`
(suggested by Craig P)
#2153: Add `JsonMapper` to replace generic `ObjectMapper` usage
#2164: `FactoryBasedEnumDeserializer` does not respect
`DeserializationFeature.WRAP_EXCEPTIONS`
(reported by Yiqiu H)
#2187: Make `JsonNode.toString()` use shared `ObjectMapper` to produce valid json
#2189: `TreeTraversingParser` does not check int bounds
(reported by Alexander S)
#2195: Add abstraction `PolymorphicTypeValidator`, for limiting subtypes allowed by
default typing, `@JsonTypeInfo`
#2196: Type safety for `readValue()` with `TypeReference`
(suggested by nguyenfilip@github)
#2204: Add `JsonNode.isEmpty()` as convenience alias
#2211: Change of behavior (2.8 -> 2.9) with `ObjectMapper.readTree(input)` with no content
#2217: Suboptimal memory allocation in `TextNode.getBinaryValue()`
(reported by Christoph B)
#2220: Force serialization always for `convertValue()`; avoid short-cuts
#2223: Add `missingNode()` method in `JsonNodeFactory`
#2227: Minor cleanup of exception message for `Enum` binding failure
(reported by RightHandedMonkey@github)
#2230: `WRITE_BIGDECIMAL_AS_PLAIN` is ignored if `@JsonFormat` is used
(reported by Pavel C)
#2236: Type id not provided on `Double.NaN`, `Infinity` with `@JsonTypeInfo`
(reported by C-B-B@github)
#2237: Add "required" methods in `JsonNode`: `required(String | int)`,
`requiredAt(JsonPointer)`
#2241: Add `PropertyNamingStrategy.LOWER_DOT_CASE` for dot-delimited names
(contributed by zenglian@github.com)
#2251: Getter that returns an abstract collection breaks a delegating `@JsonCreator`
#2265: Inconsistent handling of Collections$UnmodifiableList vs Collections$UnmodifiableRandomAccessList
#2273: Add basic Java 9+ module info
#2280: JsonMerge not work with constructor args
(reported by Deblock T)
#2309: READ_ENUMS_USING_TO_STRING doesn't support null values
(reported, fix suggested by Ben A)
#2311: Unnecessary MultiView creation for property writers
(suggested by Manuel H)
#2331: `JsonMappingException` through nested getter with generic wildcard return type
(reported by sunchezz89@github)
#2336: `MapDeserializer` can not merge `Map`s with polymorphic values
(reported by Robert G)
#2338: Suboptimal return type for `JsonNode.withArray()`
(reported by Victor N)
#2339: Suboptimal return type for `ObjectNode.set()`
(reported by Victor N)
#2348: Add sanity checks for `ObjectMapper.readXXX()` methods
(requested by ebundy@github)
#2349: Add option `DefaultTyping.EVERYTHING` to support Kotlin data classes
#2357: Lack of path on MismatchedInputException
(suggested by TheEin@github)
#2378: `@JsonAlias` doesn't work with AutoValue
(reported by David H)
#2390: `Iterable` serialization breaks when adding `@JsonFilter` annotation
(reported by Chris M)
#2392: `BeanDeserializerModifier.modifyDeserializer()` not applied to custom bean deserializers
(reported by andreasbaus@github)
#2393: `TreeTraversingParser.getLongValue()` incorrectly checks `canConvertToInt()`
(reported by RabbidDog@github)
#2398: Replace recursion in `TokenBuffer.copyCurrentStructure()` with iteration
(reported by Sam S)
#2415: Builder-based POJO deserializer should pass builder instance, not type,
to `handleUnknownVanilla()`
(proposed by Vladimir T, follow up to #822)
#2416: Optimize `ValueInstantiator` construction for default `Collection`, `Map` types
#2422: `scala.collection.immutable.ListMap` fails to serialize since 2.9.3
(reported by dejanlokar1@github)
#2424: Add global config override setting for `@JsonFormat.lenient()`
#2428: Use "activateDefaultTyping" over "enableDefaultTyping" in 2.10 with new methods
#2430: Change `ObjectMapper.valueToTree()` to convert `null` to `NullNode`
#2432: Add support for module bundles
(contributed by Marcos P)
#2433: Improve `NullNode.equals()`
(suggested by David B)
#2442: `ArrayNode.addAll()` adds raw `null` values which cause NPE on `deepCopy()`
and `toString()`
(reported, fix contributed by Hesham M)
#2446: Java 11: Unable to load JDK7 types (annotations, java.nio.file.Path): no Java7 support added
(reported by David C)
#2451: Add new `JsonValueFormat` value, `UUID`
#2453: Add `DeserializationContext.readTree(JsonParser)` convenience method
#2458: `Nulls` property metadata ignored for creators
(reported by XakepSDK@github)
#2466: Didn't find class "java.nio.file.Path" below Android api 26
(reported by KevynBct@github)
#2467: Accept `JsonTypeInfo.As.WRAPPER_ARRAY` with no second argument to
deserialize as "null value"
(contributed by Martin C)
[2.9.10.x micro-patches omitted]
2.9.10 (21-Sep-2019)
#2331: `JsonMappingException` through nested getter with generic wildcard return type
#2334: Block one more gadget type (CVE-2019-12384)
#2341: Block one more gadget type (CVE-2019-12814)
#2374: `ObjectMapper. getRegisteredModuleIds()` throws NPE if no modules registered
#2387: Block yet another deserialization gadget (CVE-2019-14379)
#2389: Block yet another deserialization gadget (CVE-2019-14439)
(reported by xiexq)
#2404: FAIL_ON_MISSING_EXTERNAL_TYPE_ID_PROPERTY setting ignored when
creator properties are buffered
(contributed by Joe B)
#2410: Block one more gadget type (HikariCP, CVE-2019-14540)
(reported by iSafeBlue@github / blue@ixsec.org)
#2420: Block one more gadget type (cxf-jax-rs, no CVE allocated yet)
(reported by crazylirui@gmail.com)
#2449: Block one more gadget type (HikariCP, CVE-2019-14439 / CVE-2019-16335)
(reported by kingkk)
#2460: Block one more gadget type (ehcache, CVE-2019-17267)
(reported by Fei Lu)
#2462: Block two more gadget types (commons-configuration/-2)
#2469: Block one more gadget type (xalan2)
2.9.9 (16-May-2019)
#1408: Call to `TypeVariable.getBounds()` without synchronization unsafe on some platforms
(reported by Thomas K)
#2221: `DeserializationProblemHandler.handleUnknownTypeId()` returning `Void.class`,
enableDefaultTyping causing NPE
(reported by MeyerNils@github)
#2251: Getter that returns an abstract collection breaks a delegating `@JsonCreator`
#2265: Inconsistent handling of Collections$UnmodifiableList vs Collections$UnmodifiableRandomAccessList
(reported by Joffrey B)
#2299: Fix for using jackson-databind in an OSGi environment under Android
(contributed by Christoph F)
#2303: Deserialize null, when java type is "TypeRef of TypeRef of T", does not provide "Type(Type(null))"
(reported by Cyril M)
#2324: `StringCollectionDeserializer` fails with custom collection
(reported byb Daniil B)
#2326: Block one more gadget type (CVE-2019-12086)
- Prevent String coercion of `null` in `WritableObjectId` when calling `JsonGenerator.writeObjectId()`,
mostly relevant for formats like YAML that have native Object Ids
2.9.8 (15-Dec-2018)
#1662: `ByteBuffer` serialization is broken if offset is not 0
(reported by j-baker@github)
#2155: Type parameters are checked for equality while isAssignableFrom expected
(reported by frankfiedler@github)
#2167: Large ISO-8601 Dates are formatted/serialized incorrectly
#2181: Don't re-use dynamic serializers for property-updating copy constructors
(suggested by Pavel N)
#2183: Base64 JsonMappingException: Unexpected end-of-input
(reported by ViToni@github)
#2186: Block more classes from polymorphic deserialization (CVE-2018-19360,
CVE-2018-19361, CVE-2018-19362)
(reported by Guixiong Wu)
#2197: Illegal reflective access operation warning when using `java.lang.Void`
as value type
(reported by René K)
#2202: StdKeyDeserializer Class method _getToStringResolver is slow causing Thread Block
(reported by sushobhitrajan@github)
2.9.7 (19-Sep-2018)
#2060: `UnwrappingBeanPropertyWriter` incorrectly assumes the found serializer is
of type `UnwrappingBeanSerializer`
(reported by Petar T)
#2064: Cannot set custom format for `SqlDateSerializer` globally
(reported by Brandon K)
#2079: NPE when visiting StaticListSerializerBase
(reported by WorldSEnder@github)
#2082: `FactoryBasedEnumDeserializer` should be cachable
#2088: `@JsonUnwrapped` fields are skipped when using `PropertyBasedCreator` if
they appear after the last creator property
(reported, fix contributed by 6bangs@github)
#2096: `TreeTraversingParser` does not take base64 variant into account
(reported by tangiel@github)
#2097: Block more classes from polymorphic deserialization (CVE-2018-14718
- CVE-2018-14721)
#2109: Canonical string for reference type is built incorrectly
(reported by svarzee@github)
#2120: `NioPathDeserializer` improvement
(contributed by Semyon L)
#2128: Location information included twice for some `JsonMappingException`s
2.9.6 (12-Jun-2018)
#955: Add `MapperFeature.USE_BASE_TYPE_AS_DEFAULT_IMPL` to use declared base type
as `defaultImpl` for polymorphic deserialization
(contributed by mikeldpl@github)
#1328: External property polymorphic deserialization does not work with enums
#1565: Deserialization failure with Polymorphism using JsonTypeInfo `defaultImpl`,
subtype as target
#1964: Failed to specialize `Map` type during serialization where key type
incompatibility overidden via "raw" types
(reported by ptirador@github)
#1990: MixIn `@JsonProperty` for `Object.hashCode()` is ignored
(reported by Freddy B)
#1991: Context attributes are not passed/available to custom serializer if object is in POJO
(reported by dletin@github)
#1998: Removing "type" attribute with Mixin not taken in account if
using ObjectMapper.copy()
(reported by SBKila@github)
#1999: "Duplicate property" issue should mention which class it complains about
(reported by Ondrej Z)
#2001: Deserialization issue with `@JsonIgnore` and `@JsonCreator` + `@JsonProperty`
for same property name
(reported, fix contributed by Jakub S)
#2015: `@Jsonsetter with Nulls.SKIP` collides with
`DeserializationFeature.READ_UNKNOWN_ENUM_VALUES_AS_NULL` when parsing enum
(reported by ndori@github)
#2016: Delegating JsonCreator disregards JsonDeserialize info
(reported by Carter K)
#2019: Abstract Type mapping in 2.9 fails when multiple modules are registered
(reported by asger82@github)
#2021: Delegating JsonCreator disregards `JsonDeserialize.using` annotation
#2023: `JsonFormat.Feature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT` not working
with `null` coercion with `@JsonSetter`
#2027: Concurrency error causes `IllegalStateException` on `BeanPropertyMap`
(reported by franboragina@github)
#2032: CVE-2018-11307: Potential information exfiltration with default typing, serialization gadget from MyBatis
(reported by Guixiong Wu)
#2034: Serialization problem with type specialization of nested generic types
(reported by Reinhard P)
#2038: JDK Serializing and using Deserialized `ObjectMapper` loses linkage
back from `JsonParser.getCodec()`
(reported by Chetan N)
#2051: Implicit constructor property names are not renamed properly with
`PropertyNamingStrategy`
#2052: CVE-2018-12022: Block polymorphic deserialization of types from Jodd-db library
(reported by Guixiong Wu)
#2058: CVE-2018-12023: Block polymorphic deserialization of types from Oracle JDBC driver
(reported by Guixiong Wu)
2.9.5 (26-Mar-2018)
#1911: Allow serialization of `BigDecimal` as String, using
`@JsonFormat(shape=Shape.String)`, config overrides
(suggested by cen1@github)
#1912: `BeanDeserializerModifier.updateBuilder()` not work to set custom
deserializer on a property (since 2.9.0)
(contributed by Deblock T)
#1931: Two more `c3p0` gadgets to exploit default typing issue
(reported by lilei@venusgroup.com.cn)
#1932: `EnumMap` cannot deserialize with type inclusion as property
#1940: `Float` values with integer value beyond `int` lose precision if
bound to `long`
(reported by Aniruddha M)
#1941: `TypeFactory.constructFromCanonical()` throws NPE for Unparameterized
generic canonical strings
(reported by ayushgp@github)
#1947: `MapperFeature.AUTO_DETECT_XXX` do not work if all disabled
(reported by Timur S)
#1977: Serializing an Iterator with multiple sub-types fails after upgrading to 2.9.x
(reported by ssivanand@github)
#1978: Using @JsonUnwrapped annotation in builderdeserializer hangs in infinite loop
(reported by roeltje25@github)
2.9.4 (24-Jan-2018)
#1382: `@JsonProperty(access=READ_ONLY)` unxepected behaviour with `Collections`
(reported by hexfaker@github)
#1673: Serialising generic value classes via Reference Types (like Optional) fails
to include type information
(reported by Pier-Luc W)
#1729: Integer bounds verification when calling `TokenBuffer.getIntValue()`
(reported by Kevin G)
#1853: Deserialise from Object (using Creator methods) returns field name instead of value
(reported by Alexander S)
#1854: NPE deserializing collection with `@JsonCreator` and `ACCEPT_CASE_INSENSITIVE_PROPERTIES`
(reported by rue-jw@github)
#1855: Blacklist for more serialization gadgets (dbcp/tomcat, spring, CVE-2017-17485)
#1859: Issue handling unknown/unmapped Enum keys
(reported by remya11@github)
#1868: Class name handling for JDK unmodifiable Collection types changed
(reported by Rob W)
#1870: Remove `final` on inherited methods in `BuilderBasedDeserializer` to allow
overriding by subclasses
(requested by Ville K)
#1878: `@JsonBackReference` property is always ignored when deserializing since 2.9.0
(reported by reda-alaoui@github)
#1895: Per-type config override "JsonFormat.Shape.OBJECT" for Map.Entry not working
(reported by mcortella@github)
#1899: Another two gadgets to exploit default typing issue in jackson-databind
(reported by OneSourceCat@github)
#1906: Add string format specifier for error message in `PropertyValueBuffer`
(reported by Joe S)
#1907: Remove `getClass()` from `_valueType` argument for error reporting
(reported by Joe S)
2.9.3 (09-Dec-2017)
#1604: Nested type arguments doesn't work with polymorphic types
#1794: `StackTraceElementDeserializer` not working if field visibility changed
(reported by dsingley@github)
#1799: Allow creation of custom sub-types of `NullNode`, `BooleanNode`, `MissingNode`
#1804: `ValueInstantiator.canInstantiate()` ignores `canCreateUsingArrayDelegate()`
(reported byb henryptung@github)
#1807: Jackson-databind caches plain map deserializer and use it even map has `@JsonDeserializer`
(reported by lexas2509@github)
#1823: ClassNameIdResolver doesn't handle resolve Collections$SingletonMap & Collections$SingletonSet
(reported by Peter J)
#1831: `ObjectReader.readValue(JsonNode)` does not work correctly with polymorphic types,
value to update
(reported by basmastr@github)
#1835: ValueInjector break from 2.8.x to 2.9.x
(repoted by kinigitbyday@github)
#1842: `null` String for `Exception`s deserialized as String "null" instead of `null`
(reported by ZeleniJure@github)
#1843: Include name of unsettable property in exception from `SetterlessProperty.set()`
(suggested by andreh7@github)
#1844: Map "deep" merge only adds new items, but not override existing values
(reported by alinakovalenko@github)
2.9.2 (14-Oct-2017)
(possibly) #1756: Deserialization error with custom `AnnotationIntrospector`
(reported by Daniel N)
#1705: Non-generic interface method hides type resolution info from generic base class
(reported by Tim B)
NOTE: was originally reported fixed in 2.9.1 -- turns out it wasn't.
#1767: Allow `DeserializationProblemHandler` to respond to primitive types
(reported by nhtzr@github)
#1768: Improve `TypeFactory.constructFromCanonical()` to work with
`java.lang.reflect.Type.getTypeName()' format
(suggested by Luís C)
#1771: Pass missing argument for string formatting in `ObjectMapper`
(reported by Nils B)
#1788: `StdDateFormat._parseAsISO8601()` does not parse "fractional" timezone correctly
#1793: `java.lang.NullPointerException` in `ObjectArraySerializer.acceptJsonFormatVisitor()`
for array value with `@JsonValue`
(reported by Vincent D)
2.9.1 (07-Sep-2017)
#1725: `NPE` In `TypeFactory. constructParametricType(...)`
(reported by ctytgat@github)
#1730: InvalidFormatException` for `JsonToken.VALUE_EMBEDDED_OBJECT`
(reported by zigzago@github)
#1744: StdDateFormat: add option to serialize timezone offset with a colon
(contributed by Bertrand R)
#1745: StdDateFormat: accept and truncate millis larger than 3 digits
(suggested by Bertrand R)
#1749: StdDateFormat: performance improvement of '_format(..)' method
(contributed by Bertrand R)
#1759: Reuse `Calendar` instance during parsing by `StdDateFormat`
(contributed by Bertrand R)
- Fix `DelegatingDeserializer` constructor to pass `handledType()` (and
not type of deserializer being delegated to!)
- Add `Automatic-Module-Name` ("com.fasterxml.jackson.databind") for JDK 9 module system
2.9.0 (30-Jul-2017)
#219: SqlDateSerializer does not obey SerializationConfig.Feature.WRITE_DATES_AS_TIMESTAMPS
(reported by BrentDouglas@github)
#265: Add descriptive exception for attempts to use `@JsonWrapped` via Creator parameter
#291: @JsonTypeInfo with As.EXTERNAL_PROPERTY doesn't work if external type property
is referenced more than once
(reported by Starkom@github)
#357: StackOverflowError with contentConverter that returns array type
(reported by Florian S)
#383: Recursive `@JsonUnwrapped` (`child` with same type) fail: "No _valueDeserializer assigned"
(reported by tdavis@github)
#403: Make FAIL_ON_NULL_FOR_PRIMITIVES apply to primitive arrays and other types that wrap primitives
(reported by Harleen S)
#476: Allow "Serialize as POJO" using `@JsonFormat(shape=Shape.OBJECT)` class annotation
#507: Support for default `@JsonView` for a class
(suggested by Mark W)
#687: Exception deserializing a collection @JsonIdentityInfo and a property based creator
#865: `JsonFormat.Shape.OBJECT` ignored when class implements `Map.Entry`
#888: Allow specifying custom exclusion comparator via `@JsonInclude`,
using `JsonInclude.Include.CUSTOM`
#994: `DeserializationFeature.UNWRAP_SINGLE_VALUE_ARRAYS` only works for POJOs, Maps
#1029: Add a way to define property name aliases
#1035: `@JsonAnySetter` assumes key of `String`, does not consider declared type.
(reported by Michael F)
#1060: Allow use of `@JsonIgnoreProperties` for POJO-valued arrays, `Collection`s
#1106: Add `MapperFeature.ALLOW_COERCION_OF_SCALARS` for enabling/disabling coercions
#1284: Make `StdKeySerializers` use new `JsonGenerator.writeFieldId()` for `int`/`long` keys
#1320: Add `ObjectNode.put(String, BigInteger)`
(proposed by Jan L)
#1341: `DeserializationFeature.FAIL_ON_MISSING_EXTERNAL_TYPE_ID_PROPERTY`
(contributed by Connor K)
#1347: Extend `ObjectMapper.configOverrides()` to allow changing visibility rules
#1356: Differentiate between input and code exceptions on deserialization
(suggested by Nick B)
#1369: Improve `@JsonCreator` detection via `AnnotationIntrospector`
by passing `MappingConfig`
#1371: Add `MapperFeature.INFER_CREATOR_FROM_CONSTRUCTOR_PROPERTIES` to allow
disabling use of `@CreatorProperties` as explicit `@JsonCreator` equivalent
#1376: Add ability to disable JsonAnySetter/JsonAnyGetter via mixin
(suggested by brentryan@github)
#1399: Add support for `@JsonMerge` to allow "deep update"
#1402: Use `@JsonSetter(nulls=...)` to specify handling of `null` values during deserialization
#1406: `ObjectMapper.readTree()` methods do not return `null` on end-of-input
(reported by Fabrizio C)
#1407: `@JsonFormat.pattern` is ignored for `java.sql.Date` valued properties
(reported by sangpire@github)
#1415: Creating CollectionType for non generic collection class broken
#1428: Allow `@JsonValue` on a field, not just getter
#1434: Explicitly pass null on invoke calls with no arguments
(contributed by Emiliano C)
#1433: `ObjectMapper.convertValue()` with null does not consider null conversions
(`JsonDeserializer.getNullValue()`)
(contributed by jdmichal@github)
#1440: Wrong `JsonStreamContext` in `DeserializationProblemHandler` when reading
`TokenBuffer` content
(reported by Patrick G)
#1444: Change `ObjectMapper.setSerializationInclusion()` to apply to content inclusion too
#1450: `SimpleModule.addKeyDeserializer()' should throw `IllegalArgumentException` if `null`
reference of `KeyDeserializer` passed
(suggested by PawelJagus@github)