Skip to content

Fix NoSuchMethodError happening on JDK 21#909

Merged
fawind merged 1 commit intopalantir:developfrom
gnodet:i885-follow-up
Aug 7, 2023
Merged

Fix NoSuchMethodError happening on JDK 21#909
fawind merged 1 commit intopalantir:developfrom
gnodet:i885-follow-up

Conversation

@gnodet
Copy link
Copy Markdown
Contributor

@gnodet gnodet commented Aug 2, 2023

Before this PR

(fixes #885)

The previous PR #886 has
been merged but unfortunately is not sufficient to allow the code formatter to
run on JDK 21.

[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for JLine Parent 3.23.1-SNAPSHOT:
[INFO] 
[INFO] JLine Parent ....................................... SUCCESS [  0.888 s]
[INFO] JLine Native Library ............................... FAILURE [  0.077 s]
[INFO] JLine Terminal ..................................... SKIPPED
[INFO] JLine JNA Terminal ................................. SKIPPED
[INFO] JLine JANSI Terminal ............................... SKIPPED
[INFO] JLine Reader ....................................... SKIPPED
[INFO] JLine Style ........................................ SKIPPED
[INFO] JLine Builtins ..................................... SKIPPED
[INFO] JLine Console ...................................... SKIPPED
[INFO] JLine Groovy ....................................... SKIPPED
[INFO] JLine Remote SSH ................................... SKIPPED
[INFO] JLine Remote Telnet ................................ SKIPPED
[INFO] JLine Demo ......................................... SKIPPED
[INFO] JLine Graal Demo ................................... SKIPPED
[INFO] JLine Bundle ....................................... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  1.005 s (Wall Clock)
[INFO] Finished at: 2023-08-02T10:33:31+02:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal com.diffplug.spotless:spotless-maven-plugin:2.37.0:apply (default) on project jline-native: Execution default of goal 
com.diffplug.spotless:spotless-maven-plugin:2.37.0:apply failed: An API incompatibility was encountered while executing com.diffplug.spotless:spotless-maven-plugin:2.37.0:apply: 
java.lang.NoSuchMethodError: 'com.sun.tools.javac.tree.JCTree com.sun.tools.javac.tree.JCTree$JCImport.getQualifiedIdentifier()'
[ERROR] -----------------------------------------------------
[ERROR] realm =    plugin>com.diffplug.spotless:spotless-maven-plugin:2.37.0-1699762855
[ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
[ERROR] urls[0] = file:/Users/gnodet/.m2/repository/com/diffplug/spotless/spotless-maven-plugin/2.37.0/spotless-maven-plugin-2.37.0.jar
[ERROR] urls[1] = file:/Users/gnodet/.m2/repository/com/diffplug/spotless/spotless-lib/2.39.0/spotless-lib-2.39.0.jar
[ERROR] urls[2] = file:/Users/gnodet/.m2/repository/com/diffplug/spotless/spotless-lib-extra/2.39.0/spotless-lib-extra-2.39.0.jar
[ERROR] urls[3] = file:/Users/gnodet/.m2/repository/com/googlecode/concurrent-trees/concurrent-trees/2.6.1/concurrent-trees-2.6.1.jar
[ERROR] urls[4] = file:/Users/gnodet/.m2/repository/dev/equo/ide/solstice/1.3.1/solstice-1.3.1.jar
[ERROR] urls[5] = file:/Users/gnodet/.m2/repository/com/diffplug/durian/durian-swt.os/4.2.0/durian-swt.os-4.2.0.jar
[ERROR] urls[6] = file:/Users/gnodet/.m2/repository/org/eclipse/platform/org.eclipse.osgi/3.18.300/org.eclipse.osgi-3.18.300.jar
[ERROR] urls[7] = file:/Users/gnodet/.m2/repository/org/tukaani/xz/1.9/xz-1.9.jar
[ERROR] urls[8] = file:/Users/gnodet/.m2/repository/com/squareup/okhttp3/okhttp/4.10.0/okhttp-4.10.0.jar
[ERROR] urls[9] = file:/Users/gnodet/.m2/repository/com/squareup/okio/okio-jvm/3.0.0/okio-jvm-3.0.0.jar
[ERROR] urls[10] = file:/Users/gnodet/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.5.31/kotlin-stdlib-jdk8-1.5.31.jar
[ERROR] urls[11] = file:/Users/gnodet/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.5.31/kotlin-stdlib-jdk7-1.5.31.jar
[ERROR] urls[12] = file:/Users/gnodet/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-common/1.5.31/kotlin-stdlib-common-1.5.31.jar
[ERROR] urls[13] = file:/Users/gnodet/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib/1.6.20/kotlin-stdlib-1.6.20.jar
[ERROR] urls[14] = file:/Users/gnodet/.m2/repository/org/jetbrains/annotations/13.0/annotations-13.0.jar
[ERROR] urls[15] = file:/Users/gnodet/.m2/repository/com/diffplug/durian/durian-core/1.2.0/durian-core-1.2.0.jar
[ERROR] urls[16] = file:/Users/gnodet/.m2/repository/com/diffplug/durian/durian-collect/1.2.0/durian-collect-1.2.0.jar
[ERROR] urls[17] = file:/Users/gnodet/.m2/repository/org/codehaus/plexus/plexus-resources/1.2.0/plexus-resources-1.2.0.jar
[ERROR] urls[18] = file:/Users/gnodet/.m2/repository/org/codehaus/plexus/plexus-utils/3.4.1/plexus-utils-3.4.1.jar
[ERROR] urls[19] = file:/Users/gnodet/.m2/repository/org/eclipse/jgit/org.eclipse.jgit/6.5.0.202303070854-r/org.eclipse.jgit-6.5.0.202303070854-r.jar
[ERROR] urls[20] = file:/Users/gnodet/.m2/repository/com/googlecode/javaewah/JavaEWAH/1.1.13/JavaEWAH-1.1.13.jar
[ERROR] urls[21] = file:/Users/gnodet/.m2/repository/org/sonatype/plexus/plexus-build-api/0.0.7/plexus-build-api-0.0.7.jar
[ERROR] Number of foreign imports: 1
[ERROR] import: Entry[import  from realm ClassRealm[maven.api, parent: null]]
[ERROR] 
[ERROR] -----------------------------------------------------
[ERROR] 
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginContainerException
[ERROR] 
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <args> -r

After this PR

[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for JLine Parent 3.23.1-SNAPSHOT:
[INFO] 
[INFO] JLine Parent ....................................... SUCCESS [  0.953 s]
[INFO] JLine Native Library ............................... SUCCESS [  1.371 s]
[INFO] JLine Terminal ..................................... SUCCESS [  3.569 s]
[INFO] JLine JNA Terminal ................................. SUCCESS [  3.136 s]
[INFO] JLine JANSI Terminal ............................... SUCCESS [  2.944 s]
[INFO] JLine Reader ....................................... SUCCESS [  4.569 s]
[INFO] JLine Style ........................................ SUCCESS [  2.647 s]
[INFO] JLine Builtins ..................................... SUCCESS [  3.981 s]
[INFO] JLine Console ...................................... SUCCESS [  4.112 s]
[INFO] JLine Groovy ....................................... SUCCESS [  3.109 s]
[INFO] JLine Remote SSH ................................... SUCCESS [  1.935 s]
[INFO] JLine Remote Telnet ................................ SUCCESS [  1.849 s]
[INFO] JLine Demo ......................................... SUCCESS [  2.101 s]
[INFO] JLine Graal Demo ................................... SUCCESS [  1.794 s]
[INFO] JLine Bundle ....................................... SUCCESS [  3.898 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  23.806 s (Wall Clock)
[INFO] Finished at: 2023-08-02T10:44:55+02:00
[INFO] ------------------------------------------------------------------------

Possible downsides?

No real downsides

Copy link
Copy Markdown

@basil basil left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you. I ran a successful end-to-end test with this PR on my local machine with both Java 17 and Java 21.

Copy link
Copy Markdown
Contributor

@fawind fawind left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Makes sense, thanks for putting up this fix!

As a follow-up, we should update CI to start testing on JDK 21. But this requires some pre-work to update our central CI templates.

@fawind fawind changed the title Fix NoSuchMethodError happening on JDK 21 (fixes #885) Fix NoSuchMethodError happening on JDK 21 Aug 7, 2023
@fawind fawind merged commit f6b0f28 into palantir:develop Aug 7, 2023
@svc-autorelease
Copy link
Copy Markdown
Collaborator

Released 2.35.0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

NoSuchMethodError when formatting with JDK 21

4 participants