Browse Source

Jackson2Tokenizer passes DeserializationContext into all TokenBuffers

See gh-22510
pull/22522/head
Juergen Hoeller 7 years ago
parent
commit
d034c053b3
  1. 7
      spring-web/src/main/java/org/springframework/http/codec/json/Jackson2Tokenizer.java

7
spring-web/src/main/java/org/springframework/http/codec/json/Jackson2Tokenizer.java

@ -48,6 +48,8 @@ final class Jackson2Tokenizer {
private final JsonParser parser; private final JsonParser parser;
private final DeserializationContext deserializationContext;
private final boolean tokenizeArrayElements; private final boolean tokenizeArrayElements;
private TokenBuffer tokenBuffer; private TokenBuffer tokenBuffer;
@ -65,6 +67,7 @@ final class Jackson2Tokenizer {
JsonParser parser, DeserializationContext deserializationContext, boolean tokenizeArrayElements) { JsonParser parser, DeserializationContext deserializationContext, boolean tokenizeArrayElements) {
this.parser = parser; this.parser = parser;
this.deserializationContext = deserializationContext;
this.tokenizeArrayElements = tokenizeArrayElements; this.tokenizeArrayElements = tokenizeArrayElements;
this.tokenBuffer = new TokenBuffer(parser, deserializationContext); this.tokenBuffer = new TokenBuffer(parser, deserializationContext);
this.inputFeeder = (ByteArrayFeeder) this.parser.getNonBlockingInputFeeder(); this.inputFeeder = (ByteArrayFeeder) this.parser.getNonBlockingInputFeeder();
@ -144,7 +147,7 @@ final class Jackson2Tokenizer {
if ((token.isStructEnd() || token.isScalarValue()) && this.objectDepth == 0 && this.arrayDepth == 0) { if ((token.isStructEnd() || token.isScalarValue()) && this.objectDepth == 0 && this.arrayDepth == 0) {
result.add(this.tokenBuffer); result.add(this.tokenBuffer);
this.tokenBuffer = new TokenBuffer(this.parser); this.tokenBuffer = new TokenBuffer(this.parser, this.deserializationContext);
} }
} }
@ -157,7 +160,7 @@ final class Jackson2Tokenizer {
if (this.objectDepth == 0 && (this.arrayDepth == 0 || this.arrayDepth == 1) && if (this.objectDepth == 0 && (this.arrayDepth == 0 || this.arrayDepth == 1) &&
(token == JsonToken.END_OBJECT || token.isScalarValue())) { (token == JsonToken.END_OBJECT || token.isScalarValue())) {
result.add(this.tokenBuffer); result.add(this.tokenBuffer);
this.tokenBuffer = new TokenBuffer(this.parser); this.tokenBuffer = new TokenBuffer(this.parser, this.deserializationContext);
} }
} }

Loading…
Cancel
Save