You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by zh...@apache.org on 2018/04/24 14:06:00 UTC
[02/23] hbase git commit: HBASE-20466 Consistently use override
mechanism for exempt classes in CoprocessorClassloader
HBASE-20466 Consistently use override mechanism for exempt classes in CoprocessorClassloader
Signed-off-by: tedyu <yu...@gmail.com>
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/a8be3bb8
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/a8be3bb8
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/a8be3bb8
Branch: refs/heads/HBASE-19064
Commit: a8be3bb814378805a1b5eae85826c9eff3768534
Parents: e73ba58
Author: Rich Fecher <rf...@gmail.com>
Authored: Fri Apr 20 12:47:50 2018 -0400
Committer: tedyu <yu...@gmail.com>
Committed: Mon Apr 23 07:47:30 2018 -0700
----------------------------------------------------------------------
.../hbase/regionserver/RegionCoprocessorHost.java | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/a8be3bb8/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.java
index d73c012..dea13ca 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.java
@@ -36,6 +36,7 @@ import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.CompareOperator;
import org.apache.hadoop.hbase.HBaseConfiguration;
+import org.apache.hadoop.hbase.HConstants;
import org.apache.hadoop.hbase.RawCellBuilder;
import org.apache.hadoop.hbase.RawCellBuilderFactory;
import org.apache.hadoop.hbase.ServerName;
@@ -350,7 +351,16 @@ public class RegionCoprocessorHost
cl = CoprocessorHost.class.getClassLoader();
}
Thread.currentThread().setContextClassLoader(cl);
- cl.loadClass(attr.getClassName());
+ if (cl instanceof CoprocessorClassLoader) {
+ String[] includedClassPrefixes = null;
+ if (conf.get(HConstants.CP_HTD_ATTR_INCLUSION_KEY) != null) {
+ String prefixes = attr.conf.get(HConstants.CP_HTD_ATTR_INCLUSION_KEY);
+ includedClassPrefixes = prefixes.split(";");
+ }
+ ((CoprocessorClassLoader)cl).loadClass(attr.getClassName(), includedClassPrefixes);
+ } else {
+ cl.loadClass(attr.getClassName());
+ }
} catch (ClassNotFoundException e) {
throw new IOException("Class " + attr.getClassName() + " cannot be loaded", e);
} finally {