From d034c053b37f71bc3ca260886e722f7c73300ebd Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Tue, 5 Mar 2019 13:47:26 +0100 Subject: [PATCH] Jackson2Tokenizer passes DeserializationContext into all TokenBuffers See gh-22510 --- .../springframework/http/codec/json/Jackson2Tokenizer.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/spring-web/src/main/java/org/springframework/http/codec/json/Jackson2Tokenizer.java b/spring-web/src/main/java/org/springframework/http/codec/json/Jackson2Tokenizer.java index 557948b540..de9cfaaef2 100644 --- a/spring-web/src/main/java/org/springframework/http/codec/json/Jackson2Tokenizer.java +++ b/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 DeserializationContext deserializationContext; + private final boolean tokenizeArrayElements; private TokenBuffer tokenBuffer; @@ -65,6 +67,7 @@ final class Jackson2Tokenizer { JsonParser parser, DeserializationContext deserializationContext, boolean tokenizeArrayElements) { this.parser = parser; + this.deserializationContext = deserializationContext; this.tokenizeArrayElements = tokenizeArrayElements; this.tokenBuffer = new TokenBuffer(parser, deserializationContext); this.inputFeeder = (ByteArrayFeeder) this.parser.getNonBlockingInputFeeder(); @@ -144,7 +147,7 @@ final class Jackson2Tokenizer { if ((token.isStructEnd() || token.isScalarValue()) && this.objectDepth == 0 && this.arrayDepth == 0) { 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) && (token == JsonToken.END_OBJECT || token.isScalarValue())) { result.add(this.tokenBuffer); - this.tokenBuffer = new TokenBuffer(this.parser); + this.tokenBuffer = new TokenBuffer(this.parser, this.deserializationContext); } } -- GitLab