[ 
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)

Reply via email to