Skip to content

Commit f65cc9a

Browse files
committed
Remove explicit disabling of buffer recycling in Jackson codec
Since now FasterXML/jackson-core#476 and FasterXML/jackson-core#479 are fixed. This commit also raises the minimum version of Jackson to 2.9.7. Closes spring-projectsgh-23522
1 parent c004ef8 commit f65cc9a

File tree

1 file changed

+4
-11
lines changed

1 file changed

+4
-11
lines changed

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

+4-11
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
import java.util.List;
2222
import java.util.Map;
2323

24-
import com.fasterxml.jackson.core.JsonFactory;
2524
import com.fasterxml.jackson.core.JsonProcessingException;
2625
import com.fasterxml.jackson.databind.JavaType;
2726
import com.fasterxml.jackson.databind.ObjectMapper;
@@ -50,6 +49,8 @@
5049
/**
5150
* Abstract base class for Jackson 2.9 decoding, leveraging non-blocking parsing.
5251
*
52+
* <p>Compatible with Jackson 2.9.7 and higher.
53+
*
5354
* @author Sebastien Deleuze
5455
* @author Rossen Stoyanchev
5556
* @author Arjen Poutsma
@@ -58,20 +59,11 @@
5859
*/
5960
public abstract class AbstractJackson2Decoder extends Jackson2CodecSupport implements HttpMessageDecoder<Object> {
6061

61-
/**
62-
* Until https://github.com/FasterXML/jackson-core/issues/476 is resolved,
63-
* we need to ensure buffer recycling is off.
64-
*/
65-
private final JsonFactory jsonFactory;
66-
67-
6862
/**
6963
* Constructor with a Jackson {@link ObjectMapper} to use.
7064
*/
7165
protected AbstractJackson2Decoder(ObjectMapper mapper, MimeType... mimeTypes) {
7266
super(mapper, mimeTypes);
73-
this.jsonFactory = mapper.getFactory().copy()
74-
.disable(JsonFactory.Feature.USE_THREAD_LOCAL_FOR_BUFFER_RECYCLING);
7567
}
7668

7769

@@ -87,8 +79,9 @@ public boolean canDecode(ResolvableType elementType, @Nullable MimeType mimeType
8779
public Flux<Object> decode(Publisher<DataBuffer> input, ResolvableType elementType,
8880
@Nullable MimeType mimeType, @Nullable Map<String, Object> hints) {
8981

82+
ObjectMapper mapper = getObjectMapper();
9083
Flux<TokenBuffer> tokens = Jackson2Tokenizer.tokenize(
91-
Flux.from(input), this.jsonFactory, getObjectMapper(), true);
84+
Flux.from(input), mapper.getFactory(), mapper, true);
9285

9386
ObjectReader reader = getObjectReader(elementType, hints);
9487

0 commit comments

Comments
 (0)