You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "Reid Chan (JIRA)" <ji...@apache.org> on 2019/08/18 05:30:00 UTC

[jira] [Resolved] (HBASE-22870) reflection fails to access a private nested class

     [ https://issues.apache.org/jira/browse/HBASE-22870?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Reid Chan resolved HBASE-22870.
-------------------------------
       Resolution: Fixed
    Fix Version/s:     (was: 2.1.5)
                   2.2.2
                   2.1.7
                   2.3.0
                   3.0.0

> reflection fails to access a private nested class
> -------------------------------------------------
>
>                 Key: HBASE-22870
>                 URL: https://issues.apache.org/jira/browse/HBASE-22870
>             Project: HBase
>          Issue Type: Bug
>          Components: master
>    Affects Versions: 2.1.5
>            Reporter: ranpanfeng
>            Priority: Major
>             Fix For: 3.0.0, 2.3.0, 2.1.7, 2.2.2
>
>   Original Estimate: 1h
>  Remaining Estimate: 1h
>
> HMaster crashes at org/apache/hadoop/hbase/regionserver/HRegionServer.java:1044
> *A private static nested class can not be instantiated via reflection.*
> *code snippet*
>  
> {code:java}
>  
> try {
> abortTimeoutTask =
> Class.forName(conf.get(ABORT_TIMEOUT_TASK, SystemExitWhenAbortTimeout.class.getName()))
> .asSubclass(TimerTask.class).getDeclaredConstructor().newInstance();
> } catch (Exception e) {
> LOG.warn("Initialize abort timeout task failed", e);
> }{code}
>  
>  
> *log in product environtment*
> {code:java}
> 2019-08-16 18:01:40,737 [WARN ] HRegionServer:1046 Initialize abort timeout task failed
>  java.lang.IllegalAccessException: Class org.apache.hadoop.hbase.regionserver.HRegionServer can not access a member of class org.apache.hadoop.hbase.regionss
>  erver.HRegionServer$SystemExitWhenAbortTimeout with modifiers "private"
>  at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:102)
>  at java.lang.reflect.AccessibleObject.slowCheckMemberAccess(AccessibleObject.java:296)
>  at java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:288)
>  at java.lang.reflect.Constructor.newInstance(Constructor.java:413)
>  at org.apache.hadoop.hbase.regionserver.HRegionServer.run(HRegionServer.java:1044)
>  at org.apache.hadoop.hbase.master.HMaster.run(HMaster.java:598){code}



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)