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 2013/07/18 13:45:31 UTC
git commit: CAMEL-6560: Fixed potential exception for empty
resultset. Thanks to Radek Kraus for the patch.
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 <da...@apache.org>
Authored: Thu Jul 18 13:45:18 2013 +0200
Committer: Claus Ibsen <da...@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() {