Skip to content

Commit

Permalink
Don't modify list returned by Project#getRepositories()
Browse files Browse the repository at this point in the history
The returned list is mutable and can lead to an exception like the following when directly modified:

```
org.gradle.api.InvalidUserCodeException: Build was configured to prefer settings repositories over project repositories but repository 'MavenRepo' was added by unknown code
        at org.gradle.internal.management.DefaultDependencyResolutionManagement.repoMutationDisallowedOnProject(DefaultDependencyResolutionManagement.java:199)
        at org.gradle.internal.ImmutableActionSet$SetWithFewActions.execute(ImmutableActionSet.java:285)
        at org.gradle.api.internal.DefaultDomainObjectCollection.doAdd(DefaultDomainObjectCollection.java:262)
        at org.gradle.api.internal.DefaultNamedDomainObjectCollection.doAdd(DefaultNamedDomainObjectCollection.java:114)
        at org.gradle.api.internal.DefaultDomainObjectCollection.addAll(DefaultDomainObjectCollection.java:302)
        at org.gradle.api.internal.DefaultNamedDomainObjectCollection.addAll(DefaultNamedDomainObjectCollection.java:134)
        at org.openrewrite.gradle.marker.GradleProjectBuilder.gradleProject(GradleProjectBuilder.java:62)
        at org.openrewrite.gradle.isolated.DefaultProjectParser.parseGradleFiles(DefaultProjectParser.java:890)
        at org.openrewrite.gradle.isolated.DefaultProjectParser.parse(DefaultProjectParser.java:831)
        ... 167 more
```

Fixes: #12
  • Loading branch information
knutwannheden committed Jan 19, 2024
1 parent b6a81d9 commit b5a3bf8
Showing 1 changed file with 1 addition and 1 deletion.
Expand Up @@ -55,7 +55,7 @@ public static GradleProject gradleProject(Project project) {
pluginRepositories.addAll(mapRepositories(settings.getPluginManagement().getRepositories()));
pluginRepositories.addAll(mapRepositories(settings.getBuildscript().getRepositories()));
}
List<ArtifactRepository> repositories = project.getRepositories();
List<ArtifactRepository> repositories = new ArrayList<>(project.getRepositories());
if(GradleVersion.current().compareTo(GradleVersion.version("6.8")) >= 0) {
Settings settings = ((DefaultGradle)project.getGradle()).getSettings();
//noinspection UnstableApiUsage
Expand Down

0 comments on commit b5a3bf8

Please sign in to comment.