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);
             }
         }
         


Reply via email to