Jackson Changelog

What's new in Jackson 2.4.4

Dec 29, 2014
  • CHANGES, CORE:
  • Streaming:
  • #157: ArrayIndexOutOfBoundsException for numbers longer than 200 characters (NOTE: regression, not affecting 2.3)
  • #158: Setter confusion on assignable types (actually, belongs under databind)
  • Databind:
  • #245: Calls to ObjectMapper.addMixInAnnotations() on an instance returned by ObjectMapper.copy() don't work
  • #580: delegate deserializers choke on a (single) abstract/polymorphic parameter
  • #590: Binding invalid Currency gives nonsense at end of the message
  • #592: Wrong TokenBuffer delegate deserialization using @JsonCreator
  • #601: ClassCastException for a custom serializer for enum key in EnumMap
  • #604: Map deserializers were not being cached, causing performance issues due to lock congestion.
  • #610: Fix forward (Object Id) reference in hierarchies
  • CHANGES, DATA FORMATS:
  • CSV:
  • #54: Encounter ArrayIndexOutOfBoundsException in the corner case delimiter or end-of-line happened to be the leading character of a segment buffer
  • YAML:
  • #27: OSGI bundle does not work due to shading
  • CHANGES, OTHER MODULES:
  • JSON Schema:
  • #46: Incorrect number type for Double, Float and BigDecimal
  • #47: Static VisitorContext results in incomplete JSON schema output
  • Scala:
  • #149: Use type information to deser Option (courtesy of @orac)
  • #148: Performance regression in 2.2.3
  • #145: readValue for Map[String, Any] or List[Any] is very slow

New in Jackson 2.4.3 (Oct 3, 2014)

  • CHANGES, CORE:
  • Streaming:
  • #152: Exception for property names longer than 256k
  • Databind:
  • #496: Wrong result with new TextNode("false").asBoolean(true)
  • #511: DeserializationFeature.FAIL_ON_INVALID_SUBTYPE does not work
  • #523: MapDeserializer and friends do not report the field/key name for mapping exceptions
  • #524: @JsonIdentityReference(alwaysAsId = true) Custom resolver is reset to SimpleObjectIdResolver.
  • #541: @JsonProperty in @JsonCreator is conflicting with POJOs getters/attributes
  • #543: Problem resolving self-referential generic types (work-around, not full fix)
  • #570: Add Support for parsing more compliant ISO-8601 Date Formats
  • CHANGES, DATA FORMATS:
  • CBOR:
  • #5: Support binary (byte[]) Object keys (assuming UTF-8 encoding)
  • #6: Support 'self-describe' CBOR tag
  • CHANGES, DATATYPES:
  • Joda:
  • #45: Can't use LocalTime, LocalDate & LocalDateTime as Key type for a MapInterval deserialization fails for negative start instants
  • #46: Interval deserialization fails for negative start instants
  • Guava:
  • #50: Add support for InternetDomainName
  • CHANGES, OTHER MODULES:
  • JSON Schema:
  • #34: NPE when generating schema for class with @JsonValue annotation over array/Collection
  • Afterburner:
  • #42: Exception trying to deserialize into final field
  • #43: Problem deserializing type with one polymorphic property that uses inclusion of As.EXTERNAL_PROPERTY

New in Jackson 2.4.2 (Aug 14, 2014)

  • CHANGES, CORE:
  • Streaming API:
  • #145: NPE at BytesToNameCanonicalizer (NOTE: part of 2.4.1.1 micro-patch)
  • #146: Error while parsing negative floats at the end of the input buffer
  • Databind:
  • #491: Work around for issue #490, problems with deserialization of Object Ids. (NOTE: part of 2.4.1.1 micro-patch)
  • #503: Concurrency issue inside com.fasterxml.jackson.databind.util.LRUMap.get(Object) (NOTE: part of 2.4.1.2 micro-patch)
  • #506: Index is never set for Collection and Array in InvalidFormatException.Reference
  • CHANGES, DATA FORMATS:
  • CSV:
  • #47: UTF-8 BOM handling not working
  • Smile:
  • #18: Shared keys can cause unescaped write of BYTE_MARKER_END_OF_CONTENT
  • #19: Exception when deserializing ObjectIds generated by ObjectIdGenerators.UUIDGenerator
  • CHANGES, DATA TYPES:
  • Guava:
  • #46: Can not serialize guava Iterables
  • CHANGES, OTHER MODULES:
  • #30: Need a way to override name @XmlValue induces when not doing XML

