Spotless maven plugin fails under Java 21: 'other' is different type of Path
- Lingua principale
- Java
- Stelle
- 5.6k
- Fork
- 559
- Merge medio
- 1g 14h
- PR unite (30g)
- 43
Descrizione
## Summary
When running `mvn spotless:apply` under the newly released Java 21, and manually updating the `asm` dependency, I get an error about `'other' is different type of Path`.
- [X] This is running under Apache Maven 3.9.4 as well as 4.0.0-alpha-8-SNAPSHOT and `com.diffplug.spotless:spotless-maven-plugin:2.39.0:apply`
- [X] macOS 13.6
```
Caused by: java.lang.IllegalArgumentException: 'other' is different type of Path
at sun.nio.fs.UnixPath.relativize (UnixPath.java:406)
at sun.nio.fs.UnixPath.relativize (UnixPath.java:51)
at java.util.stream.ReferencePipeline$3$1.accept (ReferencePipeline.java:197)
at java.util.stream.ReferencePipeline$3$1.accept (ReferencePipeline.java:197)
at java.util.Spliterators$ArraySpliterator.forEachRemaining (Spliterators.java:1024)
at java.util.stream.AbstractPipeline.copyInto (AbstractPipeline.java:509)
at java.util.stream.AbstractPipeline.wrapAndCopyInto (AbstractPipeline.java:499)
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential (ReduceOps.java:921)
at java.util.stream.AbstractPipeline.evaluate (AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.collect (ReferencePipeline.java:682)
at com.diffplug.spotless.maven.java.Java.defaultIncludes (Java.java:51)
at com.diffplug.spotless.maven.AbstractSpotlessMojo.getIncludes (AbstractSpotlessMojo.java:327)
at com.diffplug.spotless.maven.AbstractSpotlessMojo.collectFilesFromFormatterFactory (AbstractSpotlessMojo.java:308)
at com.diffplug.spotless.maven.AbstractSpotlessMojo.collectFiles (AbstractSpotlessMojo.java:260)
at com.diffplug.spotless.maven.AbstractSpotlessMojo.lambda$execute$0 (AbstractSpotlessMojo.java:220)
at com.diffplug.spotless.extra.GitAttributesLineEndings$RelocatablePolicy.calculateState (GitAttributesLineEndings.java:96)
at com.diffplug.spotless.extra.GitAttributesLineEndings$RelocatablePolicy.calculateState (GitAttributesLineEndings.java:80)
at com.diffplug.spotless.LazyForwardingEquality.state (LazyForwardingEquality.java:56)
at com.diffplug.spotless.LazyForwardingEquality.toBytes (LazyForwardingEquality.java:85)
at com.diffplug.spotless.LazyForwardingEquality.hashCode (LazyForwardingEquality.java:102)
at com.diffplug.spotless.Formatter.hashCode (Formatter.java:274)
at java.util.HashMap.hash (HashMap.java:338)
at java.util.HashMap.put (HashMap.java:618)
at com.diffplug.spotless.maven.FormattersHolder.create (FormattersHolder.java:43)
at com.diffplug.spotless.maven.AbstractSpotlessMojo.execute (AbstractSpotlessMojo.java:224)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:143)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:330)
at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:318)
```
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Inizia da com.diffplug.spotless.maven.java.Java.defaultIncludes, quindi segui AbstractSpotlessMojo.getIncludes e collectFiles come mostrato nello stack trace. Riproduci `mvn spotless:apply` con Java 21, Maven 3.9.4 e l’aggiornamento ASM segnalato; il lavoro è completato quando il comando termina senza l’eccezione different-type-of-Path.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- java
- Ambito
- build-system
- Tipo di issue
- Bug
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Stato di attività
- Ferma
- Chiarezza
- Da chiarire
- Idoneità per principianti
- 38/100