[ 
https://issues.apache.org/jira/browse/ARROW-18020?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17616981#comment-17616981
 ] 

David Li commented on ARROW-18020:
----------------------------------

Unsafe is a hard requirement and I'm not aware of any way to replace it.

I thought we've discussed this on the ML and we cannot drop Java 8.

> [Java][CI] Java Support Version Policy
> --------------------------------------
>
>                 Key: ARROW-18020
>                 URL: https://issues.apache.org/jira/browse/ARROW-18020
>             Project: Apache Arrow
>          Issue Type: Improvement
>          Components: Documentation, Java
>    Affects Versions: 11.0.0
>            Reporter: David Dali Susanibar Arce
>            Priority: Major
>
> *Current status*
> 1. Apache Arrow Java is compiled and tested by JDK 8, 11, 17, 18 but packaged 
> with source/target JDK8
> *Changes implemented by this PR* 
> [https://github.com/apache/arrow/pull/13072|https://github.com/apache/arrow/pull/13072*]
> 1. Apache Arrow Java project are continuing compiled and tested by JDK 8, 11, 
> 17, 18 but packaged with source/target JDK8
> 2. If Apache Arrow Java project is building with JDK11+ validate the project 
> are tested against the module-info.java definitions
> 3. There are not CI implementation to deliver Jar library with JDK8 & JDK11+ 
> (we need to define what will be our next step for JDK versions)
> 4. We probably are breaking APIs because we are changing package name to 
> ensure unique package names on the project required by module-info.java
> 5. We are added a new project that contains Apache Arrow Netty custom 
> implementation needed for
> 6. There are remaining modules pending to implement modules with 
> module-info.java files. This PR contains modules-info.java for: Format / 
> Memory / Vector
> *Next steps*
> 1. Implement cross-compilation with JDK 11+ and packaging with release=8 
> (continue offering support for JDK8):
> That is not posible, if we compile with --release=8 we will have problems to 
> access sun.misc.Unsafe that is not as exposed/public/documented API for N >= 
> 9: -source N -target N --system <documented-APIs-from-N>.    
> ([https://openjdk.org/jeps/247])
>  
> 2. We have these options for our next steps:
>  - {*}Option 1{*}.- Maintain all as it is now, continue packaging with 
> source/target JDK8
>  - {*}Option 2{*}{*}.-{*} Change/Update/Modify use of sun.misc. classes 
> dependencies to be able to support cross-compilation (-release 8) to 
> packaging with JDK11+ and continue offering support for JDK8 also
> {code:java}
> jdeps --jdk-internals arrow-memory-unsafe-10.0.0-SNAPSHOT.jar
> arrow-memory-unsafe-10.0.0-SNAPSHOT.jar -> jdk.unsupported
>    org.apache.arrow.memory.unsafe.UnsafeAllocationManager -> sun.misc.Unsafe  
>                                   JDK internal API (jdk.unsupported)
> Warning: JDK internal APIs are unsupported and private to JDK implementation 
> that are
> subject to be removed or changed incompatibly and could break your 
> application.
> Please modify your code to eliminate dependence on any JDK internal APIs.
> For the most recent update on JDK internal API replacements, please check:
> https://wiki.openjdk.java.net/display/JDK8/Java+Dependency+Analysis+Tool
> JDK Internal API                         Suggested Replacement
> ----------------                         ---------------------
> sun.misc.Unsafe                          See http://openjdk.java.net/jeps/260 
> {code}
>  - {*}Option 3{*}.- +Drop support for JDK8+ and starting offering support to 
> packaging with JDK11+, this will be the right approach, but, this thread does 
> not have an agreement about to drop JDK8 support ([JAVA] JDK Support Policy - 
> [https://lists.apache.org/thread/phpgpydtt3yrgnncdyv4qdq1gf02s0yj])
> If you decided to push some of this options please use that 
> [ML|[https://lists.apache.org/thread/phpgpydtt3yrgnncdyv4qdq1gf02s0yj]] to 
> move on next steps.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to