diff --git a/src/java/org/apache/cassandra/tools/SSTableExport.java b/src/java/org/apache/cassandra/tools/SSTableExport.java index 530245b37c..96c3be3a0c 100644 --- a/src/java/org/apache/cassandra/tools/SSTableExport.java +++ b/src/java/org/apache/cassandra/tools/SSTableExport.java @@ -24,6 +24,7 @@ import java.io.PrintStream; import java.util.*; import org.apache.cassandra.config.DatabaseDescriptor; +import org.apache.cassandra.config.ConfigurationException; import org.apache.cassandra.db.ColumnFamily; import org.apache.cassandra.db.DecoratedKey; import org.apache.cassandra.db.IColumn; @@ -339,7 +340,7 @@ public class SSTableExport * @param args command lines arguments * @throws IOException on failure to open/read/write files or output streams */ - public static void main(String[] args) throws IOException + public static void main(String[] args) throws IOException, ConfigurationException { String usage = String.format("Usage: %s [-k key [-k key [...]] -x key [-x key [...]]]%n", SSTableExport.class.getName()); @@ -366,7 +367,15 @@ public class SSTableExport String[] keys = cmd.getOptionValues(KEY_OPTION); String[] excludes = cmd.getOptionValues(EXCLUDEKEY_OPTION); String ssTableFileName = new File(cmd.getArgs()[0]).getAbsolutePath(); - + + DatabaseDescriptor.loadSchemas(); + if (DatabaseDescriptor.getNonSystemTables().size() < 1) + { + String msg = "no non-system tables are defined"; + System.err.println(msg); + throw new ConfigurationException(msg); + } + if (cmd.hasOption(ENUMERATEKEYS_OPTION)) enumeratekeys(ssTableFileName, System.out); else { diff --git a/src/java/org/apache/cassandra/tools/SSTableImport.java b/src/java/org/apache/cassandra/tools/SSTableImport.java index f222de0f4a..32d17a58a5 100644 --- a/src/java/org/apache/cassandra/tools/SSTableImport.java +++ b/src/java/org/apache/cassandra/tools/SSTableImport.java @@ -23,6 +23,7 @@ import java.io.IOException; import java.util.*; import org.apache.cassandra.config.CFMetaData; import org.apache.cassandra.config.DatabaseDescriptor; +import org.apache.cassandra.config.ConfigurationException; import org.apache.cassandra.db.ColumnFamily; import org.apache.cassandra.db.DecoratedKey; import org.apache.cassandra.db.SuperColumn; @@ -195,7 +196,7 @@ public class SSTableImport * @throws IOException on failure to open/read/write files or output streams * @throws ParseException on failure to parse JSON input */ - public static void main(String[] args) throws IOException, ParseException + public static void main(String[] args) throws IOException, ParseException, ConfigurationException { String usage = String.format("Usage: %s -K keyspace -c column_family %n", SSTableImport.class.getName()); @@ -222,6 +223,14 @@ public class SSTableImport String keyspace = cmd.getOptionValue(KEYSPACE_OPTION); String cfamily = cmd.getOptionValue(COLFAM_OPTION); + DatabaseDescriptor.loadSchemas(); + if (DatabaseDescriptor.getNonSystemTables().size() < 1) + { + String msg = "no non-system tables are defined"; + System.err.println(msg); + throw new ConfigurationException(msg); + } + importJson(json, keyspace, cfamily, ssTable); System.exit(0);