This is an automated email from the git hooks/post-receive script. tjaalton pushed a commit to branch master in repository jackson-jaxrs-providers.
commit fe806fc14bd9a4ed06b464770e7434b3f6513862 Author: Tatu Saloranta <[email protected]> Date: Wed Oct 9 22:24:41 2013 -0700 Move auto-close disabling further down to only modify instances --- .../fasterxml/jackson/jaxrs/base/ProviderBase.java | 41 +++++++++++++++------- 1 file changed, 28 insertions(+), 13 deletions(-) diff --git a/base/src/main/java/com/fasterxml/jackson/jaxrs/base/ProviderBase.java b/base/src/main/java/com/fasterxml/jackson/jaxrs/base/ProviderBase.java index a37c510..03930f8 100644 --- a/base/src/main/java/com/fasterxml/jackson/jaxrs/base/ProviderBase.java +++ b/base/src/main/java/com/fasterxml/jackson/jaxrs/base/ProviderBase.java @@ -549,14 +549,13 @@ public abstract class ProviderBase< // Where can we find desired encoding? Within HTTP headers? JsonEncoding enc = findEncoding(mediaType, httpHeaders); - JsonGenerator jg = writer.getFactory().createGenerator(entityStream, enc); - + JsonGenerator g = _createGenerator(writer, entityStream, enc); + try { // Want indentation? if (writer.isEnabled(SerializationFeature.INDENT_OUTPUT)) { - jg.useDefaultPrettyPrinter(); + g.useDefaultPrettyPrinter(); } - // 04-Mar-2010, tatu: How about type we were given? (if any) JavaType rootType = null; if (genericType != null && value != null) { @@ -587,9 +586,9 @@ public abstract class ProviderBase< writer = writer.withType(rootType); } value = endpoint.modifyBeforeWrite(value); - writer.writeValue(jg, value); + writer.writeValue(g, value); } finally { - jg.close(); + g.close(); } } @@ -616,6 +615,22 @@ public abstract class ProviderBase< httpHeaders.add(HEADER_CONTENT_TYPE_OPTIONS, "nosniff"); } } + + /** + * Overridable helper method called to create a {@link JsonGenerator} for writing + * contents into given raw {@link OutputStream}. + * + * @since 2.3 + */ + protected JsonGenerator _createGenerator(ObjectWriter writer, OutputStream rawStream, JsonEncoding enc) + throws IOException + { + JsonGenerator g = writer.getFactory().createGenerator(rawStream, enc); + // Important: we are NOT to close the underlying stream after + // mapping, so we need to instruct generator + g.disable(JsonGenerator.Feature.AUTO_CLOSE_TARGET); + return g; + } /* /********************************************************** @@ -711,11 +726,17 @@ public abstract class ProviderBase< * contents of given raw {@link InputStream}. * May return null to indicate that Stream is empty; that is, contains no * content. + * + * @since 2.2 */ protected JsonParser _createParser(ObjectReader reader, InputStream rawStream) throws IOException { - return reader.getFactory().createParser(rawStream); + JsonParser p = reader.getFactory().createParser(rawStream); + // Important: we are NOT to close the underlying stream after + // mapping, so we need to instruct parser: + p.disable(JsonParser.Feature.AUTO_CLOSE_SOURCE); + return p; } /* @@ -756,12 +777,6 @@ public abstract class ProviderBase< m = _mapperConfig.getDefaultMapper(); } } - // Important: we are NOT to close the underlying stream after - // mapping, so we need to instruct parser: - JsonFactory f = m.getFactory(); - f.disable(JsonParser.Feature.AUTO_CLOSE_SOURCE); - // ditto for generator - f.disable(JsonGenerator.Feature.AUTO_CLOSE_TARGET); return m; } -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/jackson-jaxrs-providers.git _______________________________________________ pkg-java-commits mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-java-commits

