Repository navigation
Support for Java 25 #190
Description
Activity
Hi @cicirello - thanks so much for your kind and thoughtful request for Java 25 support! I've looked into it and I'll start work on it as soon as I cut a release for the work I'm wrapping up now. I did look into it briefly and it got complicated quickly - I was getting a
java.lang.ExceptionInInitializerError: com.sun.tools.javac.code.TypeTag :: UNKNOWNerror. Granted, I was trying to target a Java 11 runtime and trying to include the OpenRewrite Java 25 parser, which may be causing the issue.I plan to re-platform on Java 17 after I cut the release and update all of the dependencies to versions that work with Java 17 instead of Java 11, so hopefully the TypeTag issue will go away when I do that upgrade. 🤞 Re-platforming on Java 17 will enable JGit worktree support, which means that LLMs can run RefactorFirst in separate worktrees once I get the CLI command and/or a Maven goal that writes to STDOUT.
If you have a minute, please clone what's in
mainand build it and try it out locally - I'd love your feedback. Thanks!Hi @jimbethancourt - I tried building the main branch locally, but the build fails on my machine. In case it is helpful to you, here's first some information about my machine, such as OS, Java version, Maven version, etc (via
mvn -v):Apache Maven 3.9.16 (2bdd9fddda4b155ebf8000e807eb73fd829a51d5) Maven home: C:\tools\apache-maven-3.9.16 Java version: 25.0.3, vendor: Eclipse Adoptium, runtime: C:\Program Files\Eclipse Adoptium\jdk-25.0.3.9-hotspot Default locale: en_US, platform encoding: UTF-8 OS name: "windows 11", version: "10.0", arch: "amd64", family: "windows"Now, here's some of the build output (parts of output that appears most relevant to whatever the issue is in building on my machine):
[INFO] --- spotless:2.44.5:apply (default) @ codebase-graph-builder --- [INFO] Index file does not exist. Fallback to an empty index WARNING: A terminally deprecated method in sun.misc.Unsafe has been called WARNING: sun.misc.Unsafe::staticFieldBase has been called by com.diffplug.spotless.java.ModuleHelper (file:/C:/Users/REDACTED/.m2/repository/com/diffplug/spotless/spotless-lib/3.1.2/spotless-lib-3.1.2.jar) WARNING: Please consider reporting this to the maintainers of class com.diffplug.spotless.java.ModuleHelper WARNING: sun.misc.Unsafe::staticFieldBase will be removed in a future release [ERROR] Step 'palantir-java-format' found problem in 'CodebaseGraphDTO.java': 'java.util.Queue com.sun.tools.javac.util.Log$DeferredDiagnosticHandler.getDiagnostics()' java.lang.NoSuchMethodError: 'java.util.Queue com.sun.tools.javac.util.Log$DeferredDiagnosticHandler.getDiagnostics()' at com.palantir.javaformat.java.JavaInput.buildToks (JavaInput.java:368) at com.palantir.javaformat.java.ImportOrderer.reorderImports (ImportOrderer.java:49) at com.diffplug.spotless.glue.pjf.PalantirJavaFormatFormatterFunc.apply (PalantirJavaFormatFormatterFunc.java:53) at com.diffplug.spotless.FormatterFunc.apply (FormatterFunc.java:33) at com.diffplug.spotless.FormatterStepEqualityOnStateSerialization.format (FormatterStepEqualityOnStateSerialization.java:49) at com.diffplug.spotless.Formatter.computeWithLint (Formatter.java:170) at com.diffplug.spotless.DirtyState.of (DirtyState.java:97) at com.diffplug.spotless.DirtyState.of (DirtyState.java:82) at com.diffplug.spotless.DirtyState.of (DirtyState.java:77) at com.diffplug.spotless.DirtyState.of (DirtyState.java:73) at com.diffplug.spotless.maven.SpotlessApplyMojo.process (SpotlessApplyMojo.java:63) at com.diffplug.spotless.maven.AbstractSpotlessMojo.execute (AbstractSpotlessMojo.java:255) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:126) at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:328) at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174) at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75) at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162) at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39) at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261) at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173) at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101) at org.apache.maven.cli.MavenCli.execute (MavenCli.java:919) at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:285) at org.apache.maven.cli.MavenCli.main (MavenCli.java:207) at jdk.internal.reflect.DirectMethodHandleAccessor.invoke (DirectMethodHandleAccessor.java:104) at java.lang.reflect.Method.invoke (Method.java:565) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:255) at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:201) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:362) at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:314) [INFO] ------------------------------------------------------------------------ [INFO] Reactor Summary for RefactorFirst 0.8.1-SNAPSHOT: [INFO] [INFO] RefactorFirst ...................................... SUCCESS [ 0.618 s] [INFO] RefactorFirst Test Resources ....................... SUCCESS [ 0.772 s] [INFO] RefactorFirst Codebase Graph Builder ............... FAILURE [ 0.423 s] [INFO] RefactorFirst Graph Algorithms ..................... SKIPPED [INFO] RefactorFirst Change Proneness Ranker .............. SKIPPED [INFO] RefactorFirst Effort Ranker ........................ SKIPPED [INFO] RefactorFirst Cost Benefit Calculator .............. SKIPPED [INFO] RefactorFirst Graph Data Generator ................. SKIPPED [INFO] RefactorFirst Report ............................... SKIPPED [INFO] RefactorFirst Maven Plugin ......................... SKIPPED [INFO] coverage ........................................... SKIPPED [INFO] RefactorFirst CLI .................................. SKIPPED [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1.953 s [INFO] Finished at: 2026-07-02T13:56:48-04:00 [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal com.diffplug.spotless:spotless-maven-plugin:2.44.5:apply (default) on project codebase-graph-builder: Execution default of goal com.diffplug.spotless:spotless-maven-plugin:2.44.5:apply failed: An API incompatibility was encountered while executing com.diffplug.spotless:spotless-maven-plugin:2.44.5:apply: java.lang.NoSuchMethodError: 'java.util.Queue com.sun.tools.javac.util.Log$DeferredDiagnosticHandler.getDiagnostics()' [ERROR] ----------------------------------------------------- [ERROR] realm = plugin>com.diffplug.spotless:spotless-maven-plugin:2.44.5 [ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy [ERROR] urls[0] = file:/C:/Users/REDACTED/.m2/repository/com/diffplug/spotless/spotless-maven-plugin/2.44.5/spotless-maven-plugin-2.44.5.jar [ERROR] urls[1] = file:/C:/Users/REDACTED/.m2/repository/com/diffplug/spotless/spotless-lib/3.1.2/spotless-lib-3.1.2.jar [ERROR] urls[2] = file:/C:/Users/REDACTED/.m2/repository/com/diffplug/spotless/spotless-lib-extra/3.1.2/spotless-lib-extra-3.1.2.jar [ERROR] urls[3] = file:/C:/Users/REDACTED/.m2/repository/com/googlecode/concurrent-trees/concurrent-trees/2.6.1/concurrent-trees-2.6.1.jar [ERROR] urls[4] = file:/C:/Users/REDACTED/.m2/repository/dev/equo/ide/solstice/1.8.1/solstice-1.8.1.jar [ERROR] urls[5] = file:/C:/Users/REDACTED/.m2/repository/com/diffplug/durian/durian-swt.os/4.3.0/durian-swt.os-4.3.0.jar [ERROR] urls[6] = file:/C:/Users/REDACTED/.m2/repository/org/tukaani/xz/1.9/xz-1.9.jar [ERROR] urls[7] = file:/C:/Users/REDACTED/.m2/repository/com/squareup/okhttp3/okhttp/4.12.0/okhttp-4.12.0.jar [ERROR] urls[8] = file:/C:/Users/REDACTED/.m2/repository/com/squareup/okio/okio/3.6.0/okio-3.6.0.jar [ERROR] urls[9] = file:/C:/Users/REDACTED/.m2/repository/com/squareup/okio/okio-jvm/3.6.0/okio-jvm-3.6.0.jar [ERROR] urls[10] = file:/C:/Users/REDACTED/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-common/1.9.10/kotlin-stdlib-common-1.9.10.jar [ERROR] urls[11] = file:/C:/Users/REDACTED/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.8.21/kotlin-stdlib-jdk8-1.8.21.jar [ERROR] urls[12] = file:/C:/Users/REDACTED/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib/1.8.21/kotlin-stdlib-1.8.21.jar [ERROR] urls[13] = file:/C:/Users/REDACTED/.m2/repository/org/jetbrains/annotations/13.0/annotations-13.0.jar [ERROR] urls[14] = file:/C:/Users/REDACTED/.m2/repository/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.8.21/kotlin-stdlib-jdk7-1.8.21.jar [ERROR] urls[15] = file:/C:/Users/REDACTED/.m2/repository/org/eclipse/platform/org.eclipse.osgi/3.23.0/org.eclipse.osgi-3.23.0.jar [ERROR] urls[16] = file:/C:/Users/REDACTED/.m2/repository/com/diffplug/durian/durian-core/1.2.0/durian-core-1.2.0.jar [ERROR] urls[17] = file:/C:/Users/REDACTED/.m2/repository/com/diffplug/durian/durian-io/1.2.0/durian-io-1.2.0.jar [ERROR] urls[18] = file:/C:/Users/REDACTED/.m2/repository/com/diffplug/durian/durian-collect/1.2.0/durian-collect-1.2.0.jar [ERROR] urls[19] = file:/C:/Users/REDACTED/.m2/repository/org/codehaus/plexus/plexus-resources/1.3.0/plexus-resources-1.3.0.jar [ERROR] urls[20] = file:/C:/Users/REDACTED/.m2/repository/org/codehaus/plexus/plexus-utils/4.0.0/plexus-utils-4.0.0.jar [ERROR] urls[21] = file:/C:/Users/REDACTED/.m2/repository/org/codehaus/plexus/plexus-xml/3.0.0/plexus-xml-3.0.0.jar [ERROR] urls[22] = file:/C:/Users/REDACTED/.m2/repository/org/eclipse/jgit/org.eclipse.jgit/6.10.1.202505221210-r/org.eclipse.jgit-6.10.1.202505221210-r.jar [ERROR] urls[23] = file:/C:/Users/REDACTED/.m2/repository/com/googlecode/javaewah/JavaEWAH/1.2.3/JavaEWAH-1.2.3.jar [ERROR] urls[24] = file:/C:/Users/REDACTED/.m2/repository/commons-codec/commons-codec/1.17.0/commons-codec-1.17.0.jar [ERROR] urls[25] = file:/C:/Users/REDACTED/.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] -----------------------------------------------------Thanks for the stacktrace! It will compile with Java 25 if you update Lombok to
<lombok.version>1.18.46</lombok.version>on line 59 and comment out the Spotless plugin on lines 406-439 in the parent pomNevermind - looks like tests are failing with Java 25
☹️ Good news @cicirello - I've been able to build what's currently in the
mainbranch with Java 11 and then run it against Chips-n-Salsa using Java 25 and it successfully analyzed the project. I've attached the report to this issue - the link is below (it looks like it will download to the default browser download folder) I'd love your feedback!@jimbethancourt I'll try to check it out later today.
Reacted by Jim Bethancourt@cicirello I've released version 0.9.0 this morning. You should be able to run in on your projects with a Java 25 runtime. You can use this command to run it:
org.hjug.refactorfirst.plugin:refactor-first-maven-plugin:0.9.0:htmlReportReacted by Vincent A. Cicirello@jimbethancourt I tried it in one of my projects that is using Java 25, and it works fine.
@jimbethancourt it definitely works fine in one of my projects that is using Java 25. But, in another, it doesn't. I have the start of a stack trace below. I think it is likely still Java 25 related as part of the stack trace lists classes from openrewrite that have Java21 within the classnames.
This stack trace was from building https://github.com/cicirello/core. I have Maven configured to run RefactorFirst in a profile. To enable during the build:
mvn clean package -P analysis.Here's the start of the stack trace. The full output is a couple thousand lines long, but is mostly similar to this part just for other source files:
[INFO] --- refactor-first:0.9.0:report (refactor-first) @ core --- [INFO] Rendering content with org.apache.maven.skins:maven-fluido-skin:jar:2.0.0-M9 skin [INFO] Project Base Dir: C:\Users\vacic\Documents\GitHub\core [INFO] Parent of Git Dir: C:\Users\vacic\Documents\GitHub\core [INFO] Analyzing Cycles org.openrewrite.java.JavaParsingException: Failed to convert for the following cursor stack:--- BEGIN PATH --- JCCompilationUnit(sourceFile = C:\Users\vacic\Documents\GitHub\core\src\main\java\org\cicirello\ds\BinaryHeap.java) JCClassDecl(name = BinaryHeap, line = 81) --- END PATH --- at org.openrewrite.java.isolated.ReloadableJava21ParserVisitor.reportJavaParsingException(ReloadableJava21ParserVisitor.java:1923) at org.openrewrite.java.isolated.ReloadableJava21ParserVisitor.convert(ReloadableJava21ParserVisitor.java:1890) at org.openrewrite.java.isolated.ReloadableJava21ParserVisitor.convert(ReloadableJava21ParserVisitor.java:1936) at org.openrewrite.java.isolated.ReloadableJava21ParserVisitor.convert(ReloadableJava21ParserVisitor.java:1928) at org.openrewrite.java.isolated.ReloadableJava21ParserVisitor.convertStatements(ReloadableJava21ParserVisitor.java:2115) at org.openrewrite.java.isolated.ReloadableJava21ParserVisitor.convertStatements(ReloadableJava21ParserVisitor.java:2077) at org.openrewrite.java.isolated.ReloadableJava21ParserVisitor.visitClass(ReloadableJava21ParserVisitor.java:597) at org.openrewrite.java.isolated.ReloadableJava21ParserVisitor.visitClass(ReloadableJava21ParserVisitor.java:79) at com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:899) at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:92) at org.openrewrite.java.isolated.ReloadableJava21ParserVisitor.convert(ReloadableJava21ParserVisitor.java:1884) at org.openrewrite.java.isolated.ReloadableJava21ParserVisitor.convertAll(ReloadableJava21ParserVisitor.java:1983) at org.openrewrite.java.isolated.ReloadableJava21ParserVisitor.visitCompilationUnit(ReloadableJava21ParserVisitor.java:650) at org.openrewrite.java.isolated.ReloadableJava21ParserVisitor.visitCompilationUnit(ReloadableJava21ParserVisitor.java:79) at com.sun.tools.javac.tree.JCTree$JCCompilationUnit.accept(JCTree.java:627) at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:92) at org.openrewrite.java.isolated.ReloadableJava21Parser.lambda$parseInputs$1(ReloadableJava21Parser.java:194) at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214) at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133) at java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1939) at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:570) at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:560) at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:153) at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:176) at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:265) at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:632) at org.hjug.graphbuilder.JavaGraphBuilder.processWithOpenRewrite(JavaGraphBuilder.java:95) at org.hjug.graphbuilder.JavaGraphBuilder.getCodebaseGraphDTO(JavaGraphBuilder.java:59) at org.hjug.graphbuilder.JavaGraphBuilder.getCodebaseGraphDTO(JavaGraphBuilder.java:44) at org.hjug.cbc.CycleRanker.generateClassReferencesGraph(CycleRanker.java:29) at org.hjug.refactorfirst.report.SimpleHtmlReport.generateReport(SimpleHtmlReport.java:179) at org.hjug.mavenreport.RefactorFirstMavenReport.executeReport(RefactorFirstMavenReport.java:75) at org.apache.maven.reporting.AbstractMavenReport.generate(AbstractMavenReport.java:358) at org.apache.maven.reporting.AbstractMavenReport.reportToSite(AbstractMavenReport.java:266) at org.apache.maven.reporting.AbstractMavenReport.execute(AbstractMavenReport.java:212) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:126) at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2(MojoExecutor.java:328) at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute(MojoExecutor.java:316) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:174) at org.apache.maven.lifecycle.internal.MojoExecutor.access$000(MojoExecutor.java:75) at org.apache.maven.lifecycle.internal.MojoExecutor$1.run(MojoExecutor.java:162) at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute(DefaultMojosExecutionStrategy.java:39) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:159) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:105) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:73) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:53) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:118) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:261) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:173) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:101) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:919) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:285) at org.apache.maven.cli.MavenCli.main(MavenCli.java:207) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) at java.base/java.lang.reflect.Method.invoke(Method.java:565) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:255) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:201) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:362) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:314) Caused by: java.lang.IllegalStateException: Expected to be able to find @exception at org.openrewrite.java.isolated.ReloadableJava21JavadocVisitor.sourceBefore(ReloadableJava21JavadocVisitor.java:1127) at org.openrewrite.java.isolated.ReloadableJava21JavadocVisitor.visitThrows(ReloadableJava21JavadocVisitor.java:1049) at org.openrewrite.java.isolated.ReloadableJava21JavadocVisitor.visitThrows(ReloadableJava21JavadocVisitor.java:57) at com.sun.tools.javac.tree.DCTree$DCThrows.accept(DCTree.java:1331) at com.sun.source.util.DocTreeScanner.scan(DocTreeScanner.java:90) at org.openrewrite.java.isolated.ReloadableJava21JavadocVisitor.convertMultiline(ReloadableJava21JavadocVisitor.java:1227) at org.openrewrite.java.isolated.ReloadableJava21JavadocVisitor.visitDocComment(ReloadableJava21JavadocVisitor.java:347) at org.openrewrite.java.isolated.ReloadableJava21JavadocVisitor.visitDocComment(ReloadableJava21JavadocVisitor.java:57) at com.sun.tools.javac.tree.DCTree$DCDocComment.accept(DCTree.java:363) at com.sun.source.util.DocTreeScanner.scan(DocTreeScanner.java:90) at org.openrewrite.java.isolated.ReloadableJava21ParserVisitor.formatWithCommentTree(ReloadableJava21ParserVisitor.java:2568) at org.openrewrite.java.isolated.ReloadableJava21ParserVisitor.convert(ReloadableJava21ParserVisitor.java:1884) ... 58 moreI realized that the issue you ran into with building with Java 25 is due to the fact that the version of Spotless hasn't been updated in a while. I've updated it in the branch I'm adding Java 25 support on.
Reacted by Vincent A. CicirelloHi @cicirello I've added support for Java 25 in PR #218 and merged it into main. I'd like to add Gradle support before performing a release, but hopefully that won't take too long.
In the meantime, I'd love it if you can pull
mainand build on a Java 25 JDK and then run it against https://github.com/cicirello/core using a Java 25 runtime and let me know if it works as expected. It looks like the exception you were seeing in #190 (comment) may have been a bug in the OpenRewrite parser, as I've updated the parser version and it didn't happen, even when I analyzed thecorerepo using a Java 17 runtime that didn't activate the Java 25 parser.Thank you so much!
Reacted by Vincent A. Cicirello@jimbethancourt I'll find time to try it out later this week
Reacted by Jim Bethancourt- added a commit that references this issue
on Sep 30, 2026 @jimbethancourt I just tried the version currently in main. It works well. There is a warning, but I think it is unrelated, and I think it is actually being generated by one of your dependencies, as the text of the warning suggests reporting it to the maintainers of a class that is likely in a dependency and not in RefactorFirst itself. The warning is just after the line that indicates it is "walking 0 Kotlin files", so it appears to be Kotlin related. I don't have any Kotlin in this project, so I have no idea if it would have been an issue. In case it is useful, here is the full output of RefactorFirst, including the warning:
[INFO] --- refactor-first:0.11.0-SNAPSHOT:report (refactor-first) @ core --- [INFO] Rendering content with org.apache.maven.skins:maven-fluido-skin:jar:2.0.0-M9 skin [INFO] Project Base Dir: C:\REDACTED\GitHub\core [INFO] Parent of Git Dir: C:\REDACTED\GitHub\core [INFO] Analyzing Cycles [INFO] Using Java 25 parser for Java 25 language feature support [INFO] JavaSourceFileGraphBuilder: walking 44 Java files under C:\REDACTED\GitHub\core [INFO] KotlinSourceFileGraphBuilder: walking 0 Kotlin files under C:\REDACTED\GitHub\core WARNING: A terminally deprecated method in sun.misc.Unsafe has been called WARNING: sun.misc.Unsafe::invokeCleaner has been called by org.jetbrains.kotlin.cli.jvm.compiler.jarfs.FastJarFileSystemKt (file:/C:/REDACTED/.m2/repository/org/jetbrains/kotlin/kotlin-compiler-embeddable/2.4.10/kotlin-compiler-embeddable-2.4.10.jar) WARNING: Please consider reporting this to the maintainers of class org.jetbrains.kotlin.cli.jvm.compiler.jarfs.FastJarFileSystemKt WARNING: sun.misc.Unsafe::invokeCleaner will be removed in a future release [INFO] Identifying Object Oriented Disharmonies [INFO] Initiating Cost Benefit calculation [INFO] Capturing change count based on commit timestamps [INFO] Ranking metric: SEC [INFO] Ranking metric: SDC [INFO] Calculating Change Proneness [INFO] Ranking metric: ATFD [INFO] Ranking metric: LAA [INFO] Ranking metric: FDP [INFO] Calculating Change Proneness [INFO] Generating HTML Report [INFO] No Package Relationship Disharmonies found
There is currently an open issue requesting support for Java 23 (#104 ). My request is much like that one, but for Java 25. The result of running on a Java 25 project is much like the output seen in Issue #104. Since Java 23 is halfway between LTS Java versions (21 and 25), I'm assuming that the fix is likely the same for the existing issue #104 and this new one. But, just in case the underlying issue for Java 25 is distinct from that of Java 23, I'm submitting this issue.