[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