Repository: hbase
Updated Branches:
  refs/heads/branch-2 035515d4c -> 75004408b


HBASE-20466 Consistently use override mechanism for exempt classes in 
CoprocessorClassloader

Signed-off-by: tedyu <[email protected]>


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

Branch: refs/heads/branch-2
Commit: 75004408b0762cce2ecb0491c50bab113d9f20b4
Parents: 035515d
Author: Rich Fecher <[email protected]>
Authored: Fri Apr 20 12:47:50 2018 -0400
Committer: tedyu <[email protected]>
Committed: Mon Apr 23 07:48:13 2018 -0700

----------------------------------------------------------------------
 .../hbase/regionserver/RegionCoprocessorHost.java       | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/75004408/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 {

Reply via email to