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/9264594e
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/9264594e
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/9264594e

Branch: refs/heads/camel-2.15.x
Commit: 9264594eb6d7fd98f477c8559f60f4b483a1c6e7
Parents: 6b62806
Author: Claus Ibsen <davscl...@apache.org>
Authored: Sun Nov 22 14:41:43 2015 +0100
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Sun Nov 22 14:44:50 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/9264594e/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 6b4679c..b34f63e 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;
         }
     }
 

Reply via email to