#1108573 kotlin: FTBFS with default Java 25

Package:
src:kotlin
Source:
src:kotlin
Submitter:
Vladimir Petko
Date:
2026-02-21 23:13:02 UTC
Severity:
normal
Tags:
#1108573#5
Date:
2025-07-01 04:21:01 UTC
From:
To:
Dear Maintainers,

The package kotlin causes ftbfs errors and fails to build itself
with default Java 25 due to Java version formatting error in
intellij-idea-community package.

Compiling kotlin projects fails with the following error:
---------------
* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':atomicfu-transformer:compileKotlin'.
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:100)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:70)
	at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)
	at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:62)
	at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
	at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:60)
	at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:97)
	at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:87)
	at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:52)
	at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
	at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
	at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
	at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
	at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:248)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
	at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:241)
	at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:230)
	at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:123)
	at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.java:79)
	at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:104)
	at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:98)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:626)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:581)
	at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:98)
	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
	at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
	at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
Caused by: java.lang.ExceptionInInitializerError
	at org.jetbrains.kotlin.com.intellij.openapi.util.io.FileUtil.<clinit>(FileUtil.java:52)
	at org.jetbrains.kotlin.modules.KotlinModuleXmlBuilder.getEscapedPath(KotlinModuleXmlBuilder.kt:140)
	at org.jetbrains.kotlin.modules.KotlinModuleXmlBuilder.addModule(KotlinModuleXmlBuilder.kt:56)
	at org.jetbrains.kotlin.incremental.BuildUtilKt.makeModuleFile(buildUtil.kt:53)
	at org.jetbrains.kotlin.compilerRunner.GradleCompilerRunner.runJvmCompilerAsync(GradleKotlinCompilerRunner.kt:76)
	at org.jetbrains.kotlin.gradle.tasks.KotlinCompile.callCompilerAsync$kotlin_gradle_plugin(Tasks.kt:446)
	at org.jetbrains.kotlin.gradle.tasks.KotlinCompile.callCompilerAsync$kotlin_gradle_plugin(Tasks.kt:355)
	at org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompile.executeImpl(Tasks.kt:312)
	at org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompile.execute(Tasks.kt:284)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
	at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
	at org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:46)
	at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39)
	at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:121)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:110)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:92)
	... 29 more
Caused by: java.lang.IllegalArgumentException: 25-ea
	at org.jetbrains.kotlin.com.intellij.util.lang.JavaVersion.parse(JavaVersion.java:270)
	at org.jetbrains.kotlin.com.intellij.util.lang.JavaVersion.current(JavaVersion.java:144)
	at org.jetbrains.kotlin.com.intellij.openapi.util.SystemInfo.isJavaVersionAtLeast(SystemInfo.java:186)
	at org.jetbrains.kotlin.com.intellij.Patches.<clinit>(Patches.java:36)
	... 50 more
----

