Updated Branches: refs/heads/camel-2.11.x 8bae7e645 -> fdfd3d86e
CAMEL-6560: Fixed potential exception for empty resultset. Thanks to Radek Kraus for the patch. Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/fdfd3d86 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/fdfd3d86 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/fdfd3d86 Branch: refs/heads/camel-2.11.x Commit: fdfd3d86e3ac3fbd86943610c512856907b3ec81 Parents: 8bae7e6 Author: Claus Ibsen <davscl...@apache.org> Authored: Thu Jul 18 13:45:18 2013 +0200 Committer: Claus Ibsen <davscl...@apache.org> Committed: Thu Jul 18 13:45:18 2013 +0200 ---------------------------------------------------------------------- .../camel/component/jdbc/JdbcProducer.java | 4 +++- .../camel/component/jdbc/JdbcRSMetaDataTest.java | 19 +++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/fdfd3d86/components/camel-jdbc/src/main/java/org/apache/camel/component/jdbc/JdbcProducer.java ---------------------------------------------------------------------- diff --git a/components/camel-jdbc/src/main/java/org/apache/camel/component/jdbc/JdbcProducer.java b/components/camel-jdbc/src/main/java/org/apache/camel/component/jdbc/JdbcProducer.java index fff89fc..85a70ae 100755 --- a/components/camel-jdbc/src/main/java/org/apache/camel/component/jdbc/JdbcProducer.java +++ b/components/camel-jdbc/src/main/java/org/apache/camel/component/jdbc/JdbcProducer.java @@ -223,7 +223,9 @@ public class JdbcProducer extends DefaultProducer { List<Map<String, Object>> data = extractResultSetData(rs); exchange.getOut().setHeader(JdbcConstants.JDBC_ROW_COUNT, data.size()); - exchange.getOut().setHeader(JdbcConstants.JDBC_COLUMN_NAMES, data.get(0).keySet()); + if (!data.isEmpty()) { + exchange.getOut().setHeader(JdbcConstants.JDBC_COLUMN_NAMES, data.get(0).keySet()); + } exchange.getOut().setBody(data); } http://git-wip-us.apache.org/repos/asf/camel/blob/fdfd3d86/components/camel-jdbc/src/test/java/org/apache/camel/component/jdbc/JdbcRSMetaDataTest.java ---------------------------------------------------------------------- diff --git a/components/camel-jdbc/src/test/java/org/apache/camel/component/jdbc/JdbcRSMetaDataTest.java b/components/camel-jdbc/src/test/java/org/apache/camel/component/jdbc/JdbcRSMetaDataTest.java index 06bec20..ed4cce4 100644 --- a/components/camel-jdbc/src/test/java/org/apache/camel/component/jdbc/JdbcRSMetaDataTest.java +++ b/components/camel-jdbc/src/test/java/org/apache/camel/component/jdbc/JdbcRSMetaDataTest.java @@ -53,6 +53,25 @@ public class JdbcRSMetaDataTest extends AbstractJdbcTestSupport { assertTrue(columnNames.contains("NAME")); } + @Test + public void testJdbcRSMetaDataEmptyResult() { + Endpoint directHelloEndpoint = context.getEndpoint("direct:hello"); + Exchange directHelloExchange = directHelloEndpoint.createExchange(); + + directHelloExchange.getIn().setBody("select * from customer where id = 'cust0'"); + + Exchange out = template.send(directHelloEndpoint, directHelloExchange); + assertNotNull(out); + assertNotNull(out.getOut()); + + List<Map<String, Object>> returnValues = out.getOut().getBody(List.class); + assertNotNull(returnValues); + assertEquals(0, returnValues.size()); + + Set<String> columnNames = (Set<String>) out.getOut().getHeader(JdbcConstants.JDBC_COLUMN_NAMES); + assertNull(columnNames); + } + @Override protected RouteBuilder createRouteBuilder() throws Exception { return new RouteBuilder() {