New in Jackson 2.2.3 (Oct 26, 2013)

  • Core components:
  • Streaming:
  • #78: ArrayIndexOutOfBoundsException for very long numbers (>500 digits)
  • #81: CharTypes.appendQuoted() misencodes first 32 Unicode values
  • #84: Support for parsing 'Infinity' when feature ALLOW_NON_NUMERIC_NUMBERS is on
  • Databind:
  • #234: Problems with serializing types for deeply nested generic Maps, default typing
  • #251: SerializationFeature.WRITE_BIGDECIMAL_AS_PLAIN not working with JsonNode
  • #259: Problems with @JsonValue, JSON Schema generation
  • #267: Handle negative, stringified timestamps correctly
  • #281: Make NullNode use configured null serializer
  • #287: Fix problems with Converter Maps with Object values
  • #288: Fix problems with serialization Converter, @JsonSerialize annotation
  • JAX-RS:
  • JAX-RS Providers:
  • #6 Add JaxRSFeature.ADD_NO_SNIFF_HEADER to automatically add X-Content-Type-Options header
  • #12 (and 16): More OSGi manifest fixes
  • #18 Add LICENSE, NOTICE files in jars
  • #19 Make InputStream as unwritable class
  • #20 Missing OSGi imports for base (c.f.j.databind.cfg)
  • Data formats:
  • CSV:
  • #17: Fix problems generating CSV with alternate separators
  • Data types:
  • Hibernate:
  • #39: NPE when serializing ManyToOne proxied values (if session not available)
  • Other:
  • Afterburner:
  • #9: Support @Jso0nUnwrapped
  • #23: Handle interface type deserialization too
  • #29: NON_DEFAULT inclusion wasn't working for primitive writers
  • JSON Schema:
  • As per fix #259 for jackson-databind, handling of @JsonValue fixed.
  • Scala:
  • #83: value update problem
  • #85: Java style getters still broken
  • #88: Conflicting setter definitions for property
  • #89: Customizing untyped object deserialization
  • #91: setPropertyNamingStrategy results in NullPointerException when serializing
  • #93: Enumerations and Java Enums deserialize into strings when being used as Scala map keys
  • #95: Error deserializing pojo with multi-map when Guava and Scala modules are used
  • #97: Non symmetric serialize/deserialize behavior
  • #98: OSGI Export

New in Jackson 2.1.1 (Nov 13, 2012)

  • Fixes: Make ObjectIdGenerator java.io.Serializable (needed when serializing ObjectMappers/-Writers/-Readers)

New in Jackson 2.1.0 (Oct 13, 2012)

  • New features:
  • [Issue#14]: add 'readBinaryValue(...)' method in JsonParser
  • [Issue#16]: add 'writeBinary(InputStream, int)' method in JsonGenerator (and implement for JSON backend)
  • [Issue#26]: Allow overriding "root value separator"
  • Improvements:
  • [JACKSON-837]: Made JsonGenerator implement Flushable.
  • [Issue#10]: add 'JsonProcessingException.getOriginalMessage()' for accessing message without location info
  • [Issue#31]: make `JsonFactory` java.io.Serializable (via JDK)
  • Other:
  • [Issue-25]: Add 'createParser' and 'createGenerator' (as eventual replacements for 'createJsonParser'/'createJsonGenerator') in 'JsonFactory'
  • Try to improve locking aspects of symbol tables, by reducing scope of synchronized sections when creating, merging table contents.
  • Added 'JsonFactory.copy()' method to support databinding's 'ObjectMapper.copy()'
  • Added method 'requiresCustomCodec()' for JsonFactory and JsonParser
  • Added 'JsonParser.getValueAsString()' method (to support flexible conversions)
  • Added META-INF/services/com.fasterxml.jackson.core.JsonFactory SPI to register `JsonFactory` for even more automatic format discovery in future.

New in Jackson 2.0.6 (Sep 6, 2012)

  • No fixes or changes, released along with other core components

New in Jackson 2.0.5 (Jul 30, 2012)

  • Fixes:
  • [Issue-20] (https://github.com/FasterXML/jackson-core/issues/20):
  • [Issue-21]: Improve calculation and use of String hashCodes for symbol tables, to prevent String.hashCode() collision based attacks
  • [Issue-24]: Copy String chars to char array by TextBuffer fails with ArrayIndexOutOfBoundsException (with huge Strings)
  • [Issue-32]: Add IllegalFormatException (subtype of JsonMappingException) to give more access to specific failiure
  • [JACKSON-853]: JsonStringEncoder.quoteAsString() problem with buffer boundary

New in Jackson 1.8.3 (Jul 25, 2011)

  • Fixes:
  • [JACKSON-587] TextNode.getValueAsLong() does not work properly (reported by Chris P)
  • [JACKSON-591] JodaDeserializers not throwing wrongTokenException (reported by Tom L)
  • [JACKSON-597] Make ClassDeserializer support primitive types (suggested by Bruce P) (plus all 1.7 fixes up to 1.7.7)