From 7f784356194642abccc46edea577bb9fcf00d69e Mon Sep 17 00:00:00 2001 From: Ashish Singhi Date: Fri, 27 Feb 2015 11:16:49 +0530 Subject: [PATCH] HBASE-13112 security.rb and visibility_labels.rb leaks connection --- hbase-shell/src/main/ruby/hbase/hbase.rb | 4 ++-- hbase-shell/src/main/ruby/hbase/security.rb | 11 +++++++---- hbase-shell/src/main/ruby/hbase/visibility_labels.rb | 13 +++++++------ 3 files changed, 16 insertions(+), 12 deletions(-) diff --git a/hbase-shell/src/main/ruby/hbase/hbase.rb b/hbase-shell/src/main/ruby/hbase/hbase.rb index ca3e90c..89700a4 100644 --- a/hbase-shell/src/main/ruby/hbase/hbase.rb +++ b/hbase-shell/src/main/ruby/hbase/hbase.rb @@ -56,11 +56,11 @@ module Hbase end def security_admin(formatter) - ::Hbase::SecurityAdmin.new(configuration, formatter) + ::Hbase::SecurityAdmin.new(@connection.getAdmin, formatter) end def visibility_labels_admin(formatter) - ::Hbase::VisibilityLabelsAdmin.new(configuration, formatter) + ::Hbase::VisibilityLabelsAdmin.new(@connection.getAdmin, formatter) end def shutdown diff --git a/hbase-shell/src/main/ruby/hbase/security.rb b/hbase-shell/src/main/ruby/hbase/security.rb index 5262f45..bfdd733 100644 --- a/hbase-shell/src/main/ruby/hbase/security.rb +++ b/hbase-shell/src/main/ruby/hbase/security.rb @@ -24,13 +24,16 @@ module Hbase class SecurityAdmin include HBaseConstants - def initialize(configuration, formatter) - @config = configuration - @connection = org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(@config) - @admin = @connection.getAdmin() + def initialize(admin, formatter) + @admin = admin + @config = @admin.getConfiguration() @formatter = formatter end + def close + @admin.close + end + #---------------------------------------------------------------------------------------------- def grant(user, permissions, table_name=nil, family=nil, qualifier=nil) security_available? diff --git a/hbase-shell/src/main/ruby/hbase/visibility_labels.rb b/hbase-shell/src/main/ruby/hbase/visibility_labels.rb index 61a49e8..a3f8b1a 100644 --- a/hbase-shell/src/main/ruby/hbase/visibility_labels.rb +++ b/hbase-shell/src/main/ruby/hbase/visibility_labels.rb @@ -24,13 +24,14 @@ java_import org.apache.hadoop.hbase.util.Bytes module Hbase class VisibilityLabelsAdmin - def initialize(configuration, formatter) - @config = configuration + def initialize(admin, formatter) + @admin = admin + @config = @admin.getConfiguration() @formatter = formatter - - # @connection = org.apache.hadoop.hbase.client.ConnectionFactory(configuration) - # @admin = @connection.getAdmin() - @admin = org.apache.hadoop.hbase.client.HBaseAdmin.new(configuration) + end + + def close + @admin.close end def add_labels(*args) -- 1.9.2.msysgit.0