diffplug / diffplug/spotless

afterEvaluate AbstractMutationGuard$IllegalMutationException

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

Beschreibung

I am getting
```
Caused by: org.gradle.api.reflect.ObjectInstantiationException: Could not create an instance of type com.diffplug.gradle.spotless.SpotlessExtensionImpl.
at at org.gradle.internal.instantiation.generator.DependencyInjectingInstantiator.doCreate(DependencyInjectingInstantiator.java:70)
at org.gradle.internal.instantiation.generator.DependencyInjectingInstantiator.newInstanceWithDisplayName(DependencyInjectingInstantiator.java:51)
at org.gradle.internal.extensibility.DefaultConvention.instantiate(DefaultConvention.java:229)
at org.gradle.internal.extensibility.DefaultConvention.create(DefaultConvention.java:150)
at org.gradle.internal.extensibility.DefaultConvention.create(DefaultConvention.java:145)
at com.diffplug.gradle.spotless.SpotlessPlugin.apply(SpotlessPlugin.java:53)
```
due to:
```
Caused by: org.gradle.api.internal.AbstractMutationGuard$IllegalMutationException: Project#afterEvaluate(Action) on project ':x:x-core' cannot be executed in the current context.
at org.gradle.api.internal.AbstractMutationGuard.createIllegalStateException(AbstractMutationGuard.java:39)
at org.gradle.api.internal.AbstractMutationGuard.assertMutationAllowed(AbstractMutationGuard.java:34)
at org.gradle.api.internal.project.DefaultProject.assertMutatingMethodAllowed(DefaultProject.java:1477)
at org.gradle.api.internal.project.DefaultProject.afterEvaluate(DefaultProject.java:1054)
at com.diffplug.gradle.spotless.SpotlessExtensionImpl.(SpotlessExtensionImpl.java:42)
```

Following some chat in the Gradle Slack chat:

> looks like a bug in the plugin implementation, so I'd raise a bug
`afterEvalute {}` should be avoided wherever possible, and I don't think it's needed here
https://github.com/diffplug/spotless/blob/1108c14f83d8e96bc86f923acebfedb5e4a43917/plugin-gradle/src/main/java/com/diffplug/gradle/spotless/SpotlessExtensionImpl.java#L42
> you could try setting `enforceCheck = false` and setting up the task dependency in a more idiomatic way

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne bei plugin-gradle/src/main/java/com/diffplug/gradle/spotless/SpotlessExtensionImpl.java etwa in Zeile 42 und lies nach, wie die afterEvaluate-Aktion registriert wird. Reproduziere den gemeldeten Gradle-Fehler und überprüfe anschließend, dass das Plugin ohne die AbstractMutationGuard-Ausnahme angewendet werden kann und dass das bestehende enforceCheck-Verhalten weiterhin funktioniert.

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
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

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