[ https://issues.apache.org/jira/browse/HBASE-25516?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17680264#comment-17680264 ]
Bryan Beaudreault commented on HBASE-25516: ------------------------------------------- Thank you! > [JDK17] reflective access Field.class.getDeclaredField("modifiers") not > supported > --------------------------------------------------------------------------------- > > Key: HBASE-25516 > URL: https://issues.apache.org/jira/browse/HBASE-25516 > Project: HBase > Issue Type: Sub-task > 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 > Assignee: Wei-Chiu Chuang > Priority: Major > Labels: jdk11 > Fix For: 3.0.0-alpha-2, 2.6.0, 2.4.17, 2.5.4 > > > 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.20.10#820010)