diffplug / diffplug/spotless

ktlint broken in 8.4.0 — FeatureClassLoader missing Kotlin stdlib

Abierto
#2,894 0 comentarios 2 reacciones 0 asignados Ver en GitHub
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

Abrir la 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

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.