Skip to content

Commit 76d0749

Browse files
committed
Minor cleanup wrt StreamWriteConstraints handling
1 parent e8a7abc commit 76d0749

File tree

7 files changed

+36
-20
lines changed

7 files changed

+36
-20
lines changed

src/main/java/com/fasterxml/jackson/core/JsonFactory.java

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -381,10 +381,8 @@ protected JsonFactory(JsonFactory src, ObjectCodec codec)
381381
_inputDecorator = src._inputDecorator;
382382
_outputDecorator = src._outputDecorator;
383383
_generatorDecorators = _copy(src._generatorDecorators);
384-
_streamReadConstraints = src._streamReadConstraints == null ?
385-
StreamReadConstraints.defaults() : src._streamReadConstraints;
386-
_streamWriteConstraints = src._streamWriteConstraints == null ?
387-
StreamWriteConstraints.defaults() : src._streamWriteConstraints;
384+
_streamReadConstraints = Objects.requireNonNull(src._streamReadConstraints);
385+
_streamWriteConstraints = Objects.requireNonNull(src._streamWriteConstraints);
388386

389387
// JSON-specific
390388
_characterEscapes = src._characterEscapes;
@@ -410,10 +408,8 @@ public JsonFactory(JsonFactoryBuilder b) {
410408
_inputDecorator = b._inputDecorator;
411409
_outputDecorator = b._outputDecorator;
412410
_generatorDecorators = _copy(b._generatorDecorators);
413-
_streamReadConstraints = b._streamReadConstraints == null ?
414-
StreamReadConstraints.defaults() : b._streamReadConstraints;
415-
_streamWriteConstraints = b._streamWriteConstraints == null ?
416-
StreamWriteConstraints.defaults() : b._streamWriteConstraints;
411+
_streamReadConstraints = Objects.requireNonNull(b._streamReadConstraints);
412+
_streamWriteConstraints = Objects.requireNonNull(b._streamWriteConstraints);
417413

418414
// JSON-specific
419415
_characterEscapes = b._characterEscapes;
@@ -439,10 +435,8 @@ protected JsonFactory(TSFBuilder<?,?> b, boolean bogus) {
439435
_inputDecorator = b._inputDecorator;
440436
_outputDecorator = b._outputDecorator;
441437
_generatorDecorators = _copy(b._generatorDecorators);
442-
_streamReadConstraints = b._streamReadConstraints == null ?
443-
StreamReadConstraints.defaults() : b._streamReadConstraints;
444-
_streamWriteConstraints = b._streamWriteConstraints == null ?
445-
StreamWriteConstraints.defaults() : b._streamWriteConstraints;
438+
_streamReadConstraints = Objects.requireNonNull(b._streamReadConstraints);
439+
_streamWriteConstraints = Objects.requireNonNull(b._streamWriteConstraints);
446440

447441
// JSON-specific: need to assign even if not really used
448442
_characterEscapes = null;

src/main/java/com/fasterxml/jackson/core/TSFBuilder.java

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -107,21 +107,19 @@ public abstract class TSFBuilder<F extends JsonFactory,
107107
*/
108108

109109
protected TSFBuilder() {
110-
_factoryFeatures = DEFAULT_FACTORY_FEATURE_FLAGS;
111-
_streamReadFeatures = DEFAULT_PARSER_FEATURE_FLAGS;
112-
_streamWriteFeatures = DEFAULT_GENERATOR_FEATURE_FLAGS;
113-
_inputDecorator = null;
114-
_outputDecorator = null;
115-
_generatorDecorators = null;
110+
this(DEFAULT_FACTORY_FEATURE_FLAGS,
111+
DEFAULT_PARSER_FEATURE_FLAGS,
112+
DEFAULT_GENERATOR_FEATURE_FLAGS);
116113
}
117114

118115
protected TSFBuilder(JsonFactory base)
119116
{
120117
this(base._factoryFeatures,
121118
base._parserFeatures, base._generatorFeatures);
122-
_streamReadConstraints = base._streamReadConstraints;
123119
_inputDecorator = base._inputDecorator;
124120
_outputDecorator = base._outputDecorator;
121+
_streamReadConstraints = base._streamReadConstraints;
122+
_streamWriteConstraints = base._streamWriteConstraints;
125123
_generatorDecorators = _copy(base._generatorDecorators);
126124
}
127125

@@ -131,6 +129,12 @@ protected TSFBuilder(int factoryFeatures,
131129
_factoryFeatures = factoryFeatures;
132130
_streamReadFeatures = parserFeatures;
133131
_streamWriteFeatures = generatorFeatures;
132+
133+
_inputDecorator = null;
134+
_outputDecorator = null;
135+
_streamReadConstraints = StreamReadConstraints.defaults();
136+
_streamWriteConstraints = StreamWriteConstraints.defaults();
137+
_generatorDecorators = null;
134138
}
135139

136140
// @since 2.16

src/main/java/com/fasterxml/jackson/core/io/IOContext.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,14 @@ public class IOContext
6363
*/
6464
protected final BufferRecycler _bufferRecycler;
6565

66+
/**
67+
* @since 2.15
68+
*/
6669
protected final StreamReadConstraints _streamReadConstraints;
6770

71+
/**
72+
* @since 2.16
73+
*/
6874
protected final StreamWriteConstraints _streamWriteConstraints;
6975

7076
/**
@@ -146,6 +152,7 @@ public IOContext(StreamReadConstraints src, StreamWriteConstraints swc, BufferRe
146152
* @since 2.15
147153
* @deprecated use v2.16 constructor with additional <code>StreamWriteConstraints</code>
148154
*/
155+
@Deprecated
149156
public IOContext(StreamReadConstraints src, BufferRecycler br,
150157
ContentReference contentRef, boolean managedResource)
151158
{

src/main/java/com/fasterxml/jackson/core/json/JsonGeneratorImpl.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,11 @@ public abstract class JsonGeneratorImpl extends GeneratorBase
4747

4848
protected final IOContext _ioContext;
4949

50+
/**
51+
* @since 2.16
52+
*/
53+
protected final StreamWriteConstraints _streamWriteConstraints;
54+
5055
/*
5156
/**********************************************************
5257
/* Configuration, output escaping
@@ -120,6 +125,7 @@ public JsonGeneratorImpl(IOContext ctxt, int features, ObjectCodec codec)
120125
{
121126
super(features, codec);
122127
_ioContext = ctxt;
128+
_streamWriteConstraints = ctxt.streamWriteConstraints();
123129
if (Feature.ESCAPE_NON_ASCII.enabledIn(features)) {
124130
// inlined `setHighestNonEscapedChar()`
125131
_maximumNonEscapedChar = 127;
@@ -147,7 +153,7 @@ public Version version() {
147153

148154
@Override
149155
public StreamWriteConstraints streamWriteConstraints() {
150-
return _ioContext.streamWriteConstraints();
156+
return _streamWriteConstraints;
151157
}
152158

153159
/*

src/test/java/com/fasterxml/jackson/core/TestVersions.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ private void assertVersion(Version v)
4848

4949
private IOContext getIOContext() {
5050
return new IOContext(StreamReadConstraints.defaults(),
51+
StreamWriteConstraints.defaults(),
5152
new BufferRecycler(), ContentReference.unknown(), false);
5253
}
5354
}

src/test/java/com/fasterxml/jackson/core/io/TestMergedStream.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
import com.fasterxml.jackson.core.JsonEncoding;
66
import com.fasterxml.jackson.core.StreamReadConstraints;
7+
import com.fasterxml.jackson.core.StreamWriteConstraints;
78
import com.fasterxml.jackson.core.util.BufferRecycler;
89

910
public class TestMergedStream
@@ -13,6 +14,7 @@ public void testSimple() throws Exception
1314
{
1415
BufferRecycler rec = new BufferRecycler();
1516
IOContext ctxt = new IOContext(StreamReadConstraints.defaults(),
17+
StreamWriteConstraints.defaults(),
1618
rec, ContentReference.UNKNOWN_CONTENT, false);
1719
// bit complicated; must use recyclable buffer...
1820
byte[] first = ctxt.allocReadIOBuffer();

src/test/java/com/fasterxml/jackson/core/util/ReadConstrainedTextBufferTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.fasterxml.jackson.core.util;
22

33
import com.fasterxml.jackson.core.StreamReadConstraints;
4+
import com.fasterxml.jackson.core.StreamWriteConstraints;
45
import com.fasterxml.jackson.core.io.ContentReference;
56
import com.fasterxml.jackson.core.io.IOContext;
67
import org.junit.jupiter.api.Assertions;
@@ -45,6 +46,7 @@ private static TextBuffer makeConstrainedBuffer(int maxStringLen) {
4546
.build();
4647
IOContext ioContext = new IOContext(
4748
constraints,
49+
StreamWriteConstraints.defaults(),
4850
new BufferRecycler(),
4951
ContentReference.rawReference("N/A"), true);
5052
return ioContext.constructReadConstrainedTextBuffer();

0 commit comments

Comments
 (0)