blob: 43b2b8898abeac93ded287db4d444a61d93f4d7a [file] [log] [blame]
Tatu Saloranta637b73c2013-02-13 10:17:51 -08001Project: jackson-core
Tatu Saloranta1c9e1452014-11-24 18:08:01 -08002
3Contains core streaming reader (`JsonParser`) and writer (`JsonGenerator`) abstractions,
Tatu Saloranta3dcedd22015-01-10 20:15:06 -08004factory for constructing readers/writers (JsonFactory), as well as a minimal set
Tatu Saloranta1c9e1452014-11-24 18:08:01 -08005of interfaces needed for streaming level to make callbacks and call-throughs,
6via `ObjectCodec` and `TreeNode`.
7
Tatu Saloranta3dcedd22015-01-10 20:15:06 -08008Also includes implementation of this API for JSON.
Tatu Saloranta1c9e1452014-11-24 18:08:01 -08009Forms the base for other data formats as well, despite naming that suggests
Tatu Saloranta3dcedd22015-01-10 20:15:06 -080010JSON-specificity: naming is due to history, as Jackson started out as pure
11JSON library.
Tatu Saloranta1c9e1452014-11-24 18:08:01 -080012
13------------------------------------------------------------------------
14=== Releases ===
15------------------------------------------------------------------------
16
Tatu Saloranta1a5c3652016-08-31 21:16:06 -0700172.9.0 (not yet released)
18
Tatu Saloranta933f33c2017-02-22 21:20:54 -080019#17: Add 'JsonGenerator.writeString(Reader r, int charLength)'
20 (constributed by Logan W)
Tatu Saloranta1a5c3652016-08-31 21:16:06 -070021#304: Optimize `NumberOutput.outputLong()` method
Tatu Salorantaf0081302017-03-21 17:07:00 -070022#306: Add new method in `JsonStreamContext` to construct `JsonPointer`
Tatu Salorantaa778f952016-11-03 22:09:34 -070023#312: Add `JsonProcessingException.clearLocation()` to allow clearing
24 possibly security-sensitive information
25 (contributed by Alex Y)
Tatu Salorantaab9b00a2017-03-10 15:05:50 -080026#314: Add a method in `JsonParser` to allow checking for "NaN" values
Tatu Salorantab6846ee2016-11-04 18:09:11 -070027#323: Add `JsonParser.ALLOW_TRAILING_COMMA` to work for Arrays and Objects
28 (contributed by Brad H)
Tatu Saloranta56c2ad02016-11-04 18:26:34 -070029#325: `DataInput` backed parser should handle `EOFException` at end of doc
30 (reported by Brad H)
Tatu Saloranta7a7b5fd2017-01-10 20:10:05 -080031#340: Making `WriterBasedJsonGenerator` non-final
32 (requested by rfoltyns@github)
Tatu Salorantace193ae2017-02-22 23:20:10 -080033#356: Improve indication of "source reference" in `JsonLocation` wrt `byte[]`,`char[]`
Tatu Saloranta937f3862017-04-28 14:05:45 -070034#372: JsonParserSequence#skipChildren() throws exception when current delegate is
35 TokenBuffer.Parser with "incomplete" JSON
36 (contributed by Michael S)
Tatu Saloranta53332472017-05-23 13:13:17 -070037#374: Minimal and DefaultPrettyPrinter with configurable separators
38 (contributed by Rafal F)
Tatu Saloranta1a5c3652016-08-31 21:16:06 -070039
Tatu Salorantaf0138512017-04-04 20:21:05 -0700402.8.8 (05-Apr-2017)
Tatu Salorantaecc374d2017-03-10 14:06:27 -080041
42#359: FilteringGeneratorDelegate does not override writeStartObject(Object forValue)
43 (contributed by Arnaud R)
Tatu Saloranta2da8d722017-03-21 17:09:20 -070044#362: Use correct length variable for UTF-8 surrogate writing
Tatu Salorantaecc374d2017-03-10 14:06:27 -080045
Tatu Saloranta66d496d2017-02-20 16:59:33 -0800462.8.7 (21-Feb-2017)
Tatu Salorantae90e4742017-02-13 15:45:25 -080047
Tatu Saloranta67add8c2017-02-14 13:45:24 -080048#349: CharsToNameCanonicalizer performance bottleneck
49 (reported by Nuno D, nmldiegues@github)
Tatu Salorantad3d830f2017-02-13 15:59:53 -080050#351: `java.lang.NegativeArraySizeException` at `ByteArrayBuilder.toByteArray()`
Tatu Salorantae90e4742017-02-13 15:45:25 -080051#354: Buffer size dependency in UTF8JsonGenerator writeRaw
Tatu Saloranta18e2b152017-02-13 15:47:29 -080052 (reported by Chistopher C)
53
Tatu Saloranta4ddeec02017-01-11 20:36:48 -0800542.8.6 (12-Jan-2017)
Tatu Salorantadc9eef92016-11-25 18:35:45 -080055
Tatu Saloranta958fc5d2017-01-11 19:42:42 -080056#322: Trim tokens in error messages to 256 byte to prevent attacks
57 (contributed by Alessio S)
Tatu Salorantadc9eef92016-11-25 18:35:45 -080058#335: Missing exception for invalid last character of base64 string to decode
59 using `Base64Variant.decode()`
60
Tatu Salorantaf871b942016-11-13 22:05:15 -0800612.8.5 (14-Nov-2016)
Tatu Saloranta933a46b2016-10-13 20:46:00 -0700622.8.4 (14-Oct-2016)
63
64No changes since 2.8.3
65
662.8.3 (17-Sep-2016)
Tatu Saloranta1a5c3652016-08-31 21:16:06 -070067
Tatu Salorantafa643902016-09-01 15:32:46 -070068#318: Add support for writing `byte[]` via `JsonGenerator.writeEmbeddedObject()`
69
Tatu Salorantaaf873e32016-08-29 17:35:51 -0700702.8.2 (30-Aug-2016)
Tatu Saloranta630997d2016-07-19 15:57:32 -0700712.8.1 (20-Jul-2016)
Tatu Saloranta0e2dbc82016-07-18 22:15:28 -070072
73No changes since 2.8.0
74
Tatu Saloranta397fc052016-07-03 22:17:57 -0700752.8.0 (04-Jul-2016)
Tatu Saloranta4bace842016-03-21 21:35:39 -070076
Tatu Saloranta456ff3c2016-07-01 21:20:53 -070077#86: Allow inclusion of request body for `JsonParseException`
78 (contributed by LokeshN)
79#117: Add `JsonParser.Feature.ALLOW_MISSING_VALUES` to support for missing values
Tatu Saloranta6e3999e2016-04-14 18:42:19 -070080 (contributed by LokeshN)
Tatu Salorantafd5ca3b2016-05-28 20:17:14 -070081#136: Add `JsonpCharacterEscapes` for easier handling of potential problems
82 with JSONP and rare but technically allowed \u2028 and \u2029 linefeed characters
Tatu Saloranta4bace842016-03-21 21:35:39 -070083#253: Add `JsonGenerator. writeEmbeddedObject()` to allow writes of opaque native types
84 (suggested by Gregoire C)
85#255: Relax ownership checks for buffers not to require increase in size
86#257: Add `writeStartObject(Object pojo)` to streamline assignment of current value
Tatu Salorantac53f3162016-03-29 17:35:15 -070087#265: `JsonStringEncoder` should allow passing `CharSequence`
88 (contributed by Mikael S)
Tatu Saloranta38b3ef12016-05-03 18:08:31 -070089#276: Add support for serializing using `java.io.DataOutput`
Tatu Saloranta5f175922016-05-22 22:46:42 -070090#277: Add new scalar-array write methods for `int`/`long`/`double` cases
Tatu Salorantacfb08662016-05-24 18:03:17 -070091#279: Support `DataInput` for parsing
Tatu Salorantabf9a4902016-03-21 22:01:53 -070092#280: Add `JsonParser.finishToken()` to force full, non-lazy reading of current token
Tatu Saloranta98f84442016-05-26 18:00:14 -070093#281: Add `JsonEOFException` as sub-class of `JsonParseException`
Tatu Salorantae0b105f2016-05-12 20:13:14 -070094#282: Fail to report error for trying to write field name outside Object (root level)
Tatu Salorantab13bde62016-05-18 08:47:04 -070095#285: Add `JsonParser.getText(Writer)`
96 (contributed by LokesN)
Tatu Salorantae5ded102016-05-24 18:56:21 -070097#290: Add `JsonGenerator.canWriteFormattedNumbers()` for introspection
Tatu Saloranta792de082016-06-28 22:50:04 -070098#294: Add `JsonGenerator.writeFieldId(long)` method to support binary formats
99 with non-String keys
Tatu Saloranta0d8b14d2016-07-03 22:02:12 -0700100#296: `JsonParserSequence` skips a token on a switched Parser
Tatu Salorantae052c312016-07-01 21:11:25 -0700101 (reported by Kevin G)
Tatu Saloranta93994e32016-05-14 18:21:47 -0700102- Add `JsonParser.currentToken()` and `JsonParser.currentTokenId()` as replacements
103 for `getCurrentToken()` and `getCurrentTokenId()`, respectively. Existing methods
104 will likely be deprecated in 2.9.
Tatu Saloranta4bace842016-03-21 21:35:39 -0700105
Tatu Saloranta18e2b152017-02-13 15:47:29 -08001062.7.10 (not yet released)
Tatu Salorantae90e4742017-02-13 15:45:25 -0800107
Tatu Saloranta7e7c9bf2017-02-04 11:16:32 -08001082.7.9 (04-Feb-2017)
109
110No changes since 2.7.8
111
Tatu Saloranta81425a52016-09-26 07:46:54 -07001122.7.8 (26-Sep-2016)
Tatu Saloranta345cad52016-08-31 21:09:22 -0700113
114#317: ArrayIndexOutOfBoundsException: 200 on floating point number with exactly
115 200-length decimal part
116 (reported by Allar H)
117
Tatu Saloranta930edea2016-08-26 14:50:58 -07001182.7.7 (27-Aug-2016)
Tatu Saloranta554f8db2016-08-18 23:09:52 -0700119
120#307: JsonGenerationException: Split surrogate on writeRaw() input thrown for
121 input of a certain size
122 (reported by Mike N)
Tatu Saloranta96642972016-08-24 22:53:20 -0700123#315: `OutOfMemoryError` when writing BigDecimal
124 (reported by gmethwin@github)
Tatu Saloranta554f8db2016-08-18 23:09:52 -0700125
Tatu Saloranta5f1f2952016-07-22 19:23:49 -07001262.7.6 (23-Jul-2016)
Tatu Salorantae962fb92016-07-21 14:14:26 -0700127
128- Clean up of FindBugs reported possible issues.
129
Tatu Saloranta0ea06aa2016-06-10 19:02:06 -07001302.7.5 (11-Jun-2016)
Tatu Saloranta88db6b72016-05-06 10:06:59 -0700131
Tatu Saloranta00a29c82016-05-06 10:03:36 -0700132#280: FilteringGeneratorDelegate.writeUTF8String() should delegate to writeUTF8String()
133 (reported by Tanguy L)
134
Tatu Saloranta3f368b42016-04-28 17:21:43 -07001352.7.4 (29-Apr-2016)
Tatu Saloranta91965b22016-02-22 20:17:21 -0800136
Tatu Salorantaecf088c2016-03-21 21:27:04 -0700137#209: Make use of `_allowMultipleMatches` in `FilteringParserDelegate`
138 (contributed by Lokesh N)
Tatu Salorantae3292f52016-04-14 19:16:45 -0700139- Make `processor` transient in `JsonParseException`, `JsonGenerationException`
140 to keep both Serializable
Tatu Salorantaecf088c2016-03-21 21:27:04 -0700141
Tatu Saloranta9118d6b2016-03-15 18:14:51 -07001422.7.3 (16-Mar-2016)
143
144No changes since 2.7.2.
145
Tatu Saloranta63245462016-02-26 18:09:09 -08001462.7.2 (26-Feb-2016)
Tatu Salorantad58d4202016-02-22 20:11:12 -0800147
148#246: Fix UTF8JsonGenerator to allow QUOTE_FIELD_NAMES to be toggled
149 (suggested by philipa@github)
150
Tatu Saloranta58088f42016-02-01 22:08:22 -08001512.7.1 (02-Feb-2016)
152
153No changes since 2.7.0.
154
Tatu Saloranta4d97ba92016-01-09 21:51:10 -08001552.7.0 (10-Jun-2016)
Cowtowncoder9a9b52f2015-08-11 15:56:22 -0700156
Tatu Salorantafede6c92015-11-25 21:02:31 -0800157#37: JsonParser.getTokenLocation() doesn't update after field names
158 (reported by Michael L)
Tatu Saloranta77be53c2015-08-17 22:52:56 -0700159#198: Add back-references to `JsonParser` / `JsonGenerator` for low-level parsing issues
160 (via `JsonParseException`, `JsonGenerationException`)
Cowtowncoder22465412015-08-18 12:25:05 -0700161#211: Typo of function name com.fasterxml.jackson.core.Version.isUknownVersion()
162 (reported by timray@github)
Tatu Saloranta4195e6e2015-11-16 22:58:39 -0800163#229: Array element and field token spans include previous comma.
Cowtowncoder8dc12842015-08-12 13:35:37 -0700164- Implemented `ReaderBasedJsonParser.nextFieldName(SerializableString)`
165 (to improved Afterburner performance over String/char[] sources)
Cowtowncoder9a9b52f2015-08-11 15:56:22 -0700166
Tatu Salorantaf73c59d2016-04-04 18:13:54 -07001672.6.6 (05-Apr-2016)
Tatu Saloranta1fb1e272016-01-25 20:00:10 -0800168
169#248: VersionUtil.versionFor() unexpectedly return null instead of Version.unknownVersion()
170 (reported by sammyhk@github)
171
Ben Jefferiesb246ce82016-01-26 14:46:39 +00001722.6.5 (19-Jan-2016)
Tatu Salorantaaf5f1462015-12-07 18:25:30 -08001732.6.4 (07-Dec-2015)
174
175No changes since 2.6.3.
176
Cowtowncoder273ef302015-10-12 09:49:41 -07001772.6.3 (12-Oct-2015)
Cowtowncoder186a6392015-09-30 14:43:24 -0700178
179#220: Problem with `JsonParser.nextFieldName(SerializableString)` for byte-backed parser
180
Tatu Saloranta9d0f0aa2015-09-14 19:43:20 -07001812.6.2 (14-Sep-2015)
Cowtowncodercfeaed02015-09-08 15:49:09 -0700182
183#213: Parser is sometimes wrong when using CANONICALIZE_FIELD_NAMES
184 (reported by ichernev@github)
Cowtowncoderbe438672015-09-09 10:59:56 -0700185#216: ArrayIndexOutOfBoundsException: 128 when repeatedly serializing to a byte array
186 (reported by geekbeast@github)
Cowtowncodercfeaed02015-09-08 15:49:09 -0700187
Tatu Saloranta7fd29162015-08-09 22:22:14 -07001882.6.1 (09-Aug-2015)
Cowtowncoderc2823b42015-07-31 19:43:48 -0700189
190#207: `ArrayIndexOutOfBoundsException` in `ByteQuadsCanonicalizer`
191 (reported by Florian S, fschopp@github)
192
Cowtowncoder80b83192015-07-16 17:12:09 -07001932.6.0 (17-Jul-2015)
Cowtowncoder5cddffa2015-01-15 16:10:26 -0800194
Tatu Saloranta66e604f2015-05-25 20:02:40 -0700195#137: Allow filtering content read via `JsonParser` by specifying `JsonPointer`;
196 uses new class `com.fasterxml.jackson.core.filter.FilteringParserDelegate`
197 (and related, `TokenFilter`)
Cowtowncoder5cddffa2015-01-15 16:10:26 -0800198#177: Add a check so `JsonGenerator.writeString()` won't work if `writeFieldName()` expected.
Cowtowncoder7f5065a2015-02-23 15:51:38 -0800199#182: Inconsistent TextBuffer#getTextBuffer behavior
200 (contributed by Masaru H)
Tatu Salorantab895aaf2015-04-23 22:15:48 -0700201#185: Allow filtering content written via `JsonGenerator` by specifying `JsonPointer`;
202 uses new class `com.fasterxml.jackson.core.filter.FilteringGeneratorDelegate`
203 (and related, `TokenFilter`)
Cowtowncoder698f3a72015-03-30 17:26:08 -0700204#188: `JsonParser.getValueAsString()` should return field name for `JsonToken.FIELD_NAME`, not `null`
Tatu Saloranta8891c0c2015-04-23 22:47:05 -0700205#189: Add `JsonFactory.Feature.USE_THREAD_LOCAL_FOR_BUFFER_RECYCLING` (default: true), which may
206 be disabled to prevent use of ThreadLocal-based buffer recyling.
207 (suggested by soldierkam@github)
Cowtowncoderff2a73a2015-05-27 10:01:22 -0700208#195: Add `JsonGenerator.getOutputBuffered()` to find out amount of content buffered,
209 not yet flushed.
210 (requested by Ruediger M)
Cowtowncoder97345f72015-06-09 11:33:42 -0700211#196: Add support for `FormatFeature` extension, for format-specifc Enum-backed
212 parser/generator options
Cowtowncoderefc42952015-02-05 10:18:04 -0800213- Minor improvement to construction of "default PrettyPrinter": now overridable by data format
214 modules
Tatu Saloranta2967c232015-02-05 20:46:53 -0800215- Implement a new yet more optimized symbol table for byte-backed parsers
Cowtowncoder4eeba792015-02-13 16:17:17 -0800216- Add `JsonParser.Feature.IGNORE_UNDEFINED`, useful for data formats like protobuf
Tatu Salorantaad3a43e2015-03-30 19:29:05 -0700217- Optimize writing of String names (remove intermediate copy; with JDK7 no speed benefit)
Cowtowncoder5cddffa2015-01-15 16:10:26 -0800218
Tatu Saloranta29c98072015-12-07 18:35:55 -08002192.5.5 (07-Dec-2015)
Tatu Saloranta98df1822015-10-01 08:08:41 -0700220
221#220: Problem with `JsonParser.nextFieldName(SerializableString)` for byte-backed parser
Cowtowncoder5f04c202015-10-06 14:25:20 -0700222#221: Fixed ArrayIndexOutOfBounds exception for character-based `JsonGenerator`
223 (reported by a-lerion@github)
Tatu Saloranta98df1822015-10-01 08:08:41 -0700224
Tatu Saloranta7cac58b2015-06-09 18:24:02 -07002252.5.4 (09-Jun-2015)
226
227No changes.
228
Cowtowncodercec04792015-04-24 10:08:26 -07002292.5.3 (24-Apr-2015)
Tatu Saloranta6a637522015-04-22 21:33:47 -0700230
231#191: Longest collision chain in symbol table now exceeds maximum -- suspect a DoS attack
232 (reported by Paul D)
233
Tatu Saloranta8f64a152015-03-29 16:46:40 -07002342.5.2 (29-Mar-2015)
Cowtowncoder29a364a2015-02-16 13:55:24 -0800235
236#181: Failure parsing -Infinity on buffer boundary
237 (reported by brharrington@github)
Tatu Salorantae0a02272015-03-26 21:05:39 -0700238#187: Longest collision chain in symbol table exceeds maximum length routinely
239 in non-malicious code
240 (reported by mazzaferri@github)
Cowtowncoder29a364a2015-02-16 13:55:24 -0800241
Tatu Saloranta725b7972015-02-06 16:03:50 -08002422.5.1 (06-Feb-2015)
Tatu Saloranta3dcedd22015-01-10 20:15:06 -0800243
244#178: Add `Lf2SpacesIndenter.withLinefeed` back to keep binary-compatibility with 2.4.x
245 (reported by ansell@github)
Tatu Saloranta9bdda3f2015-02-02 21:35:52 -0800246- Minor fix to alignment of null bytes in the last 4 bytes of name, in case where name
247 may cross the input boundary
Tatu Saloranta3dcedd22015-01-10 20:15:06 -0800248
Tatu Saloranta41ee3042015-01-01 15:34:50 -08002492.5.0 (01-Jan-2015)
Tatu Salorantaca94baf2014-08-07 20:44:41 -0700250
Tatue9972872014-08-13 13:00:57 -0700251#148: BytesToNameCanonicalizer can mishandle leading null byte(s).
252 (reported by rjmac@github)
Cowtowncoder27eb3c12014-11-07 15:16:45 -0800253#164: Add `JsonGenerator.Feature.IGNORE_UNKNOWN` (but support via individual
254 data format modules)
Tatu Saloranta55cfa312014-11-28 20:54:50 -0800255#166: Allow to configure line endings and indentation
256 (contributed by Aaron D)
Cowtowncoder7b1d4112014-11-24 11:41:16 -0800257#167: `JsonGenerator` not catching problem of writing field name twice in a row
Tatu Saloranta44f42e82014-11-26 20:38:27 -0800258#168: Add methods in `JsonStreamContext` for keeping track of "current value"
Cowtowncoderd2c60232014-12-09 14:39:17 -0800259#169: Add `JsonPointer.head()`
Cowtowncoderfa0b5232014-12-05 14:01:27 -0800260 (contributed by Alex S, lordofthejars@github)
Cowtowncoderf4087952014-09-29 14:23:37 -0700261- Added `ResolvedType.getParameterSource()` to support better resolution
262 of generic types.
Cowtowncoder7df7c572014-11-07 17:06:29 -0800263- Added `JsonGenerator.writeRawValue(SerializableString)`
Tatu Saloranta39170c02014-12-12 20:17:13 -0800264- Added `JsonParser.hasExpectedStartObjectToken()` convenience method
Tatu Salorantaaae53972014-12-09 20:05:04 -0800265- Added `JsonParser.hasTokenId(id)` convenience method
Cowtowncoder2ec34032014-12-11 10:50:57 -0800266- Added `JsonParser.nextFieldName()` (no args)
Tatue9972872014-08-13 13:00:57 -0700267
Cowtowncoder44dc4292015-09-11 10:05:02 -07002682.4.6 (23-Apr-2015)
Cowtowncoderfca10e32015-02-19 16:39:04 -0800269
270#184: WRITE_NUMBERS_AS_STRINGS disables WRITE_BIGDECIMAL_AS_PLAIN
271 (reported by Derek C)
272
Tatu Saloranta36c91eb2015-01-13 20:20:08 -08002732.4.5 (13-Jan-2015)
274
275No changes since 2.4.4.
276
Tatu Saloranta1c9e1452014-11-24 18:08:01 -08002772.4.4 (24-Nov-2014)
Tatu Salorantad533f292014-09-24 20:14:39 -0700278
Cowtowncoder290799a2014-10-08 16:06:40 -0700279#157: ArrayIndexOutOfBoundsException: 200 on numbers with more than 200 digits.
280 (reported by Lars P, larsp@github)
Tatu Saloranta0d9cd9f2014-12-07 10:16:55 -0800281#173: An exception is thrown for a valid JsonPointer expression
282 (reported by Alex S)
Cowtowncoderd9995142014-12-30 17:09:51 -0800283#176: `JsonPointer` should not consider "00" to be valid index
284 (reported by fge@gitub)
Tatu Salorantaffd16b72014-11-09 12:48:32 -0800285- Fix `JsonGenerator.setFeatureMask()` to better handle dynamic changes.
Tatu Salorantad533f292014-09-24 20:14:39 -0700286
Cowtowncoderd860a8c2014-10-09 11:35:33 -07002872.4.3 (02-Oct-2014)
Tatu544904d2014-08-13 12:31:11 -0700288
Cowtowncoderd860a8c2014-10-09 11:35:33 -0700289#152: Exception for property names longer than 256k
290 (reported by CrendKing@github)
Tatu544904d2014-08-13 12:31:11 -0700291
Tatu Salorantad533f292014-09-24 20:14:39 -07002922.4.2 (13-Aug-2014)
Tatu4ceaba82014-06-06 13:44:41 -0700293
Tatu Saloranta5027dc52014-07-08 20:27:00 -0700294#145: NPE at BytesToNameCanonicalizer
295 (reported by Shay B)
Tatu Saloranta1f6e1fb2012-01-17 22:29:27 -0800296#146: Error while parsing negative floats at the end of the input buffer
297 (reported by rjmac@github)
Tatu4ceaba82014-06-06 13:44:41 -0700298
Tatu Saloranta5027dc52014-07-08 20:27:00 -07002992.4.1 (16-Jun-2014)
300
301#143: Flaw in `BufferRecycler.allocByteBuffer(int,int)` that results in
302 performance regression
303
3042.4.0 (29-May-2014)
Tatu Saloranta1f6e1fb2012-01-17 22:29:27 -0800305
Tatu Saloranta175a97b2014-01-09 21:49:24 -0800306#121: Increase size of low-level byte[]/char[] input/output buffers
307 (from 4k->8k for bytes, 2k->4k for chars)
Tatu Saloranta1d076012014-03-24 18:29:33 -0700308#127: Add `JsonGenerator.writeStartArray(int size)` for binary formats
Tatu64aa9d22014-04-18 14:07:38 -0700309#138: Add support for using `char[]` as input source; optimize handling
310 of `String` input as well.
Tatu Salorantaf633f102013-12-13 21:15:24 -0800311- Refactor `BufferRecycler` to eliminate helper enums
Tatu Saloranta6f91dcf2013-12-01 13:16:45 -0800312
Cowtowncoder44dc4292015-09-11 10:05:02 -07003132.3.5 (13-Jan-2015)
314
315#152: Exception for property names longer than 256k
316#173: An exception is thrown for a valid JsonPointer expression
317#176: `JsonPointer` should not consider "00" to be valid index
318
3192.3.4 (17-Jul-2014)
Tatu Saloranta9e2d7372014-05-07 08:23:32 -07003202.3.3 (10-Apr-2014)
321
322No changes since 2.3.2.
323
3242.3.2 (01-Mar-2014)
Tatu Salorantaa50f62c2014-03-06 20:24:04 -0800325
326#126: Revert some 1.6 back to make core lib work with Android 2.2 (FroYo)
327 (contributed by Goncalo S)
328#129: Missing delegation method, `JsonParserDelegate.isExpectedStartArrayToken()`
329 (Pascal G)
Tatu Saloranta9e2d7372014-05-07 08:23:32 -0700330#133: Prevent error on JsonPointer expressions for properties that have numeric
331 ids above 32-bit range
332 (reported by mrstlee@github)
Tatu Salorantaa50f62c2014-03-06 20:24:04 -0800333
Tatu141c08b2014-02-28 14:04:39 -08003342.3.1 (28-Dec-2013)
335
336No functional changes.
337
Tatu Salorantaf633f102013-12-13 21:15:24 -08003382.3.0 (13-Nov-2013)
339
Tatu Salorantaf9593612013-08-07 19:24:25 -0700340#8: Add methods in `JsonParser`/`JsonGenerator` for reading/writing Object Ids
Tatu Saloranta098ece82013-09-19 12:12:22 -0700341#47: Support YAML-style comments with `JsonParser.Feature.ALLOW_YAML_COMMENTS`
Tatu Saloranta880ba762013-09-24 21:32:15 -0700342#60: Add a feature (`JsonParser.Feature.STRICT_DUPLICATE_DETECTION`) to verify
343 that input does not contain duplicate filed names
Tatu Salorantaad28e352013-07-04 16:40:18 -0700344#77: Improve error reporting for unrecognized tokens
345 (requested by cowwoc@github)
Tatu Saloranta0dba7142013-07-04 21:17:31 -0700346#85: Add `JsonGenerator.Feature.WRITE_BIGDECIMAL_AS_PLAIN`
Tatu Saloranta08f918c2013-07-27 19:26:51 -0700347#91: Add methods in `JsonGenerator` for writing native Type Ids
Tatu Saloranta567257f2013-08-02 22:20:17 -0700348#92: Add methods in `JsonParser` for reading native Type Ids
Tatu Salorantacaefc682013-08-07 19:20:50 -0700349#93: Add `getFeatureMask()`, `setFeatureMask()` in `JsonGenerator`/`JsonParser`
Tatu Saloranta98c86a92013-08-10 19:25:43 -0700350#94: Allow coercion of String value "null" (similar to handling of null token)
Tatu Saloranta1734a3a2013-08-28 19:06:20 -0700351#96: Add `JsonFactory.requiresPropertyOrdering()` introspection method
Tatu Saloranta7dc9de62013-08-30 19:01:20 -0700352#97: JsonGenerator's `JsonWriteContext` not maintained properly, loses
353 current field name
354 (reported by Sam R)
Tatu Salorantab40ac812013-08-28 21:04:32 -0700355#98: Improve handling of failures for `BigDecimal`, for "NaN" (and infinity)
Tatu Salorantaeaa2b0c2013-09-21 11:39:53 -0700356#102: Unquoted field names can not start with a digit
Tatu Salorantab8835442013-09-14 12:12:57 -0700357#103: Add `JsonFactory.canHandleBinaryNatively`, `JsonGenerator.canWriteBinaryNatively`
358 to let databind module detect level of support for binary data.
Tatu Saloranta38d6e352013-09-21 11:26:42 -0700359#105: Parser parsers numbers eagerly; does not report error with missing space
Tatu Salorantaf9ad80f2013-09-24 21:31:16 -0700360#106: Add `JsonGenerator.Feature.STRICT_DUPLICATE_DETECTION` for preventing dup names
Tatu Saloranta0e10fd52013-11-02 21:12:49 -0700361#110: Improve overridability of `JsonGeneratorDelegate`
362 (suggested by qpliu@github)
Tatu Saloranta911cca02013-10-08 10:03:44 -0700363#111: _currInputRowStart isn't initialized in UTF8StreamJsonParser() constructor
364 (reported by dreamershl@github)
Tatu Saloranta5e14c462013-11-08 19:30:54 -0800365#115: JsonGenerator writeRawValue problem with surrogate UTF-8 characters
366 (reported by Marcin Z)
Tatu Salorantabc540622013-11-11 16:08:15 -0800367#116: WriterBasedJsonGenerator produces truncated Unicode escape sequences
368 (reported by Steve L-S)
Tatu Saloranta45cc26c2013-08-07 23:24:04 -0700369- Improve `DefaultPrettyPrinter`, `Lf2SpacesIndenter` (from databind #276)
Tatu Saloranta98cb9a72013-08-10 15:05:33 -0700370- Add `JsonGenerator.canOmitFields()` method to support discovery of
371 positional formats, needed for handling of filtering for CSV
Tatu Saloranta8475c8b2013-09-18 16:21:22 -0700372- Rewrite `InternCache` to use `ConcurrentHashMap`, to work more efficiently both
373 for common case of few misses (no block on access), and slowest cases (lots of
374 misses).
Tatu879b7cd2013-09-24 11:51:37 -0700375- Add `JsonPointer` implementation, to be used by tree model, streaming
Tatu Saloranta7ee38782013-10-03 10:51:06 -0700376- Make `UTF8StreamJsonParser` non-final, for potential sub-classing
Tatu Salorantaad28e352013-07-04 16:40:18 -0700377
Tatu Saloranta3da5c042013-10-08 10:08:24 -07003782.2.3 (23-Aug-2013)
379
380#78: ArrayIndexOutOfBoundsException for very long numbers (>500 digits)
381 (reported by boothen@github)
382#81: CharTypes.appendQuoted misencodes first 32 Unicode values as '\0000'
383 (reported by githubaff0@github)
384#84: Support for parsing 'Infinity' when feature ALLOW_NON_NUMERIC_NUMBERS is on
385 (contributed by ebrevdo@github)
386- Add `Base64Variant.decode()` convenience methods
387
Tatu Saloranta0ec6bac2013-06-06 13:26:26 -07003882.2.2 (26-May-2013)
389
390No changes since previous version.
391
Tatu Salorantad940b452013-05-26 22:16:00 -07003922.2.1 (03-May-2013)
Tatu Saloranta7a9d1d32013-04-26 16:42:40 -0700393
Tatu Saloranta7b796a82013-04-27 10:18:30 -0700394#72: JsonFactory.copy() was not copying settings properly
395 (reported by Christian S (squiddle@github))
Tatu Saloranta7a9d1d32013-04-26 16:42:40 -0700396- Moved VERSION/LICENSE contained in jars under META-INF/, to resolve
397 Android packaging (APK) issues
398
Tatu Saloranta7a9d1d32013-04-26 16:42:40 -07003992.2.0 (22-Apr-2013)
Tatu Saloranta306524f2012-11-12 14:33:10 -0800400
401Fixes:
402
Tatu Saloranta5b7bbe12013-04-16 19:08:21 -0700403#51: JsonLocation had non-serializable field, mark as transient
Tatu Saloranta61d5bdd2013-01-11 19:02:01 -0800404
Tatu Saloranta45466132013-01-11 10:20:48 -0800405Improvements
406
Tatu Saloranta5b7bbe12013-04-16 19:08:21 -0700407#46, #49: Improve VersionUtil to generate PackageVersion, instead of
Tatu Saloranta45466132013-01-11 10:20:48 -0800408 reading VERSION.txt from jar -- improves startup perf on Android significantly
409 (contributed by Ben G)
Tatu Saloranta5b7bbe12013-04-16 19:08:21 -0700410#59: Add more functionality in `TreeNode` interface, to allow some
Tatu Saloranta12525982013-02-12 22:56:57 -0800411 level of traversal over any and all Tree Model implementations
Tatu Saloranta5b7bbe12013-04-16 19:08:21 -0700412#69: Add support for writing `short` values in JsonGenerator
Tatu Saloranta45466132013-01-11 10:20:48 -0800413
Tatu Salorantac3ef9f32013-02-04 20:35:22 -08004142.1.3 (19-Jan-2013)
Tatu Saloranta1e1bfb62012-11-15 17:39:03 -0800415
Tatu Salorantac3ef9f32013-02-04 20:35:22 -0800416* [JACKSON-884]: JsonStringEncoder.quoteAsStringValue() fails to encode
417 ctrl chars correctly.
418* [Issue#48] Problems with spaces in URLs
419 (reported by KlausBrunner)
420
4212.1.2 (04-Dec-2012)
422
423* [Issue#42] Problems with UTF32Reader
424 (reported by James R [jroper@github])
425* Added missing methods (like 'setPrettyPrinter()' in JsonGeneratorDelegate
426
4272.1.1 (11-Nov-2012)
Tatu Salorantadc2e72f2012-10-05 13:04:07 -0700428
Tatu Salorantaab0269c2012-10-20 13:19:10 -0700429* [Issue#34] `JsonParser.nextFieldName()` fails on buffer boundary
430 (reported by gsson@github)
Tatu Saloranta9c386442012-11-08 14:40:26 -0800431* [Issue#38] `JsonParser.nextFieldName()` problems when handling
432 names with trailing spaces
433 (reported by matjazs@github)
Tatu Salorantadc2e72f2012-10-05 13:04:07 -0700434
Tatu Salorantaab0269c2012-10-20 13:19:10 -07004352.1.0 (08-Oct-2012)
436
437A new minor version for 2.x.
Tatu Saloranta1adc8982012-03-30 16:47:59 -0700438
Tatu Saloranta84101d72012-05-14 22:16:28 -0700439New features:
440
Tatu Salorantae6dfc692012-09-28 15:34:05 -0700441* [Issue#14]: add 'readBinaryValue(...)' method in JsonParser
442* [Issue#16]: add 'writeBinary(InputStream, int)' method in JsonGenerator
Tatu Salorantad80a2d02012-06-11 20:37:35 -0700443 (and implement for JSON backend)
Tatu Salorantae6dfc692012-09-28 15:34:05 -0700444* [Issue#26]: Allow overriding "root value separator"
445 (suggested by Henning S)
Tatu Salorantae53c3a92012-05-23 20:07:23 -0700446
Tatu Salorantadc2e72f2012-10-05 13:04:07 -0700447Improvements:
448
449* [JACKSON-837]: Made JsonGenerator implement Flushable.
450 (suggested by Matt G)
451* [Issue#10]: add 'JsonProcessingException.getOriginalMessage()' for accessing
452 message without location info
453* [Issue#31]: make `JsonFactory` java.io.Serializable (via JDK)
454
Tatu Salorantaeeb2fbd2012-05-28 22:00:08 -0700455Other:
456
Tatu Salorantafeaabd12012-07-22 23:03:41 -0700457* [Issue-25]: Add 'createParser' and 'createGenerator' (as eventual replacements
Tatu Salorantaeeb2fbd2012-05-28 22:00:08 -0700458 for 'createJsonParser'/'createJsonGenerator') in 'JsonFactory'
Tatu Saloranta9c9622d2012-07-24 18:37:03 -0700459* Try to improve locking aspects of symbol tables, by reducing scope of
460 synchronized sections when creating, merging table contents.
Tatu Saloranta378ecdc2012-08-04 16:27:27 -0700461* Added 'JsonFactory.copy()' method to support databinding's 'ObjectMapper.copy()'
Tatu Salorantaad2df5f2012-08-22 20:55:49 -0700462* Added method 'requiresCustomCodec()' for JsonFactory and JsonParser
Tatu Saloranta5ad18ff2012-09-22 16:00:57 -0700463* Added 'JsonParser.getValueAsString()' method (to support flexible conversions)
Tatu Saloranta1344de92012-10-05 21:13:21 -0700464* Added META-INF/services/com.fasterxml.jackson.core.JsonFactory SPI to register
465 `JsonFactory` for even more automatic format discovery in future.
Tatu Salorantaeeb2fbd2012-05-28 22:00:08 -0700466
Tatu Saloranta34098342012-07-15 11:02:23 -07004672.0.4 (26-Jun-2012)
468
469Fixes:
470
471* [Issue-6] PrettyPrinter, count wrong for end-object case
472* 1.9.x fixes up to 1.9.8
473
4742.0.3: skipped; only some modules use this version
475
Tatu Saloranta9a362442012-05-14 19:42:15 -07004762.0.2 (14-May-2012)
477
Tatu Saloranta34098342012-07-15 11:02:23 -0700478* 1.9.x fixes up to 1.9.7
Tatu Saloranta9a362442012-05-14 19:42:15 -0700479
Tatu Saloranta93402042012-04-30 18:41:17 -07004802.0.1 (22-Apr-2012)
481
482Fixes:
483
484* [JACKSON-827] Fix incompatibilities with JDK 1.5 (2.0.0 accidentally
485 required 1.6)
486 (reported Pascal G)
487
Tatu Saloranta1adc8982012-03-30 16:47:59 -07004882.0.0 (25-Mar-2012)
Tatu Saloranta1f6e1fb2012-01-17 22:29:27 -0800489
490Fixes:
491
Tatu Saloranta5e69eec2012-03-25 11:52:34 -0700492(all fixes up until 1.9.6)
493
Tatu Saloranta1f6e1fb2012-01-17 22:29:27 -0800494Improvements
495
Tatu Saloranta9fc55aa2012-01-18 17:26:28 -0800496* [JACKSON-730]: Add checks to ensure that Features are applicable for
497 instances (parsers, generators), or if not, throw IllegalArgumentException
Tatu Saloranta1f6e1fb2012-01-17 22:29:27 -0800498* [JACKSON-742]: Add append-methods in SerializableString
499
500New features:
501
Tatu Saloranta487fe102012-02-20 17:53:26 -0800502* [JACKSON-782]: Add 'JsonParser.overrideCurrentName()', needed as a workaround
503 for some exotic data binding cases (and/or formats)
504
Tatu Saloranta1f6e1fb2012-01-17 22:29:27 -0800505[entries for versions 1.x and earlier not retained; refer to earlier releases)