[jira] [Commented] (HBASE-25516) jdk11 reflective access Field.class.getDeclaredField("modifiers") not supported
[ https://issues.apache.org/jira/browse/HBASE-25516?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17371277#comment-17371277 ] Wei-Chiu Chuang commented on HBASE-25516: - As it turns out, while it doesn't break on JDK11, HBase UT fails due to this issue when running on JDK17. > 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} > > org.apache.hbase > hbase-testing-util > 2.3.3 > > > junit > junit > 4.12 > {code} >Reporter: Leon Bein >Priority: Major > Labels: jdk11 > > 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.(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)
[jira] [Commented] (HBASE-25516) jdk11 reflective access Field.class.getDeclaredField("modifiers") not supported
[ https://issues.apache.org/jira/browse/HBASE-25516?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17267588#comment-17267588 ] Wei-Chiu Chuang commented on HBASE-25516: - What exact version of 1. JDK (Oracle or OpenJDK?) 2. Hadoop is used? It looks like an intentional change in JDK https://bugs.openjdk.java.net/browse/JDK-8217225 since JDK12+12 not sure if it's backported to JDK11. > 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} > > org.apache.hbase > hbase-testing-util > 2.3.3 > > > junit > junit > 4.12 > {code} >Reporter: Leon Bein >Priority: Major > Labels: jdk11 > > 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.(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)