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.salora...@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 _______________________________________________ pkg-java-commits mailing list pkg-java-commits@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-java-commits