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() {