ktlint broken in 8.4.0 — FeatureClassLoader missing Kotlin stdlib
- Lenguaje dominante
- Java
- Estrellas
- 5.7k
- Forks
- 561
- Merge medio
- 1 d 14 h
- PR fusionados (30 d)
- 43
Descripción
## 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.(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`.
Guía de contribución
Línea de trabajo
Reproduce el fallo con Spotless 8.4.0, Kotlin 2.3.20 y Gradle 9.4.1 usando ambas configuraciones de ktlint. Empieza en FeatureClassLoader.java:79 y KtLintCompat1Dot0Dot0Adapter.java:68; después, inspecciona cómo el cambio predeclared-dependencies ensambla el classpath de ktlint. Se considera terminado cuando spotlessKotlinCheck se ejecuta correctamente para archivos Kotlin sin volver a 8.3.0.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- java, kotlin
- Área
- build-system
- Tipo de issue
- Error
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Tranquilo
- Claridad
- Bastante claro
- Aptitud para principiantes
- 55/100