[
https://issues.apache.org/jira/browse/CASSANDRA-10401?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14988490#comment-14988490
]
Paulo Motta commented on CASSANDRA-10401:
-----------------------------------------
bq. Is there a test?
Added [simple
test|https://github.com/apache/cassandra/commit/21410a239d77a0e3c95c4ec35ec0d22b06cade1c]
checking for {{IllegalArgumentException}} when invalid ks/cf pair is specified.
bq. The only bike shedding I have is that if
ArrayBackedSortedColumns.factory.create() returns null why not check the output
of that instead instead of checking via a different path? Is this implying that
maybe ColumnFamily.Factory should be the the component that throws a more
reasonable exception?
I think it's better to add an explicit check for schema existence before trying
to instantiate an ArrayBackedSortedColumns, which is an internal class that
assumes the ks/cf exists (a similar check is done in other tools).
Tests will be available shortly below:
||2.1||2.2||
|[branch|https://github.com/apache/cassandra/compare/cassandra-2.1...pauloricardomg:10401-2.1]|[branch|https://github.com/apache/cassandra/compare/cassandra-2.2...pauloricardomg:10401-2.2]|
|[testall|http://cassci.datastax.com/view/Dev/view/paulomotta/job/pauloricardomg-10401-2.1-testall/lastCompletedBuild/testReport/]|[testall|http://cassci.datastax.com/view/Dev/view/paulomotta/job/pauloricardomg-10401-2.2-testall/lastCompletedBuild/testReport/]|
|[dtests|http://cassci.datastax.com/view/Dev/view/paulomotta/job/pauloricardomg-10401-2.1-dtest/lastCompletedBuild/testReport/]|[dtests|http://cassci.datastax.com/view/Dev/view/paulomotta/job/pauloricardomg-10401-2.2-dtest/lastCompletedBuild/testReport/]|
> Improve json2sstable error reporting on nonexistent column
> ----------------------------------------------------------
>
> Key: CASSANDRA-10401
> URL: https://issues.apache.org/jira/browse/CASSANDRA-10401
> Project: Cassandra
> Issue Type: Bug
> Components: Tools
> Environment: Cassandra 2.1.8.621
> Reporter: Jose Martinez Poblete
> Assignee: Paulo Motta
>
> We have the following table...
> {noformat}
> CREATE TABLE keyspace_name.table_name (
> col1 text,
> col2 text,
> col3 text,
> col4 text,
> PRIMARY KEY ((col1, col2), col3)
> ) WITH CLUSTERING ORDER BY (col3 ASC)
> {noformat}
> And the following json in a file created from sstable2json tool
> {noformat}
> [
> {"key": "This is col1:This is col2,
> "cells": [["This is col3:","",1443217787319002],
> ["This is col3:"col4","This is col4",1443217787319002]]}
> ]
> {noformat}
> Let's say we deleted that record form the DB and wanted to bring it back
> If we try to create an sstable from this data in a json file named
> test_file.json, we get a NPE
> {noformat}
> -bash-4.1$ json2sstable -K elp -c table_name-3264cbe063c211e5bc34e746786b7b29
> test_file.json
> /var/lib/cassandra/data/keyspace_name/table_name-3264cbe063c211e5bc34e746786b7b29/keyspace_name-table_name-ka-1-Data.db
> Importing 1 keys...
> java.lang.NullPointerException
> at
> org.apache.cassandra.tools.SSTableImport.getKeyValidator(SSTableImport.java:442)
> at
> org.apache.cassandra.tools.SSTableImport.importUnsorted(SSTableImport.java:316)
> at
> org.apache.cassandra.tools.SSTableImport.importJson(SSTableImport.java:287)
> at org.apache.cassandra.tools.SSTableImport.main(SSTableImport.java:514)
> ERROR: null
> -bash-4.1$
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)