You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2015/11/22 14:44:59 UTC

[2/3] camel git commit: CAMEL-9202: camel-flatpack. Close reader if error creating. Thanks to MykhailoVlakh for partial patch.

CAMEL-9202: camel-flatpack. Close reader if error creating. Thanks to MykhailoVlakh for partial patch.


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/92a6514f
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/92a6514f
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/92a6514f

Branch: refs/heads/camel-2.16.x
Commit: 92a6514ffdecb352e4771c7e181db1373cfeed40
Parents: 8e261f7
Author: Claus Ibsen <da...@apache.org>
Authored: Sun Nov 22 14:41:43 2015 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Sun Nov 22 14:44:31 2015 +0100

----------------------------------------------------------------------
 .../camel/component/flatpack/FlatpackEndpoint.java  | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/92a6514f/components/camel-flatpack/src/main/java/org/apache/camel/component/flatpack/FlatpackEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-flatpack/src/main/java/org/apache/camel/component/flatpack/FlatpackEndpoint.java b/components/camel-flatpack/src/main/java/org/apache/camel/component/flatpack/FlatpackEndpoint.java
index cb7b3af..58c3604 100644
--- a/components/camel-flatpack/src/main/java/org/apache/camel/component/flatpack/FlatpackEndpoint.java
+++ b/components/camel-flatpack/src/main/java/org/apache/camel/component/flatpack/FlatpackEndpoint.java
@@ -102,12 +102,18 @@ public class FlatpackEndpoint extends DefaultPollingEndpoint {
         loadBalancer.process(exchange);
     }
 
-    public Parser createParser(Exchange exchange) throws InvalidPayloadException, IOException {
+    public Parser createParser(Exchange exchange) throws Exception {
         Reader bodyReader = exchange.getIn().getMandatoryBody(Reader.class);
-        if (FlatpackType.fixed == type) {
-            return createFixedParser(resourceUri, bodyReader);
-        } else {
-            return createDelimitedParser(exchange);
+        try {
+            if (FlatpackType.fixed == type) {
+                return createFixedParser(resourceUri, bodyReader);
+            } else {
+                return createDelimitedParser(exchange);
+            }
+        } catch (Exception e) {
+            // must close reader in case of some exception
+            IOHelper.close(bodyReader);
+            throw e;
         }
     }