After fixing the issue (in intellij-community-idea package), kotlin fails to build with the following error:
-----
:kotlin-script-util:install (Thread[#59,Task worker for ':' Thread 3,5,main]) completed. Took 0.086 secs.
e: /<<PKGBUILDDIR>>/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/stubs/KDocCommentKeeper.kt: (157, 9): Class 'KDocComment' is not abstract and does not implement abstract member public abstract fun getPos(): JCDiagnostic.DiagnosticPosition! defined in com.sun.tools.javac.parser.Tokens.Comment
e: /<<PKGBUILDDIR>>/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/stubs/KDocCommentKeeper.kt: (159, 59): Unresolved reference: JAVADOC
e: /<<PKGBUILDDIR>>/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/stubs/KDocCommentKeeper.kt: (164, 9): Class 'KaptDocCommentTable' is not abstract and does not implement abstract member public abstract fun getCommentKind(p0: JCTree!): Elements.DocCommentKind! defined in com.sun.tools.javac.tree.DocCommentTable
:kotlin-annotation-processing:compileKotlin FAILED
---------------

#1108573#14
Date:
2025-12-05 06:28:43 UTC
From:
To:
Dear Maintainers,

The package fails to build due to two issues. Kotlin vendors the
JavaVersion class from intellij-idea-community, which cannot parse 25
as a valid Java version. Kapt3 plugin in Kotlin depends on
com.sun.tools API had a breaking change.

I have raised MR[1] in intellij-community-idea with an upstream patch
to fix Java version parsing.
I have raised MR[2] in Kotlin to rebuild it against the updated
intellij-community-idea and apply the kapt3 patch[2].

Would it be possible to consider those MRs as a solution for this issue?

Best regards,
Vladimir.

[1] https://salsa.debian.org/java-team/intellij-community-idea/-/merge_requests/9
[2] https://salsa.debian.org/java-team/kotlin/-/merge_requests/22

#1108573#21
Date:
2026-02-21 23:12:14 UTC
From:
To:
We believe that the bug you reported is fixed in the latest version of
intellij-community-idea, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 1108573@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
tony mancill <tmancill@debian.org> (supplier of updated intellij-community-idea package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)
Format: 1.8
Date: Sat, 21 Feb 2026 13:58:56 -0800
Source: intellij-community-idea
Architecture: source
Version: 183.5153.4-7
Distribution: unstable
Urgency: medium
Maintainer: Debian Java Maintainers <pkg-java-maintainers@lists.alioth.debian.org>
Changed-By: tony mancill <tmancill@debian.org>
Closes: 1108573 1121873
Changes:
 intellij-community-idea (183.5153.4-7) unstable; urgency=medium
 .
   * Team upload
   [ Vladimir Petko ]
   * d/p/java25-compatibility.patch: cherry-pick upstream patch
     to resolve kotlin Java 25 ftbfs (Closes: #1108573).
   * d/p/java25-public-access.patch: update access modifiers in
     overridden CharacterSequence.getChars() methods
     (Closes: #1121873).
 .
   [ tony mancill ]
   * Freshen years in debian/copyright
   * Bump Standards-Version to 4.7.3
Checksums-Sha1:
 a84585f06c83c9cacc5c345d30f5e5177bb3b847 3285 intellij-community-idea_183.5153.4-7.dsc
 427bd36c1884a6b46755cf2c783108bb34fe08d2 19456 intellij-community-idea_183.5153.4-7.debian.tar.xz
 1244267a79df4085cae110570de65479c27b2ddb 17293 intellij-community-idea_183.5153.4-7_amd64.buildinfo
Checksums-Sha256:
 1213de2507c559530f1a7e67696210e77a3cfaa8924dc6edfc691210d83bdf2d 3285 intellij-community-idea_183.5153.4-7.dsc
 2b404265af68a4b2280809aecf456c5f764ba6b0eb8e05444532e378b9614260 19456 intellij-community-idea_183.5153.4-7.debian.tar.xz
 c68601d6181c3fb9481b1a1e15915859399b88bd5c77bcff530bdf51b500b830 17293 intellij-community-idea_183.5153.4-7_amd64.buildinfo
Files:
 ffd8078a56c4eb6571074c120a85d966 3285 java optional intellij-community-idea_183.5153.4-7.dsc
 3710f393d500424d2f4b2d10c594ef5a 19456 java optional intellij-community-idea_183.5153.4-7.debian.tar.xz
 50c1214d7fdcd9ab35b38acd956cdd5d 17293 java optional intellij-community-idea_183.5153.4-7_amd64.buildinfo
-----BEGIN PGP SIGNATURE-----

iQJIBAEBCgAyFiEE5Qr9Va3SequXFjqLIdIFiZdLPpYFAmmaNQUUHHRtYW5jaWxs
QGRlYmlhbi5vcmcACgkQIdIFiZdLPpbZORAAu7r4McX4WdeWUq21WM0ehnJIK5FN
mw1Cd/SFJqRu75Cx1oEzYQcHHHG8EfUAyG+ejLGwzMNVeEC+7hTm8W8DErilJGrc
Gj5EMLujtJ4aaTU1YyZ/Hp7qs16S1zLdJTQzF4svg79BHqSPb6KR+rnNZlxv3IXU
6Qi7Frfk20e2TOBZCBiRSTuAEnHmYxSCSkzJNM2nGysfphF8+hrxQBFsAwbI1XkJ
Tva0obBFh81WkpSicjKIBELljcFiCaqcItewlPLGvccDhXEesqx5c7nUIWvr/zZb
w6g1CIjeUJ5Pj+R6FmpbIdtoPpsi+uaNLSFi80PRD+IMjZJmy4E9bMQHArmTlaSf
vkrOkOMHh33+A1Uolo0ZjMnbemisECpQ6Uy6+svvsPXVtA/Att7whxbE55n4cUSW
D4ptoM6+5LmPbbD1jgFP0TLaPCZstVfm7BaWXLg91aKpFjZlayatLcrJ2QVfDQZL
uCQSXNMCYZLJMsraAEnR+a7vYyAWf3rSlZ/Ilwvp9mGUWjMzxFl05Ml/m7mwj0fh
/ADNjcgnWLJUCIUCfJDmK5uW4X0i0ZXfdN2t7eR0fw1Vug2qHELRxK/unAT3V1LB
Im1xS5ZnE3QzRdbManVrm9Yr3Tqd+Noywf3MKh6rDnuPNvpYuegmJq5qMpg45IeH
tfk0+XfYHL0bVis=
=KZiv
-----END PGP SIGNATURE-----