Author: brett Date: Tue Mar 18 13:19:52 2014 New Revision: 1578863 URL: http://svn.apache.org/r1578863 Log: avoid altering unmodifiable collection
In some circumstances, the project artifacts can be an unmodifiable collection. To ensure that's not the case, work on a copy of the set. Modified: incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/NPandayDependencyResolution.java Modified: incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/NPandayDependencyResolution.java URL: http://svn.apache.org/viewvc/incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/NPandayDependencyResolution.java?rev=1578863&r1=1578862&r2=1578863&view=diff ============================================================================== --- incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/NPandayDependencyResolution.java (original) +++ incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/NPandayDependencyResolution.java Tue Mar 18 13:19:52 2014 @@ -34,6 +34,7 @@ import org.apache.maven.project.MavenPro import org.apache.maven.project.artifact.InvalidDependencyVersionException; import org.codehaus.plexus.logging.AbstractLogEnabled; +import java.util.HashSet; import java.util.Set; /** @@ -91,10 +92,13 @@ public class NPandayDependencyResolution * dependencies to the projects DIRECT dependencies * */ - addResolvedSpecialsToProjectDependencies( project, result ); - // Add custom contribute dependencies to maven project dependencies - project.getDependencyArtifacts().addAll(artifactResolver.getCustomDependenciesCache()); - + Set<Artifact> dependencyArtifacts = new HashSet<Artifact>( project.getDependencyArtifacts() ); + addResolvedSpecialsToProjectDependencies(result, dependencyArtifacts); + + // Add custom contribute dependencies to maven project dependencies + dependencyArtifacts.addAll(artifactResolver.getCustomDependenciesCache()); + project.setDependencyArtifacts(dependencyArtifacts); + Set<Artifact> resultRequire = Sets.newLinkedHashSet(result.getArtifacts()); resultRequire.addAll(artifactResolver.getCustomDependenciesCache()); @@ -119,7 +123,7 @@ public class NPandayDependencyResolution } } - private void addResolvedSpecialsToProjectDependencies( MavenProject project, ArtifactResolutionResult result ) + private void addResolvedSpecialsToProjectDependencies(ArtifactResolutionResult result, Set<Artifact> dependencyArtifacts) { Set resolvedArtifacts = result.getArtifacts(); Sets.SetView intersection = Sets.intersection( @@ -129,11 +133,11 @@ public class NPandayDependencyResolution for ( Object ao : intersection ) { Artifact a = (Artifact) ao; - if ( !project.getDependencyArtifacts().contains( a ) ) + if ( !dependencyArtifacts.contains(a) ) { getLogger().info( "NPANDAY-148-005: Adding custom resolved " + a + " to project.dependencyArtifacts" ); - project.getDependencyArtifacts().add( a ); + dependencyArtifacts.add(a); } }