-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Jackson Release 2.17
Tatu Saloranta edited this page Feb 17, 2024
·
101 revisions
Jackson Version 2.17 development started in November 2023.
This wiki page gives a list of links to all changes (with brief descriptions) that will be included, as well as about original plans for bigger changes (and in some cases changes to plans, postponing).
Branch is open for development.
No release yet
Same as Jackson 2.16
-
#437: Adds
DeserializationFeature.FAIL_ON_UNEXPECTED_VIEW_PROPERTIES, enabling of which starts failing known properties that are not part of the active view
-
#242: Allow
@JsonAnySetteronElementType.PARAMETER(for use on constructor parameters)
-
#507: Add
JsonWriteFeature.ESCAPE_FORWARD_SLASHESto allow escaping of '/' for String values -
#1117: Change default
RecylerPoolimplementation tonewLockFreePool(fromthreadLocalPool) -
#1137: Improve detection of "is a NaN" to only consider explicit cases, not
doubleoverflow/underflow -
#1145:
JsonPointer.appendProperty(String)does not escape the property name -
#1149: Add
JsonParser.getNumberTypeFP() -
#1157: Use fast parser (FDP) for large
BigDecimals (500+ chars) -
#1169:
ArrayIndexOutOfBoundsExceptionfor specific invalid content, with Reader-based parser -
#1173:
JsonLocationconsistently off by one character for many invalid JSON parsing cases -
#1179: Allow configuring
DefaultPrettyPrinterseparators for empty Arrays and Objects -
#1186:
BufferRecyclershould avoid setting replacement if one already returned, bigger -
#1195: Use
BufferRecyclerprovided by output (OutputStream,Writer) object if available -
#1202: Add
RecyclerPool.clear()method for dropping all recycled instances - #1203: Faster division by 1000
- #1207: JsonFactory.setStreamReadConstraints(StreamReadConstraints) fails to update "maxNameLength" for symbol tables
- #1217: Optimize char comparison using bitwise OR
- #1218: Simplify Unicode surrogate pair conversion for generation
-
#437: Support throwing
MismatchedInputExceptionwhen deserializing properties that are not part of the view -
#736:
MapperFeature.REQUIRE_SETTERS_FOR_GETTERShas no effect -
#4160: Deprecate
DefaultTyping.EVERYTHINGin2.xand remove in3.0 -
#4194: Add
JsonNodeFeature.FAIL_ON_NAN_TO_BIG_DECIMAL_COERCIONoption to fail on attempting to coerceNaNintoBigDecimal -
#4205: Consider types in
sun.*package(s) to be JDK (platform) types for purposes of handling -
#4209: Make
BeanDeserializerModifier/BeanSerializerModifierimplementjava.io.Serializable -
#4214:
EnumSetdeserialization does not work when we activate default typing inObjectMapper -
#4248:
ThrowableDeserializerdoes not handlenullwell forcause -
#4250: Add input validation for
NumberDeserializersdeserializers for "stringified" FP numbers -
#4262: Improve handling of
nullinsertion failure forTreeSet -
#4263: Change
ObjectArrayDeserializerto use "generic" type parameter (java.lang.Object) to remove co-variant return type -
#4299: Some
CollectionandMapfallbacks don't work in GraalVM native image -
#4327:
@JsonAliasnot respected by polymorphic deduction -
#4337:
AtomicReferenceserializer does not support@JsonSerialize(contentConverter=...) -
#4364:
@JsonPropertyand equivalents should merge withAnnotationIntrospectorPair
-
#449:
IndexOutOfBoundsExceptioninJacksonAvroParserImplfor invalid input
-
#451:
IndexOutOfBoundsExceptioninCBORParserfor invalid input -
#458: Unexpected NullPointerException in
CBORParser -
#464: Unexpected
ArrayIndexOutOfBoundsExceptioninCBORParserfor corrupt String value
-
#45: Allow skipping ending line break (
CsvGenerator.Feature.WRITE_LINEFEED_AFTER_LAST_ROW)
-
#251: Unable to deserialize Object with unknown
Timestampfield -
#417:
IonReaderclasses contain assert statement which could throw unexpectedAssertionError -
#420:
IndexOutOfBoundsExceptionthrown byIonReaderimplementations are not handled -
#424:
IonReaderthrowsNullPointerExceptionfor unchecked invalid data -
#428:
IonParser.getIntValue()fails or does not handle value overflow checks -
#432: More methods from
IonReadercould throw an unexpectedAssertionError -
#434: Unexpected
NullPointerExceptionthrown fromIonParser::getNumberType() -
#437:
IonReader.next()throws NPEs for some invalid content -
#469: IonReader.newBytes() throwing
NegativeArraySizeException -
#471:
IonReaderthrowsAssertionErrorfor Timestamp value -
#473:
IonReader.next()throwsArrayIndexOutOfBoundsExceptionfor some corrupt content -
#473: Upgrade
ion-javato 1.11.2 and remove handling of exceptions that are no longer leaked
-
#462:
ProtobufParser.currentName()returns wrong value at root level
-
#426:
SmileParserthrows unexpected IOOBE for corrupt content
-
#324: Support use of
xsi:typefor polymorphic serialization (ToXmlGenerator.Feature.AUTO_DETECT_XSI_TYPE) -
#618:
ArrayIndexOutOfBoundsExceptionthrown for invalid ending XML string when using JDK default Stax XML parser -
#631: Add
XmlMapper.createGenerator(XMLStreamWriter)andXmlMapper.createParser(XMLStreamReader)overloads -
#637:
JacksonXmlAnnotationIntrospector.findNamespace()should properly merge namespace information
-
#454: Unexpected
NumberFormatExceptioninYAMLParser -
#456: Support max Read/Write nesting depth limits (
StreamReadConstraints/StreamWriteConstraints) for YAML
-
#274: Add 1-based
Month[De]serializerenabled withJavaTimeFeature.ONE_BASED_MONTHSoption
-
#294:
Optionaldeserialization, serialization ignorecontentConverter
-
#118: Support
@JsonFormat(shape=STRING)onRange<T> -
#124: Some deserializers throw unexpected
NullPointerExceptionwhen handling invalid input -
#136: Fix for failing Guava
Optionaltest -
#138:
GuavaCollectionDeserializerstill throws NPE in some circumstances -
#140:
Cachedeserialization fails with NPE fornullvalued entries -
#142:
RangeSetdeserializer fails for contentnulls with NPE