You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Leon Bein (Jira)" <ji...@apache.org> on 2021/01/16 15:07:00 UTC
[jira] [Created] (HBASE-25516) jdk11 reflective access
Field.class.getDeclaredField("modifiers") not supported
Leon Bein created HBASE-25516:
---------------------------------
Summary: jdk11 reflective access Field.class.getDeclaredField("modifiers") not supported
Key: HBASE-25516
URL: https://issues.apache.org/jira/browse/HBASE-25516
Project: HBase
Issue Type: Bug
Components: Filesystem Integration
Affects Versions: 2.3.3
Environment: Windows 10, JavaSE11, pom dependencies:
{code:java}
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-testing-util</artifactId>
<version>2.3.3</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>{code}
Reporter: Leon Bein
The reflective access
{code:java}
Field.class.getDeclaredField("modifiers")
{code}
in HFileSystem.java:334 leads to a warning (and probably error?):
{code:java}
java.lang.NoSuchFieldException: modifiers
at java.base/java.lang.Class.getDeclaredField(Class.java:2417)
at org.apache.hadoop.hbase.fs.HFileSystem.addLocationsOrderInterceptor(HFileSystem.java:334)
at org.apache.hadoop.hbase.fs.HFileSystem.addLocationsOrderInterceptor(HFileSystem.java:291)
at org.apache.hadoop.hbase.fs.HFileSystem.<init>(HFileSystem.java:96)
at org.apache.hadoop.hbase.fs.HFileSystem.get(HFileSystem.java:465)
at org.apache.hadoop.hbase.HBaseTestingUtility.getTestFileSystem(HBaseTestingUtility.java:3330)
at org.apache.hadoop.hbase.HBaseTestingUtility.getNewDataTestDirOnTestFS(HBaseTestingUtility.java:565)
at org.apache.hadoop.hbase.HBaseTestingUtility.setupDataTestDirOnTestFS(HBaseTestingUtility.java:554)
at org.apache.hadoop.hbase.HBaseTestingUtility.getDataTestDirOnTestFS(HBaseTestingUtility.java:527)
at org.apache.hadoop.hbase.HBaseTestingUtility.getDefaultRootDirPath(HBaseTestingUtility.java:1415)
at org.apache.hadoop.hbase.HBaseTestingUtility.createRootDir(HBaseTestingUtility.java:1446)
at org.apache.hadoop.hbase.HBaseTestingUtility.startMiniHBaseCluster(HBaseTestingUtility.java:1157)
at org.apache.hadoop.hbase.HBaseTestingUtility.startMiniCluster(HBaseTestingUtility.java:1144)
at foo.Main.main(Main.java:11)
{code}
when running the following code:
{code:java}
public static void main(String[] args) throws Exception {
HBaseTestingUtility utility = new HBaseTestingUtility(HBaseConfiguration.create());
utility.startMiniCluster(StartMiniClusterOption.builder().numRegionServers(3).build());
}{code}
From my knowledge this results from the more restrictive reflection protection of java.base classes in the newer java versions.
Related to HBASE-22972
--
This message was sent by Atlassian Jira
(v8.3.4#803005)