[ https://issues.apache.org/jira/browse/CASSANDRA-9608?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15371835#comment-15371835 ]
Carlos Abad commented on CASSANDRA-9608: ---------------------------------------- Carlos Abad here from the Intel Java team. I've been able to build Cassandra with JDK9 (build 125) applying the modifications noted below. However the build only pass 70% of the Unit tests. *At least Apache Ant version 1.9.7 is required for JDK9. Previous version are unable to load the JavaScript script engine manager in JDK9. build.xml: *Generating Bytecode for Java 9. Source is still written for Java 8. *Java 9 removed -Xbootclasspath/p command option. Without this option Cassandra will depend on the given Java classpath to include the CRC32 class *To avoid "Annotation generator had thrown the exception. java.lang.NoClassDefFoundError: javax/annotation/Generated" need to add "-addmods java.annotations.common" to the javac task of the "build-test" target. src/java/org/apache/cassandra/utils/Throwables.java: *Stream.of() throws an exception now, need to be captured. src/java/org/apache/cassandra/utils/concurrent/Locks.java: *sun.misc.unsafe is going away. Fortunately cassandra.utils.concurrent.Locks is only used in one place (db/partitions/AtomicBTreePartition, see below). It'll be enough to modify AtomicBTreePartitions and remove this class. src/java/org/apache/cassandra/db/partitions/AtomicBTreePartition.java: *This is the only place where the class cassandra.utils.concurrent.Locks is used. We'll modify it to use Java's ReentrantLock instead. > Support Java 9 > -------------- > > Key: CASSANDRA-9608 > URL: https://issues.apache.org/jira/browse/CASSANDRA-9608 > Project: Cassandra > Issue Type: Task > Reporter: Robert Stupp > Priority: Minor > > This ticket is intended to group all issues found to support Java 9 in the > future. > From what I've found out so far: > * Maven dependency {{com.sun:tools:jar:0}} via cobertura cannot be resolved. > It can be easily solved using this patch: > {code} > - <dependency groupId="net.sourceforge.cobertura" > artifactId="cobertura"/> > + <dependency groupId="net.sourceforge.cobertura" > artifactId="cobertura"> > + <exclusion groupId="com.sun" artifactId="tools"/> > + </dependency> > {code} > * Another issue is that {{sun.misc.Unsafe}} no longer contains the methods > {{monitorEnter}} + {{monitorExit}}. These methods are used by > {{o.a.c.utils.concurrent.Locks}} which is only used by > {{o.a.c.db.AtomicBTreeColumns}}. > I don't mind to start working on this yet since Java 9 is in a too early > development phase. -- This message was sent by Atlassian JIRA (v6.3.4#6332)