in linkis-engineconn-plugins/hbase/hbase-shims-2.5.3/src/main/resources/hbase-ruby/shell/commands.rb [120:195]
def translate_hbase_exceptions(*args)
yield
rescue => cause
cause = cause.getCause if cause.is_a? java.io.UncheckedIOException
handle_exceptions(cause, *args) if respond_to?(:handle_exceptions)
if cause.is_a?(org.apache.hadoop.hbase.TableNotFoundException)
strs = cause.to_s.split(' ')
raise "Unknown table #{strs[0]}!" if strs.size == 1
raise "Unknown table #{args.first}!"
end
if cause.is_a?(org.apache.hadoop.hbase.TableNotEnabledException)
raise "Table #{args.first} is disabled!"
end
if cause.is_a?(org.apache.hadoop.hbase.TableNotDisabledException)
raise "Table #{cause.message} should be disabled!"
end
if cause.is_a?(org.apache.hadoop.hbase.UnknownRegionException)
raise cause.message
end
if cause.is_a?(org.apache.hadoop.hbase.exceptions.MergeRegionException)
strs = cause.message.split("\n")
raise(strs[0]).to_s unless strs.empty?
end
if cause.is_a?(org.apache.hadoop.hbase.NamespaceNotFoundException)
s = /.*NamespaceNotFoundException: (?<namespace>[^\n]+).*/.match(cause.message)
raise "Unknown namespace #{s['namespace']}!"
end
if cause.is_a?(org.apache.hadoop.hbase.snapshot.SnapshotDoesNotExistException)
raise "Unknown snapshot #{args.first}!"
end
if cause.is_a?(org.apache.hadoop.hbase.client.RetriesExhaustedWithDetailsException)
exceptions = cause.getCauses
exceptions.each do |exception|
if exception.is_a?(org.apache.hadoop.hbase.regionserver.NoSuchColumnFamilyException)
valid_cols = table(args.first).get_all_columns.map { |c| c + '*' }
raise "Unknown column family! Valid column names: #{valid_cols.join(', ')}"
end
end
end
if cause.is_a?(org.apache.hadoop.hbase.TableExistsException)
strs = cause.to_s.split(' ')
raise "Table already exists: #{strs[0]}!" if strs.size == 1
raise "Table already exists: #{args.first}!"
end
if cause.is_a?(org.apache.hadoop.hbase.security.AccessDeniedException)
str = java.lang.String.new(cause.to_s)
strs = str.split("\n")
raise (strs[0]).to_s unless strs.empty?
end
if cause.is_a?(org.apache.hadoop.hbase.quotas.SpaceLimitingException)
strs = cause.message.split("\n")
raise(strs[0]).to_s unless strs.empty?
end
if cause.is_a?(org.apache.hadoop.hbase.client.RetriesExhaustedException)
str = cause.cause.to_s
regex = /.*RpcThrottlingException: (?<message>[^\n]+).*/
error = regex.match(str)
raise error[:message].capitalize unless error.nil?
end
if cause.is_a?(org.apache.hadoop.hbase.DoNotRetryIOException)
regex = /.*UnsupportedOperationException: quota support disabled.*/
error = regex.match(cause.message)
error_msg = 'Quota Support disabled. Please enable in configuration.'
raise error_msg unless error.nil?
end
raise cause
end