[jackson-jaxrs-providers] 38/162: Ensure that ProviderBase closes JsonGenerator.
Timo Aaltonen
tjaalton at moszumanska.debian.org
Mon Sep 8 22:16:26 UTC 2014
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 7590b755fcbc21f6443442553521d9122bd6aeb1
Author: Steven Schlansker <steven at likeness.com>
Date: Fri Apr 12 12:05:28 2013 -0700
Ensure that ProviderBase closes JsonGenerator.
---
.../fasterxml/jackson/jaxrs/base/ProviderBase.java | 68 ++++++++++++----------
1 file changed, 36 insertions(+), 32 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 221d168..c7082f3 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
@@ -397,49 +397,53 @@ public abstract class ProviderBase<
}
ObjectWriter writer = endpoint.getWriter();
-
+
/* 27-Feb-2009, tatu: Where can we find desired encoding? Within
* HTTP headers?
*/
JsonEncoding enc = findEncoding(mediaType, httpHeaders);
JsonGenerator jg = writer.getFactory().createGenerator(entityStream, enc);
- // Want indentation?
- if (writer.isEnabled(SerializationFeature.INDENT_OUTPUT)) {
- jg.useDefaultPrettyPrinter();
- }
- // 04-Mar-2010, tatu: How about type we were given? (if any)
- JavaType rootType = null;
-
- if (genericType != null && value != null) {
- /* 10-Jan-2011, tatu: as per [JACKSON-456], it's not safe to just force root
- * type since it prevents polymorphic type serialization. Since we really
- * just need this for generics, let's only use generic type if it's truly
- * generic.
- */
- if (genericType.getClass() != Class.class) { // generic types are other impls of 'java.lang.reflect.Type'
- /* This is still not exactly right; should root type be further
- * specialized with 'value.getClass()'? Let's see how well this works before
- * trying to come up with more complete solution.
- */
- rootType = writer.getTypeFactory().constructType(genericType);
- /* 26-Feb-2011, tatu: To help with [JACKSON-518], we better recognize cases where
- * type degenerates back into "Object.class" (as is the case with plain TypeVariable,
- * for example), and not use that.
+ try {
+ // Want indentation?
+ if (writer.isEnabled(SerializationFeature.INDENT_OUTPUT)) {
+ jg.useDefaultPrettyPrinter();
+ }
+ // 04-Mar-2010, tatu: How about type we were given? (if any)
+ JavaType rootType = null;
+
+ if (genericType != null && value != null) {
+ /* 10-Jan-2011, tatu: as per [JACKSON-456], it's not safe to just force root
+ * type since it prevents polymorphic type serialization. Since we really
+ * just need this for generics, let's only use generic type if it's truly
+ * generic.
*/
- if (rootType.getRawClass() == Object.class) {
- rootType = null;
+ if (genericType.getClass() != Class.class) { // generic types are other impls of 'java.lang.reflect.Type'
+ /* This is still not exactly right; should root type be further
+ * specialized with 'value.getClass()'? Let's see how well this works before
+ * trying to come up with more complete solution.
+ */
+ rootType = writer.getTypeFactory().constructType(genericType);
+ /* 26-Feb-2011, tatu: To help with [JACKSON-518], we better recognize cases where
+ * type degenerates back into "Object.class" (as is the case with plain TypeVariable,
+ * for example), and not use that.
+ */
+ if (rootType.getRawClass() == Object.class) {
+ rootType = null;
+ }
}
}
- }
- // Most of the configuration now handled through EndpointConfig, ObjectWriter
- // but we may need to force root type:
- if (rootType != null) {
- writer = writer.withType(rootType);
+ // Most of the configuration now handled through EndpointConfig, ObjectWriter
+ // but we may need to force root type:
+ if (rootType != null) {
+ writer = writer.withType(rootType);
+ }
+ value = endpoint.modifyBeforeWrite(value);
+ writer.writeValue(jg, value);
+ } finally {
+ jg.close();
}
- value = endpoint.modifyBeforeWrite(value);
- writer.writeValue(jg, value);
}
/**
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/jackson-jaxrs-providers.git
More information about the pkg-java-commits
mailing list