diffplug / diffplug/spotless

afterEvaluate AbstractMutationGuard$IllegalMutationException

Open
#2,268 1 comment 0 reactions 0 assignees View on GitHub
bug-unconfirmed
Dominant language
Java
Stars
5.6k
Forks
559
Avg merge
1d 13h
Merged PRs (30d)
34

Description

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

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.