ktlint broken in 8.4.0 — FeatureClassLoader missing Kotlin stdlib
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 55/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Quiet
- Domain
- build-system
Research direction
Reproduce the failure with Spotless 8.4.0, Kotlin 2.3.20, and Gradle 9.4.1 using both ktlint configurations. Start at FeatureClassLoader.java:79 and KtLintCompat1Dot0Dot0Adapter.java:68, then inspect how the predeclared-dependencies change assembles the ktlint classpath. Done means spotlessKotlinCheck succeeds for Kotlin files without reverting to 8.3.0.
Written by the indexing model from the issue text.
Description
Bug
After upgrading from 8.3.0 to 8.4.0, spotlessKotlinCheck fails for all Kotlin files. ktlint cannot initialize because Spotless' FeatureClassLoader fails to load a core Kotlin stdlib class.
Root cause from the lint output:
Caused by: java.lang.ClassNotFoundException: kotlin.collections.ArraysKt___ArraysJvmKt
at com.diffplug.spotless.FeatureClassLoader.findClass(FeatureClassLoader.java:79)
...
at com.diffplug.spotless.glue.ktlint.compat.KtLintCompat1Dot0Dot0Adapter.<clinit>(KtLintCompat1Dot0Dot0Adapter.java:68)
This happens both with ktlint("1.8.0") and ktlint() (default). Reverting to 8.3.0 fixes it.
Environment
- Spotless: 8.4.0 (8.3.0 works)
- Kotlin: 2.3.20
- Gradle: 9.4.1
- JDK: 21
Notes
The 8.4.0 changelog shows no ktlint changes. The predeclared dependencies fix might have affected how ktlint's classpath is assembled in FeatureClassLoader.
- Dominant language
- Java
- Stars
- 5.7k
- Forks
- 560
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 43
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from diffplug/spotless
-
Difficulty 5/5 Over a week Newbie friendliness 15/100
-
Difficulty 5/5 Over a week Newbie friendliness 35/100
-
Difficulty 3/5 1-2 days Newbie friendliness 66/100
-
Difficulty 3/5 1-2 days Newbie friendliness 68/100
-
Difficulty 4/5 3-5 days Newbie friendliness 52/100
All issues in diffplug/spotless
Similar issues
-
certification
Difficulty 1/5 Under an hour Newbie friendliness 80/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
-
[BUG] ECR GetAuthorizationToken returns a proxyEndpoint for the default region, not the request's Openbug ecr
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
-
Needs: Triage Type: Feature request
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
AntennaPod/AntennaPod#8794 ·
-
agentic-workflows
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
github/copilot-sdk#2760 ·