Repository: camel Updated Branches: refs/heads/camel-2.15.x 6b6280663 -> 9264594eb refs/heads/camel-2.16.x 8e261f742 -> 92a6514ff refs/heads/master 139716fd8 -> 394960925
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/39496092 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/39496092 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/39496092 Branch: refs/heads/master Commit: 3949609258fcccf2c404991f4f4759ff42c348f0 Parents: 139716f 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:41:43 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/39496092/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; } }