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

ranpanfeng updated HBASE-22870:
-------------------------------
    Description: 
HMaster crashes at org/apache/hadoop/hbase/regionserver/HRegionServer.java:1044
**A private static nested class can not be instantiated via reflection.**

**code snippet**

```
 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);
 }
```

**log in product environtment**
```
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)
```

> 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: 2.1.5
>
>   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**
> ```
>  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);
>  }
> ```
> **log in product environtment**
> ```
> 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)
> ```



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

Reply via email to