Tatu Saloranta | 637b73c | 2013-02-13 10:17:51 -0800 | [diff] [blame] | 1 | Project: jackson-core |
Tatu Saloranta | 1c9e145 | 2014-11-24 18:08:01 -0800 | [diff] [blame] | 2 | |
| 3 | Contains core streaming reader (`JsonParser`) and writer (`JsonGenerator`) abstractions, |
Tatu Saloranta | 3dcedd2 | 2015-01-10 20:15:06 -0800 | [diff] [blame] | 4 | factory for constructing readers/writers (JsonFactory), as well as a minimal set |
Tatu Saloranta | 1c9e145 | 2014-11-24 18:08:01 -0800 | [diff] [blame] | 5 | of interfaces needed for streaming level to make callbacks and call-throughs, |
| 6 | via `ObjectCodec` and `TreeNode`. |
| 7 | |
Tatu Saloranta | 3dcedd2 | 2015-01-10 20:15:06 -0800 | [diff] [blame] | 8 | Also includes implementation of this API for JSON. |
Tatu Saloranta | 1c9e145 | 2014-11-24 18:08:01 -0800 | [diff] [blame] | 9 | Forms the base for other data formats as well, despite naming that suggests |
Tatu Saloranta | 3dcedd2 | 2015-01-10 20:15:06 -0800 | [diff] [blame] | 10 | JSON-specificity: naming is due to history, as Jackson started out as pure |
| 11 | JSON library. |
Tatu Saloranta | 1c9e145 | 2014-11-24 18:08:01 -0800 | [diff] [blame] | 12 | |
| 13 | ------------------------------------------------------------------------ |
| 14 | === Releases === |
| 15 | ------------------------------------------------------------------------ |
| 16 | |
Tatu Saloranta | 1a5c365 | 2016-08-31 21:16:06 -0700 | [diff] [blame] | 17 | 2.9.0 (not yet released) |
| 18 | |
| 19 | #304: Optimize `NumberOutput.outputLong()` method |
| 20 | |
| 21 | 2.8.3 (not yet released) |
| 22 | |
Tatu Saloranta | fa64390 | 2016-09-01 15:32:46 -0700 | [diff] [blame^] | 23 | #318: Add support for writing `byte[]` via `JsonGenerator.writeEmbeddedObject()` |
| 24 | |
Tatu Saloranta | af873e3 | 2016-08-29 17:35:51 -0700 | [diff] [blame] | 25 | 2.8.2 (30-Aug-2016) |
Tatu Saloranta | 630997d | 2016-07-19 15:57:32 -0700 | [diff] [blame] | 26 | 2.8.1 (20-Jul-2016) |
Tatu Saloranta | 0e2dbc8 | 2016-07-18 22:15:28 -0700 | [diff] [blame] | 27 | |
| 28 | No changes since 2.8.0 |
| 29 | |
Tatu Saloranta | 397fc05 | 2016-07-03 22:17:57 -0700 | [diff] [blame] | 30 | 2.8.0 (04-Jul-2016) |
Tatu Saloranta | 4bace84 | 2016-03-21 21:35:39 -0700 | [diff] [blame] | 31 | |
Tatu Saloranta | 456ff3c | 2016-07-01 21:20:53 -0700 | [diff] [blame] | 32 | #86: Allow inclusion of request body for `JsonParseException` |
| 33 | (contributed by LokeshN) |
| 34 | #117: Add `JsonParser.Feature.ALLOW_MISSING_VALUES` to support for missing values |
Tatu Saloranta | 6e3999e | 2016-04-14 18:42:19 -0700 | [diff] [blame] | 35 | (contributed by LokeshN) |
Tatu Saloranta | fd5ca3b | 2016-05-28 20:17:14 -0700 | [diff] [blame] | 36 | #136: Add `JsonpCharacterEscapes` for easier handling of potential problems |
| 37 | with JSONP and rare but technically allowed \u2028 and \u2029 linefeed characters |
Tatu Saloranta | 4bace84 | 2016-03-21 21:35:39 -0700 | [diff] [blame] | 38 | #253: Add `JsonGenerator. writeEmbeddedObject()` to allow writes of opaque native types |
| 39 | (suggested by Gregoire C) |
| 40 | #255: Relax ownership checks for buffers not to require increase in size |
| 41 | #257: Add `writeStartObject(Object pojo)` to streamline assignment of current value |
Tatu Saloranta | c53f316 | 2016-03-29 17:35:15 -0700 | [diff] [blame] | 42 | #265: `JsonStringEncoder` should allow passing `CharSequence` |
| 43 | (contributed by Mikael S) |
Tatu Saloranta | 38b3ef1 | 2016-05-03 18:08:31 -0700 | [diff] [blame] | 44 | #276: Add support for serializing using `java.io.DataOutput` |
Tatu Saloranta | 5f17592 | 2016-05-22 22:46:42 -0700 | [diff] [blame] | 45 | #277: Add new scalar-array write methods for `int`/`long`/`double` cases |
Tatu Saloranta | cfb0866 | 2016-05-24 18:03:17 -0700 | [diff] [blame] | 46 | #279: Support `DataInput` for parsing |
Tatu Saloranta | bf9a490 | 2016-03-21 22:01:53 -0700 | [diff] [blame] | 47 | #280: Add `JsonParser.finishToken()` to force full, non-lazy reading of current token |
Tatu Saloranta | 98f8444 | 2016-05-26 18:00:14 -0700 | [diff] [blame] | 48 | #281: Add `JsonEOFException` as sub-class of `JsonParseException` |
Tatu Saloranta | e0b105f | 2016-05-12 20:13:14 -0700 | [diff] [blame] | 49 | #282: Fail to report error for trying to write field name outside Object (root level) |
Tatu Saloranta | b13bde6 | 2016-05-18 08:47:04 -0700 | [diff] [blame] | 50 | #285: Add `JsonParser.getText(Writer)` |
| 51 | (contributed by LokesN) |
Tatu Saloranta | e5ded10 | 2016-05-24 18:56:21 -0700 | [diff] [blame] | 52 | #290: Add `JsonGenerator.canWriteFormattedNumbers()` for introspection |
Tatu Saloranta | 792de08 | 2016-06-28 22:50:04 -0700 | [diff] [blame] | 53 | #294: Add `JsonGenerator.writeFieldId(long)` method to support binary formats |
| 54 | with non-String keys |
Tatu Saloranta | 0d8b14d | 2016-07-03 22:02:12 -0700 | [diff] [blame] | 55 | #296: `JsonParserSequence` skips a token on a switched Parser |
Tatu Saloranta | e052c31 | 2016-07-01 21:11:25 -0700 | [diff] [blame] | 56 | (reported by Kevin G) |
Tatu Saloranta | 93994e3 | 2016-05-14 18:21:47 -0700 | [diff] [blame] | 57 | - Add `JsonParser.currentToken()` and `JsonParser.currentTokenId()` as replacements |
| 58 | for `getCurrentToken()` and `getCurrentTokenId()`, respectively. Existing methods |
| 59 | will likely be deprecated in 2.9. |
Tatu Saloranta | 4bace84 | 2016-03-21 21:35:39 -0700 | [diff] [blame] | 60 | |
Tatu Saloranta | 345cad5 | 2016-08-31 21:09:22 -0700 | [diff] [blame] | 61 | 2.7.8 (not yet released) |
| 62 | |
| 63 | #317: ArrayIndexOutOfBoundsException: 200 on floating point number with exactly |
| 64 | 200-length decimal part |
| 65 | (reported by Allar H) |
| 66 | |
Tatu Saloranta | 930edea | 2016-08-26 14:50:58 -0700 | [diff] [blame] | 67 | 2.7.7 (27-Aug-2016) |
Tatu Saloranta | 554f8db | 2016-08-18 23:09:52 -0700 | [diff] [blame] | 68 | |
| 69 | #307: JsonGenerationException: Split surrogate on writeRaw() input thrown for |
| 70 | input of a certain size |
| 71 | (reported by Mike N) |
Tatu Saloranta | 9664297 | 2016-08-24 22:53:20 -0700 | [diff] [blame] | 72 | #315: `OutOfMemoryError` when writing BigDecimal |
| 73 | (reported by gmethwin@github) |
Tatu Saloranta | 554f8db | 2016-08-18 23:09:52 -0700 | [diff] [blame] | 74 | |
Tatu Saloranta | 5f1f295 | 2016-07-22 19:23:49 -0700 | [diff] [blame] | 75 | 2.7.6 (23-Jul-2016) |
Tatu Saloranta | e962fb9 | 2016-07-21 14:14:26 -0700 | [diff] [blame] | 76 | |
| 77 | - Clean up of FindBugs reported possible issues. |
| 78 | |
Tatu Saloranta | 0ea06aa | 2016-06-10 19:02:06 -0700 | [diff] [blame] | 79 | 2.7.5 (11-Jun-2016) |
Tatu Saloranta | 88db6b7 | 2016-05-06 10:06:59 -0700 | [diff] [blame] | 80 | |
Tatu Saloranta | 00a29c8 | 2016-05-06 10:03:36 -0700 | [diff] [blame] | 81 | #280: FilteringGeneratorDelegate.writeUTF8String() should delegate to writeUTF8String() |
| 82 | (reported by Tanguy L) |
| 83 | |
Tatu Saloranta | 3f368b4 | 2016-04-28 17:21:43 -0700 | [diff] [blame] | 84 | 2.7.4 (29-Apr-2016) |
Tatu Saloranta | 91965b2 | 2016-02-22 20:17:21 -0800 | [diff] [blame] | 85 | |
Tatu Saloranta | ecf088c | 2016-03-21 21:27:04 -0700 | [diff] [blame] | 86 | #209: Make use of `_allowMultipleMatches` in `FilteringParserDelegate` |
| 87 | (contributed by Lokesh N) |
Tatu Saloranta | e3292f5 | 2016-04-14 19:16:45 -0700 | [diff] [blame] | 88 | - Make `processor` transient in `JsonParseException`, `JsonGenerationException` |
| 89 | to keep both Serializable |
Tatu Saloranta | ecf088c | 2016-03-21 21:27:04 -0700 | [diff] [blame] | 90 | |
Tatu Saloranta | 9118d6b | 2016-03-15 18:14:51 -0700 | [diff] [blame] | 91 | 2.7.3 (16-Mar-2016) |
| 92 | |
| 93 | No changes since 2.7.2. |
| 94 | |
Tatu Saloranta | 6324546 | 2016-02-26 18:09:09 -0800 | [diff] [blame] | 95 | 2.7.2 (26-Feb-2016) |
Tatu Saloranta | d58d420 | 2016-02-22 20:11:12 -0800 | [diff] [blame] | 96 | |
| 97 | #246: Fix UTF8JsonGenerator to allow QUOTE_FIELD_NAMES to be toggled |
| 98 | (suggested by philipa@github) |
| 99 | |
Tatu Saloranta | 58088f4 | 2016-02-01 22:08:22 -0800 | [diff] [blame] | 100 | 2.7.1 (02-Feb-2016) |
| 101 | |
| 102 | No changes since 2.7.0. |
| 103 | |
Tatu Saloranta | 4d97ba9 | 2016-01-09 21:51:10 -0800 | [diff] [blame] | 104 | 2.7.0 (10-Jun-2016) |
Cowtowncoder | 9a9b52f | 2015-08-11 15:56:22 -0700 | [diff] [blame] | 105 | |
Tatu Saloranta | fede6c9 | 2015-11-25 21:02:31 -0800 | [diff] [blame] | 106 | #37: JsonParser.getTokenLocation() doesn't update after field names |
| 107 | (reported by Michael L) |
Tatu Saloranta | 77be53c | 2015-08-17 22:52:56 -0700 | [diff] [blame] | 108 | #198: Add back-references to `JsonParser` / `JsonGenerator` for low-level parsing issues |
| 109 | (via `JsonParseException`, `JsonGenerationException`) |
Cowtowncoder | 2246541 | 2015-08-18 12:25:05 -0700 | [diff] [blame] | 110 | #211: Typo of function name com.fasterxml.jackson.core.Version.isUknownVersion() |
| 111 | (reported by timray@github) |
Tatu Saloranta | 4195e6e | 2015-11-16 22:58:39 -0800 | [diff] [blame] | 112 | #229: Array element and field token spans include previous comma. |
Cowtowncoder | 8dc1284 | 2015-08-12 13:35:37 -0700 | [diff] [blame] | 113 | - Implemented `ReaderBasedJsonParser.nextFieldName(SerializableString)` |
| 114 | (to improved Afterburner performance over String/char[] sources) |
Cowtowncoder | 9a9b52f | 2015-08-11 15:56:22 -0700 | [diff] [blame] | 115 | |
Tatu Saloranta | f73c59d | 2016-04-04 18:13:54 -0700 | [diff] [blame] | 116 | 2.6.6 (05-Apr-2016) |
Tatu Saloranta | 1fb1e27 | 2016-01-25 20:00:10 -0800 | [diff] [blame] | 117 | |
| 118 | #248: VersionUtil.versionFor() unexpectedly return null instead of Version.unknownVersion() |
| 119 | (reported by sammyhk@github) |
| 120 | |
Ben Jefferies | b246ce8 | 2016-01-26 14:46:39 +0000 | [diff] [blame] | 121 | 2.6.5 (19-Jan-2016) |
Tatu Saloranta | af5f146 | 2015-12-07 18:25:30 -0800 | [diff] [blame] | 122 | 2.6.4 (07-Dec-2015) |
| 123 | |
| 124 | No changes since 2.6.3. |
| 125 | |
Cowtowncoder | 273ef30 | 2015-10-12 09:49:41 -0700 | [diff] [blame] | 126 | 2.6.3 (12-Oct-2015) |
Cowtowncoder | 186a639 | 2015-09-30 14:43:24 -0700 | [diff] [blame] | 127 | |
| 128 | #220: Problem with `JsonParser.nextFieldName(SerializableString)` for byte-backed parser |
| 129 | |
Tatu Saloranta | 9d0f0aa | 2015-09-14 19:43:20 -0700 | [diff] [blame] | 130 | 2.6.2 (14-Sep-2015) |
Cowtowncoder | cfeaed0 | 2015-09-08 15:49:09 -0700 | [diff] [blame] | 131 | |
| 132 | #213: Parser is sometimes wrong when using CANONICALIZE_FIELD_NAMES |
| 133 | (reported by ichernev@github) |
Cowtowncoder | be43867 | 2015-09-09 10:59:56 -0700 | [diff] [blame] | 134 | #216: ArrayIndexOutOfBoundsException: 128 when repeatedly serializing to a byte array |
| 135 | (reported by geekbeast@github) |
Cowtowncoder | cfeaed0 | 2015-09-08 15:49:09 -0700 | [diff] [blame] | 136 | |
Tatu Saloranta | 7fd2916 | 2015-08-09 22:22:14 -0700 | [diff] [blame] | 137 | 2.6.1 (09-Aug-2015) |
Cowtowncoder | c2823b4 | 2015-07-31 19:43:48 -0700 | [diff] [blame] | 138 | |
| 139 | #207: `ArrayIndexOutOfBoundsException` in `ByteQuadsCanonicalizer` |
| 140 | (reported by Florian S, fschopp@github) |
| 141 | |
Cowtowncoder | 80b8319 | 2015-07-16 17:12:09 -0700 | [diff] [blame] | 142 | 2.6.0 (17-Jul-2015) |
Cowtowncoder | 5cddffa | 2015-01-15 16:10:26 -0800 | [diff] [blame] | 143 | |
Tatu Saloranta | 66e604f | 2015-05-25 20:02:40 -0700 | [diff] [blame] | 144 | #137: Allow filtering content read via `JsonParser` by specifying `JsonPointer`; |
| 145 | uses new class `com.fasterxml.jackson.core.filter.FilteringParserDelegate` |
| 146 | (and related, `TokenFilter`) |
Cowtowncoder | 5cddffa | 2015-01-15 16:10:26 -0800 | [diff] [blame] | 147 | #177: Add a check so `JsonGenerator.writeString()` won't work if `writeFieldName()` expected. |
Cowtowncoder | 7f5065a | 2015-02-23 15:51:38 -0800 | [diff] [blame] | 148 | #182: Inconsistent TextBuffer#getTextBuffer behavior |
| 149 | (contributed by Masaru H) |
Tatu Saloranta | b895aaf | 2015-04-23 22:15:48 -0700 | [diff] [blame] | 150 | #185: Allow filtering content written via `JsonGenerator` by specifying `JsonPointer`; |
| 151 | uses new class `com.fasterxml.jackson.core.filter.FilteringGeneratorDelegate` |
| 152 | (and related, `TokenFilter`) |
Cowtowncoder | 698f3a7 | 2015-03-30 17:26:08 -0700 | [diff] [blame] | 153 | #188: `JsonParser.getValueAsString()` should return field name for `JsonToken.FIELD_NAME`, not `null` |
Tatu Saloranta | 8891c0c | 2015-04-23 22:47:05 -0700 | [diff] [blame] | 154 | #189: Add `JsonFactory.Feature.USE_THREAD_LOCAL_FOR_BUFFER_RECYCLING` (default: true), which may |
| 155 | be disabled to prevent use of ThreadLocal-based buffer recyling. |
| 156 | (suggested by soldierkam@github) |
Cowtowncoder | ff2a73a | 2015-05-27 10:01:22 -0700 | [diff] [blame] | 157 | #195: Add `JsonGenerator.getOutputBuffered()` to find out amount of content buffered, |
| 158 | not yet flushed. |
| 159 | (requested by Ruediger M) |
Cowtowncoder | 97345f7 | 2015-06-09 11:33:42 -0700 | [diff] [blame] | 160 | #196: Add support for `FormatFeature` extension, for format-specifc Enum-backed |
| 161 | parser/generator options |
Cowtowncoder | efc4295 | 2015-02-05 10:18:04 -0800 | [diff] [blame] | 162 | - Minor improvement to construction of "default PrettyPrinter": now overridable by data format |
| 163 | modules |
Tatu Saloranta | 2967c23 | 2015-02-05 20:46:53 -0800 | [diff] [blame] | 164 | - Implement a new yet more optimized symbol table for byte-backed parsers |
Cowtowncoder | 4eeba79 | 2015-02-13 16:17:17 -0800 | [diff] [blame] | 165 | - Add `JsonParser.Feature.IGNORE_UNDEFINED`, useful for data formats like protobuf |
Tatu Saloranta | ad3a43e | 2015-03-30 19:29:05 -0700 | [diff] [blame] | 166 | - Optimize writing of String names (remove intermediate copy; with JDK7 no speed benefit) |
Cowtowncoder | 5cddffa | 2015-01-15 16:10:26 -0800 | [diff] [blame] | 167 | |
Tatu Saloranta | 29c9807 | 2015-12-07 18:35:55 -0800 | [diff] [blame] | 168 | 2.5.5 (07-Dec-2015) |
Tatu Saloranta | 98df182 | 2015-10-01 08:08:41 -0700 | [diff] [blame] | 169 | |
| 170 | #220: Problem with `JsonParser.nextFieldName(SerializableString)` for byte-backed parser |
Cowtowncoder | 5f04c20 | 2015-10-06 14:25:20 -0700 | [diff] [blame] | 171 | #221: Fixed ArrayIndexOutOfBounds exception for character-based `JsonGenerator` |
| 172 | (reported by a-lerion@github) |
Tatu Saloranta | 98df182 | 2015-10-01 08:08:41 -0700 | [diff] [blame] | 173 | |
Tatu Saloranta | 7cac58b | 2015-06-09 18:24:02 -0700 | [diff] [blame] | 174 | 2.5.4 (09-Jun-2015) |
| 175 | |
| 176 | No changes. |
| 177 | |
Cowtowncoder | cec0479 | 2015-04-24 10:08:26 -0700 | [diff] [blame] | 178 | 2.5.3 (24-Apr-2015) |
Tatu Saloranta | 6a63752 | 2015-04-22 21:33:47 -0700 | [diff] [blame] | 179 | |
| 180 | #191: Longest collision chain in symbol table now exceeds maximum -- suspect a DoS attack |
| 181 | (reported by Paul D) |
| 182 | |
Tatu Saloranta | 8f64a15 | 2015-03-29 16:46:40 -0700 | [diff] [blame] | 183 | 2.5.2 (29-Mar-2015) |
Cowtowncoder | 29a364a | 2015-02-16 13:55:24 -0800 | [diff] [blame] | 184 | |
| 185 | #181: Failure parsing -Infinity on buffer boundary |
| 186 | (reported by brharrington@github) |
Tatu Saloranta | e0a0227 | 2015-03-26 21:05:39 -0700 | [diff] [blame] | 187 | #187: Longest collision chain in symbol table exceeds maximum length routinely |
| 188 | in non-malicious code |
| 189 | (reported by mazzaferri@github) |
Cowtowncoder | 29a364a | 2015-02-16 13:55:24 -0800 | [diff] [blame] | 190 | |
Tatu Saloranta | 725b797 | 2015-02-06 16:03:50 -0800 | [diff] [blame] | 191 | 2.5.1 (06-Feb-2015) |
Tatu Saloranta | 3dcedd2 | 2015-01-10 20:15:06 -0800 | [diff] [blame] | 192 | |
| 193 | #178: Add `Lf2SpacesIndenter.withLinefeed` back to keep binary-compatibility with 2.4.x |
| 194 | (reported by ansell@github) |
Tatu Saloranta | 9bdda3f | 2015-02-02 21:35:52 -0800 | [diff] [blame] | 195 | - Minor fix to alignment of null bytes in the last 4 bytes of name, in case where name |
| 196 | may cross the input boundary |
Tatu Saloranta | 3dcedd2 | 2015-01-10 20:15:06 -0800 | [diff] [blame] | 197 | |
Tatu Saloranta | 41ee304 | 2015-01-01 15:34:50 -0800 | [diff] [blame] | 198 | 2.5.0 (01-Jan-2015) |
Tatu Saloranta | ca94baf | 2014-08-07 20:44:41 -0700 | [diff] [blame] | 199 | |
Tatu | e997287 | 2014-08-13 13:00:57 -0700 | [diff] [blame] | 200 | #148: BytesToNameCanonicalizer can mishandle leading null byte(s). |
| 201 | (reported by rjmac@github) |
Cowtowncoder | 27eb3c1 | 2014-11-07 15:16:45 -0800 | [diff] [blame] | 202 | #164: Add `JsonGenerator.Feature.IGNORE_UNKNOWN` (but support via individual |
| 203 | data format modules) |
Tatu Saloranta | 55cfa31 | 2014-11-28 20:54:50 -0800 | [diff] [blame] | 204 | #166: Allow to configure line endings and indentation |
| 205 | (contributed by Aaron D) |
Cowtowncoder | 7b1d411 | 2014-11-24 11:41:16 -0800 | [diff] [blame] | 206 | #167: `JsonGenerator` not catching problem of writing field name twice in a row |
Tatu Saloranta | 44f42e8 | 2014-11-26 20:38:27 -0800 | [diff] [blame] | 207 | #168: Add methods in `JsonStreamContext` for keeping track of "current value" |
Cowtowncoder | d2c6023 | 2014-12-09 14:39:17 -0800 | [diff] [blame] | 208 | #169: Add `JsonPointer.head()` |
Cowtowncoder | fa0b523 | 2014-12-05 14:01:27 -0800 | [diff] [blame] | 209 | (contributed by Alex S, lordofthejars@github) |
Cowtowncoder | f408795 | 2014-09-29 14:23:37 -0700 | [diff] [blame] | 210 | - Added `ResolvedType.getParameterSource()` to support better resolution |
| 211 | of generic types. |
Cowtowncoder | 7df7c57 | 2014-11-07 17:06:29 -0800 | [diff] [blame] | 212 | - Added `JsonGenerator.writeRawValue(SerializableString)` |
Tatu Saloranta | 39170c0 | 2014-12-12 20:17:13 -0800 | [diff] [blame] | 213 | - Added `JsonParser.hasExpectedStartObjectToken()` convenience method |
Tatu Saloranta | aae5397 | 2014-12-09 20:05:04 -0800 | [diff] [blame] | 214 | - Added `JsonParser.hasTokenId(id)` convenience method |
Cowtowncoder | 2ec3403 | 2014-12-11 10:50:57 -0800 | [diff] [blame] | 215 | - Added `JsonParser.nextFieldName()` (no args) |
Tatu | e997287 | 2014-08-13 13:00:57 -0700 | [diff] [blame] | 216 | |
Cowtowncoder | 44dc429 | 2015-09-11 10:05:02 -0700 | [diff] [blame] | 217 | 2.4.6 (23-Apr-2015) |
Cowtowncoder | fca10e3 | 2015-02-19 16:39:04 -0800 | [diff] [blame] | 218 | |
| 219 | #184: WRITE_NUMBERS_AS_STRINGS disables WRITE_BIGDECIMAL_AS_PLAIN |
| 220 | (reported by Derek C) |
| 221 | |
Tatu Saloranta | 36c91eb | 2015-01-13 20:20:08 -0800 | [diff] [blame] | 222 | 2.4.5 (13-Jan-2015) |
| 223 | |
| 224 | No changes since 2.4.4. |
| 225 | |
Tatu Saloranta | 1c9e145 | 2014-11-24 18:08:01 -0800 | [diff] [blame] | 226 | 2.4.4 (24-Nov-2014) |
Tatu Saloranta | d533f29 | 2014-09-24 20:14:39 -0700 | [diff] [blame] | 227 | |
Cowtowncoder | 290799a | 2014-10-08 16:06:40 -0700 | [diff] [blame] | 228 | #157: ArrayIndexOutOfBoundsException: 200 on numbers with more than 200 digits. |
| 229 | (reported by Lars P, larsp@github) |
Tatu Saloranta | 0d9cd9f | 2014-12-07 10:16:55 -0800 | [diff] [blame] | 230 | #173: An exception is thrown for a valid JsonPointer expression |
| 231 | (reported by Alex S) |
Cowtowncoder | d999514 | 2014-12-30 17:09:51 -0800 | [diff] [blame] | 232 | #176: `JsonPointer` should not consider "00" to be valid index |
| 233 | (reported by fge@gitub) |
Tatu Saloranta | ffd16b7 | 2014-11-09 12:48:32 -0800 | [diff] [blame] | 234 | - Fix `JsonGenerator.setFeatureMask()` to better handle dynamic changes. |
Tatu Saloranta | d533f29 | 2014-09-24 20:14:39 -0700 | [diff] [blame] | 235 | |
Cowtowncoder | d860a8c | 2014-10-09 11:35:33 -0700 | [diff] [blame] | 236 | 2.4.3 (02-Oct-2014) |
Tatu | 544904d | 2014-08-13 12:31:11 -0700 | [diff] [blame] | 237 | |
Cowtowncoder | d860a8c | 2014-10-09 11:35:33 -0700 | [diff] [blame] | 238 | #152: Exception for property names longer than 256k |
| 239 | (reported by CrendKing@github) |
Tatu | 544904d | 2014-08-13 12:31:11 -0700 | [diff] [blame] | 240 | |
Tatu Saloranta | d533f29 | 2014-09-24 20:14:39 -0700 | [diff] [blame] | 241 | 2.4.2 (13-Aug-2014) |
Tatu | 4ceaba8 | 2014-06-06 13:44:41 -0700 | [diff] [blame] | 242 | |
Tatu Saloranta | 5027dc5 | 2014-07-08 20:27:00 -0700 | [diff] [blame] | 243 | #145: NPE at BytesToNameCanonicalizer |
| 244 | (reported by Shay B) |
Tatu Saloranta | 1f6e1fb | 2012-01-17 22:29:27 -0800 | [diff] [blame] | 245 | #146: Error while parsing negative floats at the end of the input buffer |
| 246 | (reported by rjmac@github) |
Tatu | 4ceaba8 | 2014-06-06 13:44:41 -0700 | [diff] [blame] | 247 | |
Tatu Saloranta | 5027dc5 | 2014-07-08 20:27:00 -0700 | [diff] [blame] | 248 | 2.4.1 (16-Jun-2014) |
| 249 | |
| 250 | #143: Flaw in `BufferRecycler.allocByteBuffer(int,int)` that results in |
| 251 | performance regression |
| 252 | |
| 253 | 2.4.0 (29-May-2014) |
Tatu Saloranta | 1f6e1fb | 2012-01-17 22:29:27 -0800 | [diff] [blame] | 254 | |
Tatu Saloranta | 175a97b | 2014-01-09 21:49:24 -0800 | [diff] [blame] | 255 | #121: Increase size of low-level byte[]/char[] input/output buffers |
| 256 | (from 4k->8k for bytes, 2k->4k for chars) |
Tatu Saloranta | 1d07601 | 2014-03-24 18:29:33 -0700 | [diff] [blame] | 257 | #127: Add `JsonGenerator.writeStartArray(int size)` for binary formats |
Tatu | 64aa9d2 | 2014-04-18 14:07:38 -0700 | [diff] [blame] | 258 | #138: Add support for using `char[]` as input source; optimize handling |
| 259 | of `String` input as well. |
Tatu Saloranta | f633f10 | 2013-12-13 21:15:24 -0800 | [diff] [blame] | 260 | - Refactor `BufferRecycler` to eliminate helper enums |
Tatu Saloranta | 6f91dcf | 2013-12-01 13:16:45 -0800 | [diff] [blame] | 261 | |
Cowtowncoder | 44dc429 | 2015-09-11 10:05:02 -0700 | [diff] [blame] | 262 | 2.3.5 (13-Jan-2015) |
| 263 | |
| 264 | #152: Exception for property names longer than 256k |
| 265 | #173: An exception is thrown for a valid JsonPointer expression |
| 266 | #176: `JsonPointer` should not consider "00" to be valid index |
| 267 | |
| 268 | 2.3.4 (17-Jul-2014) |
Tatu Saloranta | 9e2d737 | 2014-05-07 08:23:32 -0700 | [diff] [blame] | 269 | 2.3.3 (10-Apr-2014) |
| 270 | |
| 271 | No changes since 2.3.2. |
| 272 | |
| 273 | 2.3.2 (01-Mar-2014) |
Tatu Saloranta | a50f62c | 2014-03-06 20:24:04 -0800 | [diff] [blame] | 274 | |
| 275 | #126: Revert some 1.6 back to make core lib work with Android 2.2 (FroYo) |
| 276 | (contributed by Goncalo S) |
| 277 | #129: Missing delegation method, `JsonParserDelegate.isExpectedStartArrayToken()` |
| 278 | (Pascal G) |
Tatu Saloranta | 9e2d737 | 2014-05-07 08:23:32 -0700 | [diff] [blame] | 279 | #133: Prevent error on JsonPointer expressions for properties that have numeric |
| 280 | ids above 32-bit range |
| 281 | (reported by mrstlee@github) |
Tatu Saloranta | a50f62c | 2014-03-06 20:24:04 -0800 | [diff] [blame] | 282 | |
Tatu | 141c08b | 2014-02-28 14:04:39 -0800 | [diff] [blame] | 283 | 2.3.1 (28-Dec-2013) |
| 284 | |
| 285 | No functional changes. |
| 286 | |
Tatu Saloranta | f633f10 | 2013-12-13 21:15:24 -0800 | [diff] [blame] | 287 | 2.3.0 (13-Nov-2013) |
| 288 | |
Tatu Saloranta | f959361 | 2013-08-07 19:24:25 -0700 | [diff] [blame] | 289 | #8: Add methods in `JsonParser`/`JsonGenerator` for reading/writing Object Ids |
Tatu Saloranta | 098ece8 | 2013-09-19 12:12:22 -0700 | [diff] [blame] | 290 | #47: Support YAML-style comments with `JsonParser.Feature.ALLOW_YAML_COMMENTS` |
Tatu Saloranta | 880ba76 | 2013-09-24 21:32:15 -0700 | [diff] [blame] | 291 | #60: Add a feature (`JsonParser.Feature.STRICT_DUPLICATE_DETECTION`) to verify |
| 292 | that input does not contain duplicate filed names |
Tatu Saloranta | ad28e35 | 2013-07-04 16:40:18 -0700 | [diff] [blame] | 293 | #77: Improve error reporting for unrecognized tokens |
| 294 | (requested by cowwoc@github) |
Tatu Saloranta | 0dba714 | 2013-07-04 21:17:31 -0700 | [diff] [blame] | 295 | #85: Add `JsonGenerator.Feature.WRITE_BIGDECIMAL_AS_PLAIN` |
Tatu Saloranta | 08f918c | 2013-07-27 19:26:51 -0700 | [diff] [blame] | 296 | #91: Add methods in `JsonGenerator` for writing native Type Ids |
Tatu Saloranta | 567257f | 2013-08-02 22:20:17 -0700 | [diff] [blame] | 297 | #92: Add methods in `JsonParser` for reading native Type Ids |
Tatu Saloranta | caefc68 | 2013-08-07 19:20:50 -0700 | [diff] [blame] | 298 | #93: Add `getFeatureMask()`, `setFeatureMask()` in `JsonGenerator`/`JsonParser` |
Tatu Saloranta | 98c86a9 | 2013-08-10 19:25:43 -0700 | [diff] [blame] | 299 | #94: Allow coercion of String value "null" (similar to handling of null token) |
Tatu Saloranta | 1734a3a | 2013-08-28 19:06:20 -0700 | [diff] [blame] | 300 | #96: Add `JsonFactory.requiresPropertyOrdering()` introspection method |
Tatu Saloranta | 7dc9de6 | 2013-08-30 19:01:20 -0700 | [diff] [blame] | 301 | #97: JsonGenerator's `JsonWriteContext` not maintained properly, loses |
| 302 | current field name |
| 303 | (reported by Sam R) |
Tatu Saloranta | b40ac81 | 2013-08-28 21:04:32 -0700 | [diff] [blame] | 304 | #98: Improve handling of failures for `BigDecimal`, for "NaN" (and infinity) |
Tatu Saloranta | eaa2b0c | 2013-09-21 11:39:53 -0700 | [diff] [blame] | 305 | #102: Unquoted field names can not start with a digit |
Tatu Saloranta | b883544 | 2013-09-14 12:12:57 -0700 | [diff] [blame] | 306 | #103: Add `JsonFactory.canHandleBinaryNatively`, `JsonGenerator.canWriteBinaryNatively` |
| 307 | to let databind module detect level of support for binary data. |
Tatu Saloranta | 38d6e35 | 2013-09-21 11:26:42 -0700 | [diff] [blame] | 308 | #105: Parser parsers numbers eagerly; does not report error with missing space |
Tatu Saloranta | f9ad80f | 2013-09-24 21:31:16 -0700 | [diff] [blame] | 309 | #106: Add `JsonGenerator.Feature.STRICT_DUPLICATE_DETECTION` for preventing dup names |
Tatu Saloranta | 0e10fd5 | 2013-11-02 21:12:49 -0700 | [diff] [blame] | 310 | #110: Improve overridability of `JsonGeneratorDelegate` |
| 311 | (suggested by qpliu@github) |
Tatu Saloranta | 911cca0 | 2013-10-08 10:03:44 -0700 | [diff] [blame] | 312 | #111: _currInputRowStart isn't initialized in UTF8StreamJsonParser() constructor |
| 313 | (reported by dreamershl@github) |
Tatu Saloranta | 5e14c46 | 2013-11-08 19:30:54 -0800 | [diff] [blame] | 314 | #115: JsonGenerator writeRawValue problem with surrogate UTF-8 characters |
| 315 | (reported by Marcin Z) |
Tatu Saloranta | bc54062 | 2013-11-11 16:08:15 -0800 | [diff] [blame] | 316 | #116: WriterBasedJsonGenerator produces truncated Unicode escape sequences |
| 317 | (reported by Steve L-S) |
Tatu Saloranta | 45cc26c | 2013-08-07 23:24:04 -0700 | [diff] [blame] | 318 | - Improve `DefaultPrettyPrinter`, `Lf2SpacesIndenter` (from databind #276) |
Tatu Saloranta | 98cb9a7 | 2013-08-10 15:05:33 -0700 | [diff] [blame] | 319 | - Add `JsonGenerator.canOmitFields()` method to support discovery of |
| 320 | positional formats, needed for handling of filtering for CSV |
Tatu Saloranta | 8475c8b | 2013-09-18 16:21:22 -0700 | [diff] [blame] | 321 | - Rewrite `InternCache` to use `ConcurrentHashMap`, to work more efficiently both |
| 322 | for common case of few misses (no block on access), and slowest cases (lots of |
| 323 | misses). |
Tatu | 879b7cd | 2013-09-24 11:51:37 -0700 | [diff] [blame] | 324 | - Add `JsonPointer` implementation, to be used by tree model, streaming |
Tatu Saloranta | 7ee3878 | 2013-10-03 10:51:06 -0700 | [diff] [blame] | 325 | - Make `UTF8StreamJsonParser` non-final, for potential sub-classing |
Tatu Saloranta | ad28e35 | 2013-07-04 16:40:18 -0700 | [diff] [blame] | 326 | |
Tatu Saloranta | 3da5c04 | 2013-10-08 10:08:24 -0700 | [diff] [blame] | 327 | 2.2.3 (23-Aug-2013) |
| 328 | |
| 329 | #78: ArrayIndexOutOfBoundsException for very long numbers (>500 digits) |
| 330 | (reported by boothen@github) |
| 331 | #81: CharTypes.appendQuoted misencodes first 32 Unicode values as '\0000' |
| 332 | (reported by githubaff0@github) |
| 333 | #84: Support for parsing 'Infinity' when feature ALLOW_NON_NUMERIC_NUMBERS is on |
| 334 | (contributed by ebrevdo@github) |
| 335 | - Add `Base64Variant.decode()` convenience methods |
| 336 | |
Tatu Saloranta | 0ec6bac | 2013-06-06 13:26:26 -0700 | [diff] [blame] | 337 | 2.2.2 (26-May-2013) |
| 338 | |
| 339 | No changes since previous version. |
| 340 | |
Tatu Saloranta | d940b45 | 2013-05-26 22:16:00 -0700 | [diff] [blame] | 341 | 2.2.1 (03-May-2013) |
Tatu Saloranta | 7a9d1d3 | 2013-04-26 16:42:40 -0700 | [diff] [blame] | 342 | |
Tatu Saloranta | 7b796a8 | 2013-04-27 10:18:30 -0700 | [diff] [blame] | 343 | #72: JsonFactory.copy() was not copying settings properly |
| 344 | (reported by Christian S (squiddle@github)) |
Tatu Saloranta | 7a9d1d3 | 2013-04-26 16:42:40 -0700 | [diff] [blame] | 345 | - Moved VERSION/LICENSE contained in jars under META-INF/, to resolve |
| 346 | Android packaging (APK) issues |
| 347 | |
Tatu Saloranta | 7a9d1d3 | 2013-04-26 16:42:40 -0700 | [diff] [blame] | 348 | 2.2.0 (22-Apr-2013) |
Tatu Saloranta | 306524f | 2012-11-12 14:33:10 -0800 | [diff] [blame] | 349 | |
| 350 | Fixes: |
| 351 | |
Tatu Saloranta | 5b7bbe1 | 2013-04-16 19:08:21 -0700 | [diff] [blame] | 352 | #51: JsonLocation had non-serializable field, mark as transient |
Tatu Saloranta | 61d5bdd | 2013-01-11 19:02:01 -0800 | [diff] [blame] | 353 | |
Tatu Saloranta | 4546613 | 2013-01-11 10:20:48 -0800 | [diff] [blame] | 354 | Improvements |
| 355 | |
Tatu Saloranta | 5b7bbe1 | 2013-04-16 19:08:21 -0700 | [diff] [blame] | 356 | #46, #49: Improve VersionUtil to generate PackageVersion, instead of |
Tatu Saloranta | 4546613 | 2013-01-11 10:20:48 -0800 | [diff] [blame] | 357 | reading VERSION.txt from jar -- improves startup perf on Android significantly |
| 358 | (contributed by Ben G) |
Tatu Saloranta | 5b7bbe1 | 2013-04-16 19:08:21 -0700 | [diff] [blame] | 359 | #59: Add more functionality in `TreeNode` interface, to allow some |
Tatu Saloranta | 1252598 | 2013-02-12 22:56:57 -0800 | [diff] [blame] | 360 | level of traversal over any and all Tree Model implementations |
Tatu Saloranta | 5b7bbe1 | 2013-04-16 19:08:21 -0700 | [diff] [blame] | 361 | #69: Add support for writing `short` values in JsonGenerator |
Tatu Saloranta | 4546613 | 2013-01-11 10:20:48 -0800 | [diff] [blame] | 362 | |
Tatu Saloranta | c3ef9f3 | 2013-02-04 20:35:22 -0800 | [diff] [blame] | 363 | 2.1.3 (19-Jan-2013) |
Tatu Saloranta | 1e1bfb6 | 2012-11-15 17:39:03 -0800 | [diff] [blame] | 364 | |
Tatu Saloranta | c3ef9f3 | 2013-02-04 20:35:22 -0800 | [diff] [blame] | 365 | * [JACKSON-884]: JsonStringEncoder.quoteAsStringValue() fails to encode |
| 366 | ctrl chars correctly. |
| 367 | * [Issue#48] Problems with spaces in URLs |
| 368 | (reported by KlausBrunner) |
| 369 | |
| 370 | 2.1.2 (04-Dec-2012) |
| 371 | |
| 372 | * [Issue#42] Problems with UTF32Reader |
| 373 | (reported by James R [jroper@github]) |
| 374 | * Added missing methods (like 'setPrettyPrinter()' in JsonGeneratorDelegate |
| 375 | |
| 376 | 2.1.1 (11-Nov-2012) |
Tatu Saloranta | dc2e72f | 2012-10-05 13:04:07 -0700 | [diff] [blame] | 377 | |
Tatu Saloranta | ab0269c | 2012-10-20 13:19:10 -0700 | [diff] [blame] | 378 | * [Issue#34] `JsonParser.nextFieldName()` fails on buffer boundary |
| 379 | (reported by gsson@github) |
Tatu Saloranta | 9c38644 | 2012-11-08 14:40:26 -0800 | [diff] [blame] | 380 | * [Issue#38] `JsonParser.nextFieldName()` problems when handling |
| 381 | names with trailing spaces |
| 382 | (reported by matjazs@github) |
Tatu Saloranta | dc2e72f | 2012-10-05 13:04:07 -0700 | [diff] [blame] | 383 | |
Tatu Saloranta | ab0269c | 2012-10-20 13:19:10 -0700 | [diff] [blame] | 384 | 2.1.0 (08-Oct-2012) |
| 385 | |
| 386 | A new minor version for 2.x. |
Tatu Saloranta | 1adc898 | 2012-03-30 16:47:59 -0700 | [diff] [blame] | 387 | |
Tatu Saloranta | 84101d7 | 2012-05-14 22:16:28 -0700 | [diff] [blame] | 388 | New features: |
| 389 | |
Tatu Saloranta | e6dfc69 | 2012-09-28 15:34:05 -0700 | [diff] [blame] | 390 | * [Issue#14]: add 'readBinaryValue(...)' method in JsonParser |
| 391 | * [Issue#16]: add 'writeBinary(InputStream, int)' method in JsonGenerator |
Tatu Saloranta | d80a2d0 | 2012-06-11 20:37:35 -0700 | [diff] [blame] | 392 | (and implement for JSON backend) |
Tatu Saloranta | e6dfc69 | 2012-09-28 15:34:05 -0700 | [diff] [blame] | 393 | * [Issue#26]: Allow overriding "root value separator" |
| 394 | (suggested by Henning S) |
Tatu Saloranta | e53c3a9 | 2012-05-23 20:07:23 -0700 | [diff] [blame] | 395 | |
Tatu Saloranta | dc2e72f | 2012-10-05 13:04:07 -0700 | [diff] [blame] | 396 | Improvements: |
| 397 | |
| 398 | * [JACKSON-837]: Made JsonGenerator implement Flushable. |
| 399 | (suggested by Matt G) |
| 400 | * [Issue#10]: add 'JsonProcessingException.getOriginalMessage()' for accessing |
| 401 | message without location info |
| 402 | * [Issue#31]: make `JsonFactory` java.io.Serializable (via JDK) |
| 403 | |
Tatu Saloranta | eeb2fbd | 2012-05-28 22:00:08 -0700 | [diff] [blame] | 404 | Other: |
| 405 | |
Tatu Saloranta | feaabd1 | 2012-07-22 23:03:41 -0700 | [diff] [blame] | 406 | * [Issue-25]: Add 'createParser' and 'createGenerator' (as eventual replacements |
Tatu Saloranta | eeb2fbd | 2012-05-28 22:00:08 -0700 | [diff] [blame] | 407 | for 'createJsonParser'/'createJsonGenerator') in 'JsonFactory' |
Tatu Saloranta | 9c9622d | 2012-07-24 18:37:03 -0700 | [diff] [blame] | 408 | * Try to improve locking aspects of symbol tables, by reducing scope of |
| 409 | synchronized sections when creating, merging table contents. |
Tatu Saloranta | 378ecdc | 2012-08-04 16:27:27 -0700 | [diff] [blame] | 410 | * Added 'JsonFactory.copy()' method to support databinding's 'ObjectMapper.copy()' |
Tatu Saloranta | ad2df5f | 2012-08-22 20:55:49 -0700 | [diff] [blame] | 411 | * Added method 'requiresCustomCodec()' for JsonFactory and JsonParser |
Tatu Saloranta | 5ad18ff | 2012-09-22 16:00:57 -0700 | [diff] [blame] | 412 | * Added 'JsonParser.getValueAsString()' method (to support flexible conversions) |
Tatu Saloranta | 1344de9 | 2012-10-05 21:13:21 -0700 | [diff] [blame] | 413 | * Added META-INF/services/com.fasterxml.jackson.core.JsonFactory SPI to register |
| 414 | `JsonFactory` for even more automatic format discovery in future. |
Tatu Saloranta | eeb2fbd | 2012-05-28 22:00:08 -0700 | [diff] [blame] | 415 | |
Tatu Saloranta | 3409834 | 2012-07-15 11:02:23 -0700 | [diff] [blame] | 416 | 2.0.4 (26-Jun-2012) |
| 417 | |
| 418 | Fixes: |
| 419 | |
| 420 | * [Issue-6] PrettyPrinter, count wrong for end-object case |
| 421 | * 1.9.x fixes up to 1.9.8 |
| 422 | |
| 423 | 2.0.3: skipped; only some modules use this version |
| 424 | |
Tatu Saloranta | 9a36244 | 2012-05-14 19:42:15 -0700 | [diff] [blame] | 425 | 2.0.2 (14-May-2012) |
| 426 | |
Tatu Saloranta | 3409834 | 2012-07-15 11:02:23 -0700 | [diff] [blame] | 427 | * 1.9.x fixes up to 1.9.7 |
Tatu Saloranta | 9a36244 | 2012-05-14 19:42:15 -0700 | [diff] [blame] | 428 | |
Tatu Saloranta | 9340204 | 2012-04-30 18:41:17 -0700 | [diff] [blame] | 429 | 2.0.1 (22-Apr-2012) |
| 430 | |
| 431 | Fixes: |
| 432 | |
| 433 | * [JACKSON-827] Fix incompatibilities with JDK 1.5 (2.0.0 accidentally |
| 434 | required 1.6) |
| 435 | (reported Pascal G) |
| 436 | |
Tatu Saloranta | 1adc898 | 2012-03-30 16:47:59 -0700 | [diff] [blame] | 437 | 2.0.0 (25-Mar-2012) |
Tatu Saloranta | 1f6e1fb | 2012-01-17 22:29:27 -0800 | [diff] [blame] | 438 | |
| 439 | Fixes: |
| 440 | |
Tatu Saloranta | 5e69eec | 2012-03-25 11:52:34 -0700 | [diff] [blame] | 441 | (all fixes up until 1.9.6) |
| 442 | |
Tatu Saloranta | 1f6e1fb | 2012-01-17 22:29:27 -0800 | [diff] [blame] | 443 | Improvements |
| 444 | |
Tatu Saloranta | 9fc55aa | 2012-01-18 17:26:28 -0800 | [diff] [blame] | 445 | * [JACKSON-730]: Add checks to ensure that Features are applicable for |
| 446 | instances (parsers, generators), or if not, throw IllegalArgumentException |
Tatu Saloranta | 1f6e1fb | 2012-01-17 22:29:27 -0800 | [diff] [blame] | 447 | * [JACKSON-742]: Add append-methods in SerializableString |
| 448 | |
| 449 | New features: |
| 450 | |
Tatu Saloranta | 487fe10 | 2012-02-20 17:53:26 -0800 | [diff] [blame] | 451 | * [JACKSON-782]: Add 'JsonParser.overrideCurrentName()', needed as a workaround |
| 452 | for some exotic data binding cases (and/or formats) |
| 453 | |
Tatu Saloranta | 1f6e1fb | 2012-01-17 22:29:27 -0800 | [diff] [blame] | 454 | [entries for versions 1.x and earlier not retained; refer to earlier releases) |