You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Bharath Vissapragada (Jira)" <ji...@apache.org> on 2020/06/16 01:24:00 UTC

[jira] [Updated] (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 ]

Bharath Vissapragada updated HBASE-22870:
-----------------------------------------
    Fix Version/s: 1.7.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
>            Assignee: ranpanfeng
>            Priority: Major
>             Fix For: 3.0.0-alpha-1, 2.3.0, 2.2.1, 2.1.6, 1.7.0
>
>   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
(v8.3.4#803005)