[
https://issues.apache.org/jira/browse/HBASE-8798?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13698178#comment-13698178
]
Matteo Bertozzi commented on HBASE-8798:
----------------------------------------
removing the rescue/raise results in a different behaviour. (It shows the full
stack trace of the exception)
When I mentioned that only the TableExists exception from the snapshot code is
"the good one" I was referring to changing the shell code to print the
exception message, but to do that you've to change the other couple of throws
new TableException() to have a better message to show... at the moment is only
the table name.. or alternative rely on the message to be just the table name..
and change the exception message raised by clone snapshot
> Fix a minor bug in shell command with clone_snapshot table error
> ----------------------------------------------------------------
>
> Key: HBASE-8798
> URL: https://issues.apache.org/jira/browse/HBASE-8798
> Project: HBase
> Issue Type: Bug
> Components: shell, snapshots
> Affects Versions: 0.94.8, 0.95.1
> Reporter: Jerry He
> Assignee: Jerry He
> Priority: Minor
> Attachments: 8798-trunk-v2.txt, HBASE-8798-trunk.patch
>
>
> In HBase shell, the syntax for clone_snapshot is:
> hbase> clone_snapshot 'snapshotName', 'tableName'
> If the target table already exists, we'll get an error.
> For example:
> ------------------
> hbase(main):011:0> clone_snapshot 'mysnapshot1', 'TestTable'
> ERROR: Table already exists: mysnapshot1!
> Here is some help for this command:
> Create a new table by cloning the snapshot content.
> There're no copies of data involved.
> And writing on the newly created table will not influence the snapshot data.
> Examples:
> hbase> clone_snapshot 'snapshotName', 'tableName'
> ----------------------
> The bug is in the ERROR message:
> *ERROR: Table already exists: mysnapshot1!*
> We should output the table name, not the snapshot name.
> Currently, in command.rb, we have the output fixed as args.first for
> TableExistsException:
> {code}
> def translate_hbase_exceptions(*args)
> yield
> rescue org.apache.hadoop.hbase.exceptions.TableNotFoundException
> raise "Unknown table #{args.first}!"
> rescue org.apache.hadoop.hbase.exceptions.NoSuchColumnFamilyException
> valid_cols = table(args.first).get_all_columns.map { |c| c + '*' }
> raise "Unknown column family! Valid column names:
> #{valid_cols.join(", ")}"
> rescue org.apache.hadoop.hbase.exceptions.TableExistsException
> raise "Table already exists: #{args.first}!"
> end
> {code}
> This is fine with commands like 'create tableName ...' but not
> 'clone_snapshot snapshotName tableName'.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira