| Project: jackson-core |
| |
| Contains core streaming reader (`JsonParser`) and writer (`JsonGenerator`) abstractions, |
| factory for constructing readers/writers (JsonFactory), as well as a minimal set |
| of interfaces needed for streaming level to make callbacks and call-throughs, |
| via `ObjectCodec` and `TreeNode`. |
| |
| Also includes implementation of this API for JSON. |
| Forms the base for other data formats as well, despite naming that suggests |
| JSON-specificity: naming is due to history, as Jackson started out as pure |
| JSON library. |
| |
| ------------------------------------------------------------------------ |
| === Releases === |
| ------------------------------------------------------------------------ |
| |
| 2.12.0 (not yet released) |
| |
| #619: Add `StreamReadCapability` for further format-based/format-agnostic |
| handling improvements |
| - Deprecate `JsonParser.getCurrentTokenId()` (use `#currentTokenId()` instead) |
| |
| 2.11.0 (26-Apr-2020) |
| |
| #504: Add a String Array write method in the Streaming API |
| (requested by Michel F, impl contributed by Oleksandr P) |
| #565: Synchronize variants of `JsonGenerator#writeNumberField` with `JsonGenerator#writeNumber` |
| (contributed by valery1707@github) |
| #587: Add JsonGenerator#writeNumber(char[], int, int) method |
| (contributed by Volkan Y) |
| #606: Do not clear aggregated contents of `TextBuffer` when `releaseBuffers()` called |
| #609: `FilteringGeneratorDelegate` does not handle `writeString(Reader, int)` |
| (reported by Volkan Y) |
| #611: Optionally allow leading decimal in float tokens |
| (contributed by James A) |
| |
| 2.10.5 (not yet released) |
| |
| #616: Parsing JSON with `ALLOW_MISSING_VALUE` enabled results in endless stream |
| of `VALUE_NULL` tokens |
| (reported by Justin L) |
| |
| 2.10.4 (03-May-2020) |
| |
| #605: Handle case when system property access is restricted |
| (reported by rhernandez35@github) |
| |
| 2.10.3 (03-Mar-2020) |
| |
| #592: DataFormatMatcher#getMatchedFormatName throws NPE when no match exists |
| (reported by Scott L) |
| #603: 'JsonParser.getCurrentLocation()` byte/char offset update incorrectly for big payloads |
| (reported, fix contributed by Fabien R) |
| |
| 2.10.2 (05-Jan-2020) |
| |
| #580: FilteringGeneratorDelegate writeRawValue delegate to `writeRaw()` |
| instead of `writeRawValue()` |
| (reported by Arnaud R) |
| #582: `FilteringGeneratorDelegate` bug when filtering arrays (in 2.10.1) |
| (reported by alarribeau@github) |
| |
| 2.10.1 (09-Nov-2019) |
| |
| #455: Jackson reports wrong locations for JsonEOFException |
| (reported by wastevenson@github, fix contributed by Todd O'B |
| #567: Add `uses` for `ObjectCodec` in module-info |
| (reported by Marc M) |
| #578: Array index out of bounds in hex lookup |
| (reported by Emily S) |
| |
| 2.10.0 (26-Sep-2019) |
| |
| #433: Add Builder pattern for creating configured Stream factories |
| #464: Add "maximum unescaped char" configuration option for `JsonFactory` via builder |
| #467: Create `JsonReadFeature` to move JSON-specific `JsonParser.Feature`s to |
| #479: Improve thread-safety of buffer recycling |
| #480: `SerializableString` value can not directly render to Writer |
| (requested by Philippe M) |
| #481: Create `JsonWriteFeature` to move JSON-specific `JsonGenerator.Feature`s to |
| #484: Implement `UTF8JsonGenerator.writeRawValue(SerializableString)` (and |
| `writeRaw(..)`) more efficiently |
| #495: Create `StreamReadFeature` to move non-json specific `JsonParser.Feature`s to |
| #496: Create `StreamWriteFeature` to take over non-json-specific `JsonGenerator.Feature`s |
| #502: Make `DefaultPrettyPrinter.createInstance()` to fail for sub-classes |
| #506: Add missing type parameter for `TypeReference` in `ObjectCodec` |
| #508: Add new exception type `InputCoercionException` to be used for failed coercions |
| like overflow for `int` |
| #517: Add `JsonGenerator.writeStartObject(Object, int)` (needed by CBOR, maybe Avro) |
| #527: Add simple module-info for JDK9+, using Moditect |
| #533: UTF-8 BOM not accounted for in JsonLocation.getByteOffset() |
| (contributed by Fabien R) |
| #539: Reduce max size of recycled byte[]/char[] blocks by `TextBuffer`, `ByteArrayBuilder` |
| #547: `CharsToNameCanonicalizer`: Internal error on `SymbolTable.rehash()` with high |
| number of hash collisions |
| (reported by Alex R) |
| #548: ByteQuadsCanonicalizer: ArrayIndexOutOfBoundsException in addName |
| (reported by Alex R) |
| #549: Add configurability of "quote character" for JSON factory |
| #561: Misleading exception for unquoted String parsing |
| #563: Async parser does not keep track of Array context properly |
| (reported by Doug R) |
| - Rewrite `JsonGenerator.copyCurrentStructure()` to remove recursion) |
| - Add `missingNode()`, `nullNode()` in `TreeCodec` |
| - Add `JsonParserDelegate.delegate()` methods |
| |
| 2.9.10 (21-Sep-2019) |
| |
| #540: UTF8StreamJsonParser: fix byte to int conversion for malformed escapes |
| (reported by Alex R and Sam S) |
| #556: 'IndexOutOfBoundsException' in UTF8JsonGenerator.writeString(Reader, len) |
| when using a negative length |
| (reported by jacob-alan-ward@github) |
| |
| 2.9.9 (16-May-2019) |
| |
| #516: _inputPtr off-by-one in UTF8StreamJsonParser._parseNumber2() |
| (reported by Henrik G) |
| #531: Non-blocking parser reports incorrect locations when fed with non-zero offset |
| (reported by David N) |
| |
| 2.9.8 (15-Dec-2018) |
| |
| #488: Fail earlier on coercions from "too big" `BigInteger` into |
| fixed-size types (`int`, `long`, `short`) |
| #510: Fix ArrayIndexOutofBoundsException found by LGTM.com |
| (reported by Alexander E-T) |
| - Improve exception message for missing Base64 padding (see databind#2183) |
| |
| 2.9.7 (19-Sep-2018) |
| |
| #476: Problem with `BufferRecycler` via async parser (or when sharing parser |
| across threads) |
| #477: Exception while decoding Base64 value with escaped `=` character |
| #488: Fail earlier on coercions from "too big" `BigInteger` into |
| fixed-size types (`int`, `long`, `short`) |
| |
| 2.9.6 (12-Jun-2018) |
| |
| #400: Add mechanism for forcing `BufferRecycler` released (to call on shutdown) |
| (contributed by Jeroen B) |
| #460: Failing to link `ObjectCodec` with `JsonFactory` copy constructor |
| #463: Ensure that `skipChildren()` of non-blocking `JsonParser` will throw |
| exception if not enough input |
| (requested by Doug R) |
| |
| 2.9.5 (26-Mar-2018) |
| |
| No changes since 2.9.4 |
| |
| 2.9.4 (24-Jan-2018) |
| |
| #414: Base64 MIME variant does not ignore white space chars as per RFC2045 |
| (reported by tmoschou@github) |
| #437: `ArrayIndexOutOfBoundsException` in `UTF8StreamJsonParser` |
| (reported by Igor A) |
| |
| 2.9.3 (09-Dec-2017) |
| |
| #419: `ArrayIndexOutOfBoundsException` from `UTF32Reader.read()` on invalid input |
| |
| 2.9.2 (13-Oct-2017) |
| |
| - New parent pom (`jackson-base`) |
| |
| 2.9.1 (07-Sep-2017) |
| |
| #397: Add `Automatic-Module-Name` ("com.fasterxml.jackson.core") for JDK 9 module system |
| |
| 2.9.0 (30-Jul-2017)) |
| |
| #17: Add 'JsonGenerator.writeString(Reader r, int charLength)' |
| (constributed by Logan W) |
| #57: Add support for non-blocking ("async") JSON parsing |
| #208: Make use of `_matchCount` in `FilteringParserDelegate` |
| (contributed by Rafal F) |
| #242: Add new write methods in `JsonGenerator` for writing type id containers |
| #304: Optimize `NumberOutput.outputLong()` method |
| #306: Add new method in `JsonStreamContext` to construct `JsonPointer` |
| #312: Add `JsonProcessingException.clearLocation()` to allow clearing |
| possibly security-sensitive information |
| (contributed by Alex Y) |
| #314: Add a method in `JsonParser` to allow checking for "NaN" values |
| #323: Add `JsonParser.ALLOW_TRAILING_COMMA` to work for Arrays and Objects |
| (contributed by Brad H) |
| #325: `DataInput` backed parser should handle `EOFException` at end of doc |
| (reported by Brad H) |
| #330: `FilteringParserDelegate` seems to miss last closing `END_OBJECT` |
| (contributed by Rafal F) |
| #340: Making `WriterBasedJsonGenerator` non-final |
| (requested by rfoltyns@github) |
| #356: Improve indication of "source reference" in `JsonLocation` wrt `byte[]`,`char[]` |
| #372: JsonParserSequence#skipChildren() throws exception when current delegate is |
| TokenBuffer.Parser with "incomplete" JSON |
| (contributed by Michael S) |
| #374: Minimal and DefaultPrettyPrinter with configurable separators |
| (contributed by Rafal F) |
| |
| 2.8.11 (23-Dec-2017) |
| |
| #418: ArrayIndexOutOfBoundsException from UTF32Reader.read on invalid input |
| (reported, contributed fix for by pfitzsimons-r7@github) |
| |
| 2.8.10 (24-Aug-2017) |
| |
| No changes since 2.8.9 |
| |
| 2.8.9 (12-Jun-2017) |
| |
| #382: ArrayIndexOutOfBoundsException from UTF32Reader.read on invalid input |
| (reported by Wil S) |
| |
| 2.8.8 (05-Apr-2017) |
| |
| #359: FilteringGeneratorDelegate does not override writeStartObject(Object forValue) |
| (contributed by Arnaud R) |
| #362: Use correct length variable for UTF-8 surrogate writing |
| |
| 2.8.7 (21-Feb-2017) |
| |
| #349: CharsToNameCanonicalizer performance bottleneck |
| (reported by Nuno D, nmldiegues@github) |
| #351: `java.lang.NegativeArraySizeException` at `ByteArrayBuilder.toByteArray()` |
| #354: Buffer size dependency in UTF8JsonGenerator writeRaw |
| (reported by Chistopher C) |
| |
| 2.8.6 (12-Jan-2017) |
| |
| #322: Trim tokens in error messages to 256 byte to prevent attacks |
| (contributed by Alessio S) |
| #335: Missing exception for invalid last character of base64 string to decode |
| using `Base64Variant.decode()` |
| |
| 2.8.5 (14-Nov-2016) |
| 2.8.4 (14-Oct-2016) |
| |
| No changes since 2.8.3 |
| |
| 2.8.3 (17-Sep-2016) |
| |
| #318: Add support for writing `byte[]` via `JsonGenerator.writeEmbeddedObject()` |
| |
| 2.8.2 (30-Aug-2016) |
| 2.8.1 (20-Jul-2016) |
| |
| No changes since 2.8.0 |
| |
| 2.8.0 (04-Jul-2016) |
| |
| #86: Allow inclusion of request body for `JsonParseException` |
| (contributed by LokeshN) |
| #117: Add `JsonParser.Feature.ALLOW_MISSING_VALUES` to support for missing values |
| (contributed by LokeshN) |
| #136: Add `JsonpCharacterEscapes` for easier handling of potential problems |
| with JSONP and rare but technically allowed \u2028 and \u2029 linefeed characters |
| #253: Add `JsonGenerator. writeEmbeddedObject()` to allow writes of opaque native types |
| (suggested by Gregoire C) |
| #255: Relax ownership checks for buffers not to require increase in size |
| #257: Add `writeStartObject(Object pojo)` to streamline assignment of current value |
| #265: `JsonStringEncoder` should allow passing `CharSequence` |
| (contributed by Mikael S) |
| #276: Add support for serializing using `java.io.DataOutput` |
| #277: Add new scalar-array write methods for `int`/`long`/`double` cases |
| #279: Support `DataInput` for parsing |
| #280: Add `JsonParser.finishToken()` to force full, non-lazy reading of current token |
| #281: Add `JsonEOFException` as sub-class of `JsonParseException` |
| #282: Fail to report error for trying to write field name outside Object (root level) |
| #285: Add `JsonParser.getText(Writer)` |
| (contributed by LokesN) |
| #290: Add `JsonGenerator.canWriteFormattedNumbers()` for introspection |
| #294: Add `JsonGenerator.writeFieldId(long)` method to support binary formats |
| with non-String keys |
| #296: `JsonParserSequence` skips a token on a switched Parser |
| (reported by Kevin G) |
| - Add `JsonParser.currentToken()` and `JsonParser.currentTokenId()` as replacements |
| for `getCurrentToken()` and `getCurrentTokenId()`, respectively. Existing methods |
| will likely be deprecated in 2.9. |
| |
| 2.7.9.3: |
| |
| #1872: NullPointerException in SubTypeValidator.validateSubType when |
| validating Spring interface |
| #1931: Two more c3p0 gadgets to exploit default typing issue |
| |
| 2.7.9.2 (20-Dec-2017) |
| |
| #1607: `@JsonIdentityReference` not used when setup on class only |
| #1628: Don't print to error stream about failure to load JDK 7 types |
| #1680: Blacklist couple more types for deserialization |
| #1737: Block more JDK types from polymorphic deserialization |
| #1855: Blacklist for more serialization gadgets (dbcp/tomcat, spring) |
| |
| 2.7.9.1 (18-Apr-2017) |
| |
| #1599: Jackson Deserializer security vulnerability |
| |
| 2.7.9 (04-Feb-2017) |
| |
| No changes since 2.7.8 |
| |
| 2.7.8 (26-Sep-2016) |
| |
| #317: ArrayIndexOutOfBoundsException: 200 on floating point number with exactly |
| 200-length decimal part |
| (reported by Allar H) |
| |
| 2.7.7 (27-Aug-2016) |
| |
| #307: JsonGenerationException: Split surrogate on writeRaw() input thrown for |
| input of a certain size |
| (reported by Mike N) |
| #315: `OutOfMemoryError` when writing BigDecimal |
| (reported by gmethwin@github) |
| |
| 2.7.6 (23-Jul-2016) |
| |
| - Clean up of FindBugs reported possible issues. |
| |
| 2.7.5 (11-Jun-2016) |
| |
| #280: FilteringGeneratorDelegate.writeUTF8String() should delegate to writeUTF8String() |
| (reported by Tanguy L) |
| |
| 2.7.4 (29-Apr-2016) |
| |
| #209: Make use of `_allowMultipleMatches` in `FilteringParserDelegate` |
| (contributed by Lokesh N) |
| - Make `processor` transient in `JsonParseException`, `JsonGenerationException` |
| to keep both Serializable |
| |
| 2.7.3 (16-Mar-2016) |
| |
| No changes since 2.7.2. |
| |
| 2.7.2 (26-Feb-2016) |
| |
| #246: Fix UTF8JsonGenerator to allow QUOTE_FIELD_NAMES to be toggled |
| (suggested by philipa@github) |
| |
| 2.7.1 (02-Feb-2016) |
| |
| No changes since 2.7.0. |
| |
| 2.7.0 (10-Jun-2016) |
| |
| #37: JsonParser.getTokenLocation() doesn't update after field names |
| (reported by Michael L) |
| #198: Add back-references to `JsonParser` / `JsonGenerator` for low-level parsing issues |
| (via `JsonParseException`, `JsonGenerationException`) |
| #211: Typo of function name com.fasterxml.jackson.core.Version.isUknownVersion() |
| (reported by timray@github) |
| #229: Array element and field token spans include previous comma. |
| - Implemented `ReaderBasedJsonParser.nextFieldName(SerializableString)` |
| (to improved Afterburner performance over String/char[] sources) |
| |
| 2.6.6 (05-Apr-2016) |
| |
| #248: VersionUtil.versionFor() unexpectedly return null instead of Version.unknownVersion() |
| (reported by sammyhk@github) |
| |
| 2.6.5 (19-Jan-2016) |
| 2.6.4 (07-Dec-2015) |
| |
| No changes since 2.6.3. |
| |
| 2.6.3 (12-Oct-2015) |
| |
| #220: Problem with `JsonParser.nextFieldName(SerializableString)` for byte-backed parser |
| |
| 2.6.2 (14-Sep-2015) |
| |
| #213: Parser is sometimes wrong when using CANONICALIZE_FIELD_NAMES |
| (reported by ichernev@github) |
| #216: ArrayIndexOutOfBoundsException: 128 when repeatedly serializing to a byte array |
| (reported by geekbeast@github) |
| |
| 2.6.1 (09-Aug-2015) |
| |
| #207: `ArrayIndexOutOfBoundsException` in `ByteQuadsCanonicalizer` |
| (reported by Florian S, fschopp@github) |
| |
| 2.6.0 (17-Jul-2015) |
| |
| #137: Allow filtering content read via `JsonParser` by specifying `JsonPointer`; |
| uses new class `com.fasterxml.jackson.core.filter.FilteringParserDelegate` |
| (and related, `TokenFilter`) |
| #177: Add a check so `JsonGenerator.writeString()` won't work if `writeFieldName()` expected. |
| #182: Inconsistent TextBuffer#getTextBuffer behavior |
| (contributed by Masaru H) |
| #185: Allow filtering content written via `JsonGenerator` by specifying `JsonPointer`; |
| uses new class `com.fasterxml.jackson.core.filter.FilteringGeneratorDelegate` |
| (and related, `TokenFilter`) |
| #188: `JsonParser.getValueAsString()` should return field name for `JsonToken.FIELD_NAME`, not `null` |
| #189: Add `JsonFactory.Feature.USE_THREAD_LOCAL_FOR_BUFFER_RECYCLING` (default: true), which may |
| be disabled to prevent use of ThreadLocal-based buffer recyling. |
| (suggested by soldierkam@github) |
| #195: Add `JsonGenerator.getOutputBuffered()` to find out amount of content buffered, |
| not yet flushed. |
| (requested by Ruediger M) |
| #196: Add support for `FormatFeature` extension, for format-specifc Enum-backed |
| parser/generator options |
| - Minor improvement to construction of "default PrettyPrinter": now overridable by data format |
| modules |
| - Implement a new yet more optimized symbol table for byte-backed parsers |
| - Add `JsonParser.Feature.IGNORE_UNDEFINED`, useful for data formats like protobuf |
| - Optimize writing of String names (remove intermediate copy; with JDK7 no speed benefit) |
| |
| 2.5.5 (07-Dec-2015) |
| |
| #220: Problem with `JsonParser.nextFieldName(SerializableString)` for byte-backed parser |
| #221: Fixed ArrayIndexOutOfBounds exception for character-based `JsonGenerator` |
| (reported by a-lerion@github) |
| |
| 2.5.4 (09-Jun-2015) |
| |
| No changes. |
| |
| 2.5.3 (24-Apr-2015) |
| |
| #191: Longest collision chain in symbol table now exceeds maximum -- suspect a DoS attack |
| (reported by Paul D) |
| |
| 2.5.2 (29-Mar-2015) |
| |
| #181: Failure parsing -Infinity on buffer boundary |
| (reported by brharrington@github) |
| #187: Longest collision chain in symbol table exceeds maximum length routinely |
| in non-malicious code |
| (reported by mazzaferri@github) |
| |
| 2.5.1 (06-Feb-2015) |
| |
| #178: Add `Lf2SpacesIndenter.withLinefeed` back to keep binary-compatibility with 2.4.x |
| (reported by ansell@github) |
| - Minor fix to alignment of null bytes in the last 4 bytes of name, in case where name |
| may cross the input boundary |
| |
| 2.5.0 (01-Jan-2015) |
| |
| #148: BytesToNameCanonicalizer can mishandle leading null byte(s). |
| (reported by rjmac@github) |
| #164: Add `JsonGenerator.Feature.IGNORE_UNKNOWN` (but support via individual |
| data format modules) |
| #166: Allow to configure line endings and indentation |
| (contributed by Aaron D) |
| #167: `JsonGenerator` not catching problem of writing field name twice in a row |
| #168: Add methods in `JsonStreamContext` for keeping track of "current value" |
| #169: Add `JsonPointer.head()` |
| (contributed by Alex S, lordofthejars@github) |
| - Added `ResolvedType.getParameterSource()` to support better resolution |
| of generic types. |
| - Added `JsonGenerator.writeRawValue(SerializableString)` |
| - Added `JsonParser.hasExpectedStartObjectToken()` convenience method |
| - Added `JsonParser.hasTokenId(id)` convenience method |
| - Added `JsonParser.nextFieldName()` (no args) |
| |
| 2.4.6 (23-Apr-2015) |
| |
| #184: WRITE_NUMBERS_AS_STRINGS disables WRITE_BIGDECIMAL_AS_PLAIN |
| (reported by Derek C) |
| |
| 2.4.5 (13-Jan-2015) |
| |
| No changes since 2.4.4. |
| |
| 2.4.4 (24-Nov-2014) |
| |
| #157: ArrayIndexOutOfBoundsException: 200 on numbers with more than 200 digits. |
| (reported by Lars P, larsp@github) |
| #173: An exception is thrown for a valid JsonPointer expression |
| (reported by Alex S) |
| #176: `JsonPointer` should not consider "00" to be valid index |
| (reported by fge@gitub) |
| - Fix `JsonGenerator.setFeatureMask()` to better handle dynamic changes. |
| |
| 2.4.3 (02-Oct-2014) |
| |
| #152: Exception for property names longer than 256k |
| (reported by CrendKing@github) |
| |
| 2.4.2 (13-Aug-2014) |
| |
| #145: NPE at BytesToNameCanonicalizer |
| (reported by Shay B) |
| #146: Error while parsing negative floats at the end of the input buffer |
| (reported by rjmac@github) |
| |
| 2.4.1 (16-Jun-2014) |
| |
| #143: Flaw in `BufferRecycler.allocByteBuffer(int,int)` that results in |
| performance regression |
| |
| 2.4.0 (29-May-2014) |
| |
| #121: Increase size of low-level byte[]/char[] input/output buffers |
| (from 4k->8k for bytes, 2k->4k for chars) |
| #127: Add `JsonGenerator.writeStartArray(int size)` for binary formats |
| #138: Add support for using `char[]` as input source; optimize handling |
| of `String` input as well. |
| - Refactor `BufferRecycler` to eliminate helper enums |
| |
| 2.3.5 (13-Jan-2015) |
| |
| #152: Exception for property names longer than 256k |
| #173: An exception is thrown for a valid JsonPointer expression |
| #176: `JsonPointer` should not consider "00" to be valid index |
| |
| 2.3.4 (17-Jul-2014) |
| 2.3.3 (10-Apr-2014) |
| |
| No changes since 2.3.2. |
| |
| 2.3.2 (01-Mar-2014) |
| |
| #126: Revert some 1.6 back to make core lib work with Android 2.2 (FroYo) |
| (contributed by Goncalo S) |
| #129: Missing delegation method, `JsonParserDelegate.isExpectedStartArrayToken()` |
| (Pascal G) |
| #133: Prevent error on JsonPointer expressions for properties that have numeric |
| ids above 32-bit range |
| (reported by mrstlee@github) |
| |
| 2.3.1 (28-Dec-2013) |
| |
| No functional changes. |
| |
| 2.3.0 (13-Nov-2013) |
| |
| #8: Add methods in `JsonParser`/`JsonGenerator` for reading/writing Object Ids |
| #47: Support YAML-style comments with `JsonParser.Feature.ALLOW_YAML_COMMENTS` |
| #60: Add a feature (`JsonParser.Feature.STRICT_DUPLICATE_DETECTION`) to verify |
| that input does not contain duplicate filed names |
| #77: Improve error reporting for unrecognized tokens |
| (requested by cowwoc@github) |
| #85: Add `JsonGenerator.Feature.WRITE_BIGDECIMAL_AS_PLAIN` |
| #91: Add methods in `JsonGenerator` for writing native Type Ids |
| #92: Add methods in `JsonParser` for reading native Type Ids |
| #93: Add `getFeatureMask()`, `setFeatureMask()` in `JsonGenerator`/`JsonParser` |
| #94: Allow coercion of String value "null" (similar to handling of null token) |
| #96: Add `JsonFactory.requiresPropertyOrdering()` introspection method |
| #97: JsonGenerator's `JsonWriteContext` not maintained properly, loses |
| current field name |
| (reported by Sam R) |
| #98: Improve handling of failures for `BigDecimal`, for "NaN" (and infinity) |
| #102: Unquoted field names can not start with a digit |
| #103: Add `JsonFactory.canHandleBinaryNatively`, `JsonGenerator.canWriteBinaryNatively` |
| to let databind module detect level of support for binary data. |
| #105: Parser parsers numbers eagerly; does not report error with missing space |
| #106: Add `JsonGenerator.Feature.STRICT_DUPLICATE_DETECTION` for preventing dup names |
| #110: Improve overridability of `JsonGeneratorDelegate` |
| (suggested by qpliu@github) |
| #111: _currInputRowStart isn't initialized in UTF8StreamJsonParser() constructor |
| (reported by dreamershl@github) |
| #115: JsonGenerator writeRawValue problem with surrogate UTF-8 characters |
| (reported by Marcin Z) |
| #116: WriterBasedJsonGenerator produces truncated Unicode escape sequences |
| (reported by Steve L-S) |
| - Improve `DefaultPrettyPrinter`, `Lf2SpacesIndenter` (from databind #276) |
| - Add `JsonGenerator.canOmitFields()` method to support discovery of |
| positional formats, needed for handling of filtering for CSV |
| - Rewrite `InternCache` to use `ConcurrentHashMap`, to work more efficiently both |
| for common case of few misses (no block on access), and slowest cases (lots of |
| misses). |
| - Add `JsonPointer` implementation, to be used by tree model, streaming |
| - Make `UTF8StreamJsonParser` non-final, for potential sub-classing |
| |
| 2.2.3 (23-Aug-2013) |
| |
| #78: ArrayIndexOutOfBoundsException for very long numbers (>500 digits) |
| (reported by boothen@github) |
| #81: CharTypes.appendQuoted misencodes first 32 Unicode values as '\0000' |
| (reported by githubaff0@github) |
| #84: Support for parsing 'Infinity' when feature ALLOW_NON_NUMERIC_NUMBERS is on |
| (contributed by ebrevdo@github) |
| - Add `Base64Variant.decode()` convenience methods |
| |
| 2.2.2 (26-May-2013) |
| |
| No changes since previous version. |
| |
| 2.2.1 (03-May-2013) |
| |
| #72: JsonFactory.copy() was not copying settings properly |
| (reported by Christian S (squiddle@github)) |
| - Moved VERSION/LICENSE contained in jars under META-INF/, to resolve |
| Android packaging (APK) issues |
| |
| 2.2.0 (22-Apr-2013) |
| |
| Fixes: |
| |
| #51: JsonLocation had non-serializable field, mark as transient |
| |
| Improvements |
| |
| #46, #49: Improve VersionUtil to generate PackageVersion, instead of |
| reading VERSION.txt from jar -- improves startup perf on Android significantly |
| (contributed by Ben G) |
| #59: Add more functionality in `TreeNode` interface, to allow some |
| level of traversal over any and all Tree Model implementations |
| #69: Add support for writing `short` values in JsonGenerator |
| |
| 2.1.3 (19-Jan-2013) |
| |
| * [JACKSON-884]: JsonStringEncoder.quoteAsStringValue() fails to encode |
| ctrl chars correctly. |
| * [Issue#48] Problems with spaces in URLs |
| (reported by KlausBrunner) |
| |
| 2.1.2 (04-Dec-2012) |
| |
| * [Issue#42] Problems with UTF32Reader |
| (reported by James R [jroper@github]) |
| * Added missing methods (like 'setPrettyPrinter()' in JsonGeneratorDelegate |
| |
| 2.1.1 (11-Nov-2012) |
| |
| * [Issue#34] `JsonParser.nextFieldName()` fails on buffer boundary |
| (reported by gsson@github) |
| * [Issue#38] `JsonParser.nextFieldName()` problems when handling |
| names with trailing spaces |
| (reported by matjazs@github) |
| |
| 2.1.0 (08-Oct-2012) |
| |
| A new minor version for 2.x. |
| |
| 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" |
| (suggested by Henning S) |
| |
| Improvements: |
| |
| * [JACKSON-837]: Made JsonGenerator implement Flushable. |
| (suggested by Matt G) |
| * [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. |
| |
| 2.0.4 (26-Jun-2012) |
| |
| Fixes: |
| |
| * [Issue-6] PrettyPrinter, count wrong for end-object case |
| * 1.9.x fixes up to 1.9.8 |
| |
| 2.0.3: skipped; only some modules use this version |
| |
| 2.0.2 (14-May-2012) |
| |
| * 1.9.x fixes up to 1.9.7 |
| |
| 2.0.1 (22-Apr-2012) |
| |
| Fixes: |
| |
| * [JACKSON-827] Fix incompatibilities with JDK 1.5 (2.0.0 accidentally |
| required 1.6) |
| (reported Pascal G) |
| |
| 2.0.0 (25-Mar-2012) |
| |
| Fixes: |
| |
| (all fixes up until 1.9.6) |
| |
| Improvements |
| |
| * [JACKSON-730]: Add checks to ensure that Features are applicable for |
| instances (parsers, generators), or if not, throw IllegalArgumentException |
| * [JACKSON-742]: Add append-methods in SerializableString |
| |
| New features: |
| |
| * [JACKSON-782]: Add 'JsonParser.overrideCurrentName()', needed as a workaround |
| for some exotic data binding cases (and/or formats) |
| |
| [entries for versions 1.x and earlier not retained; refer to earlier releases) |