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)