Skip to content

Commit a759ec3

Browse files
committed
Fix an issue with missing input decorators for javaprops backend
1 parent 2fa32c0 commit a759ec3

File tree

2 files changed

+30
-13
lines changed

2 files changed

+30
-13
lines changed

properties/src/main/java/com/fasterxml/jackson/dataformat/javaprop/JavaPropsFactory.java

Lines changed: 30 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,8 @@ public boolean canUseSchema(FormatSchema schema) {
130130
* @since 2.9
131131
*/
132132
public JavaPropsParser createParser(Properties props) {
133-
return new JavaPropsParser(_createContext(props, true),
133+
IOContext ctxt = _createContext(props, true);
134+
return new JavaPropsParser(ctxt,
134135
props, _parserFeatures, _objectCodec, props);
135136
}
136137

@@ -142,7 +143,8 @@ public JavaPropsParser createParser(Properties props) {
142143
* @since 2.9
143144
*/
144145
public JavaPropsGenerator createGenerator(Properties props) {
145-
return new PropertiesBackedGenerator(_createContext(props, true),
146+
IOContext ctxt = _createContext(props, true);
147+
return new PropertiesBackedGenerator(ctxt,
146148
props, _generatorFeatures, _objectCodec);
147149
}
148150

@@ -154,27 +156,44 @@ public JavaPropsGenerator createGenerator(Properties props) {
154156

155157
@Override
156158
public JsonParser createParser(File f) throws IOException {
157-
return _createParser(new FileInputStream(f), _createContext(f, true));
159+
IOContext ctxt = _createContext(f, true);
160+
return _createParser(_decorate(new FileInputStream(f), ctxt), ctxt);
158161
}
159162

160163
@Override
161164
public JsonParser createParser(URL url) throws IOException {
162-
return _createParser(_optimizedStreamFromURL(url), _createContext(url, true));
165+
IOContext ctxt = _createContext(url, true);
166+
return _createParser(_decorate(_optimizedStreamFromURL(url), ctxt), ctxt);
163167
}
164168

165169
@Override
166170
public JsonParser createParser(InputStream in) throws IOException {
167-
return _createParser(in, _createContext(in, false));
171+
IOContext ctxt = _createContext(in, false);
172+
return _createParser(_decorate(in, ctxt), ctxt);
168173
}
169174

170175
@Override
171176
public JsonParser createParser(byte[] data) throws IOException {
172-
return _createParser(data, 0, data.length, _createContext(data, true));
177+
IOContext ctxt = _createContext(data, true);
178+
if (_inputDecorator != null) {
179+
InputStream in = _inputDecorator.decorate(ctxt, data, 0, data.length);
180+
if (in != null) {
181+
return _createParser(in, ctxt);
182+
}
183+
}
184+
return _createParser(data, 0, data.length, ctxt);
173185
}
174186

175187
@Override
176188
public JsonParser createParser(byte[] data, int offset, int len) throws IOException {
177-
return _createParser(data, offset, len, _createContext(data, true));
189+
IOContext ctxt = _createContext(data, true);
190+
if (_inputDecorator != null) {
191+
InputStream in = _inputDecorator.decorate(ctxt, data, offset, len);
192+
if (in != null) {
193+
return _createParser(in, ctxt);
194+
}
195+
}
196+
return _createParser(data, offset, len, ctxt);
178197
}
179198

180199
/*
@@ -187,8 +206,8 @@ public JsonParser createParser(byte[] data, int offset, int len) throws IOExcept
187206
public JsonGenerator createGenerator(OutputStream out, JsonEncoding enc) throws IOException {
188207
IOContext ctxt = _createContext(out, false);
189208
ctxt.setEncoding(enc);
190-
out = _decorate(out, ctxt);
191-
return _createJavaPropsGenerator(ctxt, _generatorFeatures, _objectCodec, out);
209+
return _createJavaPropsGenerator(ctxt, _generatorFeatures, _objectCodec,
210+
_decorate(out, ctxt));
192211
}
193212

194213
/**
@@ -201,8 +220,8 @@ public JsonGenerator createGenerator(OutputStream out, JsonEncoding enc) throws
201220
@Override
202221
public JsonGenerator createGenerator(OutputStream out) throws IOException {
203222
IOContext ctxt = _createContext(out, false);
204-
out = _decorate(out, ctxt);
205-
return _createJavaPropsGenerator(ctxt, _generatorFeatures, _objectCodec, out);
223+
return _createJavaPropsGenerator(ctxt, _generatorFeatures, _objectCodec,
224+
_decorate(out, ctxt));
206225
}
207226

208227
/*

yaml/src/main/java/com/fasterxml/jackson/dataformat/yaml/YAMLFactory.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -342,7 +342,6 @@ public YAMLParser createParser(char[] data, int offset, int len) throws IOExcept
342342
public YAMLParser createParser(byte[] data) throws IOException
343343
{
344344
IOContext ctxt = _createContext(data, true);
345-
// [JACKSON-512]: allow wrapping with InputDecorator
346345
if (_inputDecorator != null) {
347346
InputStream in = _inputDecorator.decorate(ctxt, data, 0, data.length);
348347
if (in != null) {
@@ -356,7 +355,6 @@ public YAMLParser createParser(byte[] data) throws IOException
356355
public YAMLParser createParser(byte[] data, int offset, int len) throws IOException
357356
{
358357
IOContext ctxt = _createContext(data, true);
359-
// [JACKSON-512]: allow wrapping with InputDecorator
360358
if (_inputDecorator != null) {
361359
InputStream in = _inputDecorator.decorate(ctxt, data, offset, len);
362360
if (in != null) {

0 commit comments

Comments
 (0)