[jackson-jaxrs-providers] 159/162: Improvements to error propagation of writeTo(), test improvements
Timo Aaltonen
tjaalton at moszumanska.debian.org
Mon Sep 8 22:16:39 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 ebaa9dac58ed753cfec8eb2675d52267dd5d4249
Author: Tatu Saloranta <tatu.saloranta at iki.fi>
Date: Mon Jul 14 22:29:54 2014 -0700
Improvements to error propagation of writeTo(), test improvements
---
.../java/com/fasterxml/jackson/jaxrs/base/ProviderBase.java | 12 ++++++++++--
pom.xml | 3 +++
.../java/com/fasterxml/jackson/jaxrs/xml/JaxrsTestBase.java | 7 +++++++
.../jackson/jaxrs/xml/TestJacksonFeaturesWithXML.java | 11 ++++++++---
4 files changed, 28 insertions(+), 5 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 c15c217..0eda54a 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
@@ -601,7 +601,8 @@ public abstract class ProviderBase<
// Where can we find desired encoding? Within HTTP headers?
JsonEncoding enc = findEncoding(mediaType, httpHeaders);
JsonGenerator g = _createGenerator(writer, entityStream, enc);
-
+ boolean ok = false;
+
try {
// Want indentation?
if (writer.isEnabled(SerializationFeature.INDENT_OUTPUT)) {
@@ -645,8 +646,15 @@ public abstract class ProviderBase<
}
writer.writeValue(g, value);
+ ok = true;
} finally {
- g.close();
+ if (ok) {
+ g.close();
+ } else {
+ try {
+ g.close();
+ } catch (Exception e) { }
+ }
}
}
diff --git a/pom.xml b/pom.xml
index 822c4c6..38c2ede 100644
--- a/pom.xml
+++ b/pom.xml
@@ -32,7 +32,10 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<version.jackson.annotations>2.4.0</version.jackson.annotations>
<!-- core/databind should have same version; data formats, annotations may differ -->
+ <version.jackson.core>2.4.2-SNAPSHOT</version.jackson.core>
+<!--
<version.jackson.core>2.4.1</version.jackson.core>
+-->
<version.jackson.cbor>${version.jackson.core}</version.jackson.cbor>
<version.jackson.smile>${version.jackson.core}</version.jackson.smile>
diff --git a/xml/src/test/java/com/fasterxml/jackson/jaxrs/xml/JaxrsTestBase.java b/xml/src/test/java/com/fasterxml/jackson/jaxrs/xml/JaxrsTestBase.java
index 7d00d7f..25d3c59 100644
--- a/xml/src/test/java/com/fasterxml/jackson/jaxrs/xml/JaxrsTestBase.java
+++ b/xml/src/test/java/com/fasterxml/jackson/jaxrs/xml/JaxrsTestBase.java
@@ -103,4 +103,11 @@ public abstract class JaxrsTestBase
in.close();
return bytes.toByteArray();
}
+
+ protected Exception unwrap(Exception e) {
+ while (e.getCause() instanceof Exception) {
+ e = (Exception) e.getCause();
+ }
+ return e;
+ }
}
diff --git a/xml/src/test/java/com/fasterxml/jackson/jaxrs/xml/TestJacksonFeaturesWithXML.java b/xml/src/test/java/com/fasterxml/jackson/jaxrs/xml/TestJacksonFeaturesWithXML.java
index 321a9f3..39d5dc6 100644
--- a/xml/src/test/java/com/fasterxml/jackson/jaxrs/xml/TestJacksonFeaturesWithXML.java
+++ b/xml/src/test/java/com/fasterxml/jackson/jaxrs/xml/TestJacksonFeaturesWithXML.java
@@ -60,8 +60,13 @@ public class TestJacksonFeaturesWithXML extends JaxrsTestBase
* any more: it is only added to JSON where it is needed; but not
* to XML which always basically uses wrapping.
*/
- prov.writeTo(bean, bean.getClass(), bean.getClass(), new Annotation[] { feats },
- MediaType.APPLICATION_JSON_TYPE, null, out);
+ try {
+ prov.writeTo(bean, bean.getClass(), bean.getClass(), new Annotation[] { feats },
+ MediaType.APPLICATION_JSON_TYPE, null, out);
+ } catch (Exception e) {
+ throw unwrap(e);
+ }
+
//
assertEquals("<Bean><a>3</a></Bean>", out.toString("UTF-8"));
@@ -71,7 +76,7 @@ public class TestJacksonFeaturesWithXML extends JaxrsTestBase
MediaType.APPLICATION_JSON_TYPE, null, out);
assertEquals("<Bean><a>3</a></Bean>", out.toString("UTF-8"));
}
-
+
public void testWriteConfigsViaBundle() throws Exception
{
JacksonXMLProvider prov = new JacksonXMLProvider();
--
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