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