Repository: hbase
Updated Branches:
  refs/heads/master 22d9766aa -> 2392a3e43


HBASE-13058 Hbase shell command 'scan' for non existent table shows unnecessary 
info for one unrelated existent table. (Abhishek Kumar)


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/2392a3e4
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/2392a3e4
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/2392a3e4

Branch: refs/heads/master
Commit: 2392a3e43794029170acac84a37300512e1393f1
Parents: 22d9766
Author: Srikanth Srungarapu <ssrungar...@cloudera.com>
Authored: Wed Apr 1 23:29:55 2015 -0700
Committer: Srikanth Srungarapu <ssrungar...@cloudera.com>
Committed: Wed Apr 1 23:29:55 2015 -0700

----------------------------------------------------------------------
 hbase-shell/src/main/ruby/shell/commands.rb       | 18 +++++++-----------
 .../main/ruby/shell/commands/clone_snapshot.rb    |  7 +++++++
 2 files changed, 14 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/2392a3e4/hbase-shell/src/main/ruby/shell/commands.rb
----------------------------------------------------------------------
diff --git a/hbase-shell/src/main/ruby/shell/commands.rb 
b/hbase-shell/src/main/ruby/shell/commands.rb
index 2128164..2abccdd 100644
--- a/hbase-shell/src/main/ruby/shell/commands.rb
+++ b/hbase-shell/src/main/ruby/shell/commands.rb
@@ -102,9 +102,13 @@ module Shell
 
         # Get the special java exception which will be handled
         cause = e.cause
+         # let individual command handle exceptions first
+        if self.respond_to?(:handle_exceptions)
+          self.handle_exceptions(cause, *args)
+        end
+        # Global HBase exception handling below if not handled by respective 
command above
         if cause.kind_of?(org.apache.hadoop.hbase.TableNotFoundException) then
-          str = java.lang.String.new("#{cause}")
-          raise "Unknown table #{str}!"
+          raise "Unknown table #{args.first}!"
         end
         if 
cause.kind_of?(org.apache.hadoop.hbase.client.RetriesExhaustedWithDetailsException)
 then
           exceptions = cause.getCauses
@@ -116,15 +120,7 @@ module Shell
           end
         end
         if cause.kind_of?(org.apache.hadoop.hbase.TableExistsException) then
-          str = java.lang.String.new("#{cause}")
-          strs = str.split("\n")
-          if strs.size > 0 then
-            s = strs[0].split(' ');
-            if(s.size > 1)
-              raise "Table already exists: #{s[1]}!"
-            end
-              raise "Table already exists: #{strs[0]}!"
-          end
+          raise "Table already exists: #{args.first}!"
         end
         # To be safe, here only AccessDeniedException is considered. In future
         # we might support more in more generic approach when possible.

http://git-wip-us.apache.org/repos/asf/hbase/blob/2392a3e4/hbase-shell/src/main/ruby/shell/commands/clone_snapshot.rb
----------------------------------------------------------------------
diff --git a/hbase-shell/src/main/ruby/shell/commands/clone_snapshot.rb 
b/hbase-shell/src/main/ruby/shell/commands/clone_snapshot.rb
index 8c193bb..0498c8e 100644
--- a/hbase-shell/src/main/ruby/shell/commands/clone_snapshot.rb
+++ b/hbase-shell/src/main/ruby/shell/commands/clone_snapshot.rb
@@ -36,6 +36,13 @@ EOF
           admin.clone_snapshot(snapshot_name, table)
         end
       end
+
+      def handle_exceptions(cause, *args)
+        if cause.kind_of?(org.apache.hadoop.hbase.TableExistsException) then
+          tableName = args[1]
+          raise "Table already exists: #{tableName}!"
+        end
+      end
     end
   end
 end

Reply via email to