You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@metamodel.apache.org by to...@apache.org on 2015/02/02 10:04:02 UTC

metamodel git commit: METAMODEL-109: CassandraDataContext throws IllegalArgumentException with proper message instead of NPE when keystore does not exist.

Repository: metamodel
Updated Branches:
  refs/heads/master 406422c67 -> 3a7483c89


METAMODEL-109: CassandraDataContext throws IllegalArgumentException with
proper message instead of NPE when keystore does not exist.

Project: http://git-wip-us.apache.org/repos/asf/metamodel/repo
Commit: http://git-wip-us.apache.org/repos/asf/metamodel/commit/3a7483c8
Tree: http://git-wip-us.apache.org/repos/asf/metamodel/tree/3a7483c8
Diff: http://git-wip-us.apache.org/repos/asf/metamodel/diff/3a7483c8

Branch: refs/heads/master
Commit: 3a7483c89b2e4ab15ca6a2af514fe7679718603c
Parents: 406422c
Author: tomaszguzialek <to...@humaninference.com>
Authored: Fri Jan 30 13:33:26 2015 +0100
Committer: tomaszguzialek <to...@humaninference.com>
Committed: Fri Jan 30 13:33:26 2015 +0100

----------------------------------------------------------------------
 .../metamodel/cassandra/CassandraDataContext.java      |  3 +++
 .../metamodel/cassandra/CassandraDataContextTest.java  | 13 +++++++++++++
 2 files changed, 16 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/metamodel/blob/3a7483c8/cassandra/src/main/java/org/apache/metamodel/cassandra/CassandraDataContext.java
----------------------------------------------------------------------
diff --git a/cassandra/src/main/java/org/apache/metamodel/cassandra/CassandraDataContext.java b/cassandra/src/main/java/org/apache/metamodel/cassandra/CassandraDataContext.java
index 03f35ae..f7af49b 100644
--- a/cassandra/src/main/java/org/apache/metamodel/cassandra/CassandraDataContext.java
+++ b/cassandra/src/main/java/org/apache/metamodel/cassandra/CassandraDataContext.java
@@ -105,6 +105,9 @@ public class CassandraDataContext extends QueryPostprocessDataContext implements
     public static SimpleTableDef[] detectSchema(Cluster cluster, String keyspaceName) {
         final Metadata metadata = cluster.getMetadata();
         final KeyspaceMetadata keyspace = metadata.getKeyspace(keyspaceName);
+        if (keyspace == null) {
+            throw new IllegalArgumentException("Keyspace '" + keyspaceName + "' does not exist in the database");
+        }
         final Collection<TableMetadata> tables = keyspace.getTables();
         final SimpleTableDef[] result = new SimpleTableDef[tables.size()];
         int i = 0;

http://git-wip-us.apache.org/repos/asf/metamodel/blob/3a7483c8/cassandra/src/test/java/org/apache/metamodel/cassandra/CassandraDataContextTest.java
----------------------------------------------------------------------
diff --git a/cassandra/src/test/java/org/apache/metamodel/cassandra/CassandraDataContextTest.java b/cassandra/src/test/java/org/apache/metamodel/cassandra/CassandraDataContextTest.java
index b736ab1..a48e3a9 100644
--- a/cassandra/src/test/java/org/apache/metamodel/cassandra/CassandraDataContextTest.java
+++ b/cassandra/src/test/java/org/apache/metamodel/cassandra/CassandraDataContextTest.java
@@ -197,6 +197,19 @@ public class CassandraDataContextTest extends CassandraTestCase {
         assertTrue(thrown);
     }
 
+    public void testNonExistentKeystore() {
+        if (!isConfigured()) {
+            System.err.println(getInvalidConfigurationMessage());
+            return;
+        }
+        try {
+            new CassandraDataContext(cluster, "nonExistentKeyspace");
+            fail();
+        } catch (IllegalArgumentException e) {
+            assertNotNull(e);
+        }
+    }
+
     private void createCassandraKeySpaceAndTable(Session session) {
         session.execute("CREATE KEYSPACE IF NOT EXISTS " + getKeyspaceName() + " WITH replication "
                 + "= {'class':'SimpleStrategy', 'replication_factor':1};");