[ 
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)

Reply via email to