Upgrade to Jackson 2.9.2 (#27032)

Upgrade to Jackson 2.9.2 and also use a boolean `closed` flag to
indicate that a FastStringReader instance is closed, so that length
is still correctly reported after the reader is closed.
This commit is contained in:
Tanguy Leroux 2017-10-19 15:15:02 +02:00 committed by GitHub
parent 87c9b79b10
commit 0b9acc5ace
16 changed files with 18 additions and 19 deletions

View File

@ -5,8 +5,8 @@ lucene = 7.1.0-snapshot-f33ed4ba12a
# optional dependencies
spatial4j = 0.6
jts = 1.13
jackson = 2.8.6
snakeyaml = 1.15
jackson = 2.9.2
snakeyaml = 1.18
# when updating log4j, please update also docs/java-api/index.asciidoc
log4j = 2.9.1
slf4j = 1.6.2

View File

@ -1 +0,0 @@
2ef7b1cc34de149600f5e75bc2d5bf40de894e60

View File

@ -0,0 +1 @@
aed20e50152a2f19adc1995c8d8f307c7efa414d

View File

@ -1 +0,0 @@
2ef7b1cc34de149600f5e75bc2d5bf40de894e60

View File

@ -0,0 +1 @@
aed20e50152a2f19adc1995c8d8f307c7efa414d

View File

@ -1 +0,0 @@
b88721371cfa2d7242bb5e52fe70861aa061c050

View File

@ -0,0 +1 @@
9ad705ca14f5d1879dfffc3d94a521bf2f2e8ea7

View File

@ -1 +0,0 @@
71590ad45cee21249774e2f93e5eca66e446cef3

View File

@ -0,0 +1 @@
a7cf50aff5bd96e3a0ba551a688bf402e2a594c3

View File

@ -1 +0,0 @@
8bd44d50f9a6cdff9c7578ea39d524eb519e35ab

View File

@ -0,0 +1 @@
cafb9bafb3fc94ac18ed53043396f2c7bccd6c4f

View File

@ -1 +0,0 @@
3b132bea69e8ee099f416044970997bde80f4ea6

View File

@ -0,0 +1 @@
e4a441249ade301985cb8d009d4e4a72b85bf68e

View File

@ -24,9 +24,6 @@ import java.io.Reader;
/**
* A character stream whose source is a string that is <b>not thread safe</b>
* <p>
* (shay.banon
* )
*/
public class FastStringReader extends Reader implements CharSequence {
@ -34,6 +31,7 @@ public class FastStringReader extends Reader implements CharSequence {
private int length;
private int next = 0;
private int mark = 0;
private boolean closed = false;
/**
* Creates a new string reader.
@ -49,8 +47,9 @@ public class FastStringReader extends Reader implements CharSequence {
* Check to make sure that the stream has not been closed
*/
private void ensureOpen() throws IOException {
if (length == -1)
if (closed) {
throw new IOException("Stream closed");
}
}
@Override
@ -196,7 +195,7 @@ public class FastStringReader extends Reader implements CharSequence {
*/
@Override
public void close() {
length = -1;
closed = true;
}
@Override

View File

@ -72,18 +72,18 @@ public class RestActionsTests extends ESTestCase {
public void testParseTopLevelBuilderMalformedJson() throws IOException {
for (String requestBody : Arrays.asList("\"\"", "\"someString\"", "\"{\"")) {
try (XContentParser parser = createParser(JsonXContent.jsonXContent, requestBody)) {
ParsingException exception =
expectThrows(ParsingException.class, () -> RestActions.getQueryContent(parser));
ParsingException exception = expectThrows(ParsingException.class, () -> RestActions.getQueryContent(parser));
assertEquals("Expected [START_OBJECT] but found [VALUE_STRING]", exception.getMessage());
}
}
}
public void testParseTopLevelBuilderIncompleteJson() throws IOException {
for (String requestBody : Arrays.asList("{", "{ \"query\" :")) {
final String incomplete = "{\"query\":";
for (int i = 1; i <= incomplete.length(); i++) {
String requestBody = incomplete.substring(0, i);
try (XContentParser parser = createParser(JsonXContent.jsonXContent, requestBody)) {
ParsingException exception =
expectThrows(ParsingException.class, () -> RestActions.getQueryContent(parser));
ParsingException exception = expectThrows(ParsingException.class, () -> RestActions.getQueryContent(parser));
assertEquals("Failed to parse", exception.getMessage());
assertEquals(JsonEOFException.class, exception.getRootCause().getClass());
}

View File

@ -62,7 +62,7 @@ public class JsonProcessorTests extends ESTestCase {
Exception exception = expectThrows(IllegalArgumentException.class, () -> jsonProcessor.execute(ingestDocument));
assertThat(exception.getCause().getCause().getMessage(), equalTo("Unrecognized token"
+ " 'invalid': was expecting ('true', 'false' or 'null')\n"
+ " at [Source: invalid json; line: 1, column: 8]"));
+ " at [Source: (org.elasticsearch.common.io.FastStringReader)\"invalid json\"; line: 1, column: 8]"));
}
public void testFieldMissing() {