need initClause when catch Exception and throw new Exception in cli
-------------------------------------------------------------------

                 Key: CASSANDRA-3312
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-3312
             Project: Cassandra
          Issue Type: Bug
            Reporter: Jackson Chung
            Assignee: Pavel Yaskevich
            Priority: Minor


through CASSANDRA-2746 , we added initCause to the Cli such that we could see 
more meaningful exception stacktrace when certain exception is thrown.

However, there are still some other area, eg:

executeGetWithConditions(Tree)
executeSet(Tree)
executeIncr(Tree, long)
etc etc...

basically any time you do a
{code}
            {
                throw new RuntimeException(e.getMessage());
            }
{code}

the real exception is lost. The right approach should be:

{code}
        catch (Exception e)
        {
            throw new RuntimeException(e.getMessage(), e);
        }
{code}

eg: i was getting this:
null
java.lang.RuntimeException
        at 
org.apache.cassandra.cli.CliClient.executeCLIStatement(CliClient.java:310)
        at org.apache.cassandra.cli.CliMain.processStatement(CliMain.java:217)
        at org.apache.cassandra.cli.CliMain.main(CliMain.java:345)
Caused by: java.lang.RuntimeException
        at 
org.apache.cassandra.cli.CliClient.executeGetWithConditions(CliClient.java:815)
        at 
org.apache.cassandra.cli.CliClient.executeCLIStatement(CliClient.java:208)
        ... 2 more


but i have no idea what the problem is with just the above stack trace.

with the fix, this would tell us more:
null
java.lang.RuntimeException
        at 
org.apache.cassandra.cli.CliClient.executeCLIStatement(CliClient.java:310)
        at org.apache.cassandra.cli.CliMain.processStatement(CliMain.java:217)
        at org.apache.cassandra.cli.CliMain.main(CliMain.java:345)
Caused by: java.lang.RuntimeException
        at 
org.apache.cassandra.cli.CliClient.executeGetWithConditions(CliClient.java:815)
        at 
org.apache.cassandra.cli.CliClient.executeCLIStatement(CliClient.java:208)
        ... 2 more
Caused by: UnavailableException()
        at 
org.apache.cassandra.thrift.Cassandra$get_indexed_slices_result.read(Cassandra.java:14065)
        at 
org.apache.cassandra.thrift.Cassandra$Client.recv_get_indexed_slices(Cassandra.java:810)
        at 
org.apache.cassandra.thrift.Cassandra$Client.get_indexed_slices(Cassandra.java:782)
        at 
org.apache.cassandra.cli.CliClient.executeGetWithConditions(CliClient.java:806)
        ... 3 more

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to