...
diff --git a/release-notes/CREDITS b/release-notes/CREDITS index 855e030..a595d7a 100644 --- a/release-notes/CREDITS +++ b/release-notes/CREDITS
@@ -780,6 +780,11 @@ using 'convertValue()' for list of byte[] values. [1.8.9] +Matt Schemmel: + * Reported [JACKSON-820] WriterBasedGenerator with CharacterEscapes produces + unescaped output for strings > 2k in length + [1.8.9] + "Programmer Bruce": * Suggested these for 1.8.x: - [JACKSON-597] Make ClassDeserializer support primitive types [1.8.3]
diff --git a/release-notes/VERSION b/release-notes/VERSION index 6e76a9a..4654170 100644 --- a/release-notes/VERSION +++ b/release-notes/VERSION
@@ -22,6 +22,9 @@ * [JACKSON-806]: REQUIRE_SETTERS_FOR_GETTERS ignores explicitly annotated getters (reported by Harold M) * [JACKSON-812]: BigIntegerNode.equals(...) using '==' for equality + * [JACKSON-820]: WriterBasedGenerator with CharacterEscapes produces unescaped output + for strings > 2k in length + (reported by Matt S) ------------------------------------------------------------------------ === History: ===
diff --git a/src/java/org/codehaus/jackson/impl/WriterBasedGenerator.java b/src/java/org/codehaus/jackson/impl/WriterBasedGenerator.java index 1ef7e40..1535c08 100644 --- a/src/java/org/codehaus/jackson/impl/WriterBasedGenerator.java +++ b/src/java/org/codehaus/jackson/impl/WriterBasedGenerator.java
@@ -1191,7 +1191,7 @@ // And then we'll need to verify need for escaping etc: int end = _outputTail + len; final int[] escCodes = _outputEscapes; - final int escLimit = Math.min(escCodes.length, _maximumNonEscapedChar+1); + final int escLimit = Math.min(escCodes.length, maxNonEscaped+1); int escCode = 0; output_loop: @@ -1227,7 +1227,7 @@ throws IOException, JsonGenerationException { final int[] escCodes = _outputEscapes; - final int escLimit = Math.min(escCodes.length, _maximumNonEscapedChar+1); + final int escLimit = Math.min(escCodes.length, maxNonEscaped+1); int ptr = 0; int escCode = 0; @@ -1380,7 +1380,7 @@ { final int[] escCodes = _outputEscapes; final int maxNonEscaped = (_maximumNonEscapedChar < 1) ? 0xFFFF : _maximumNonEscapedChar; - final int escLimit = Math.min(escCodes.length, _maximumNonEscapedChar+1); + final int escLimit = Math.min(escCodes.length, maxNonEscaped+1); final CharacterEscapes customEscapes = _characterEscapes; int ptr = 0;