[jira] [Commented] (HBASE-25516) jdk11 reflective access Field.class.getDeclaredField("modifiers") not supported

2021-06-29 Thread Wei-Chiu Chuang (Jira)


[ 
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

2021-01-18 Thread Wei-Chiu Chuang (Jira)


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