diffplug / diffplug/spotless

Spotless maven plugin fails under Java 21: 'other' is different type of Path

Offen
#1,823 1 Kommentar 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen
bug
Vorherrschende Sprache
Java
Sterne
5.6k
Forks
559
Ø Merge
1 T. 14 Std.
Gemergte PRs (30 T.)
43

Beschreibung

## 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)
```

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginnen Sie bei com.diffplug.spotless.maven.java.Java.defaultIncludes und verfolgen Sie dann AbstractSpotlessMojo.getIncludes und collectFiles, wie im Stacktrace gezeigt. Reproduzieren Sie `mvn spotless:apply` mit Java 21, Maven 3.9.4 und dem gemeldeten ASM-Update; abgeschlossen ist die Aufgabe, wenn der Befehl ohne die different-type-of-Path-Exception beendet wird.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java
Bereich
build-system
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
38/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.