You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2016/01/01 16:23:08 UTC

svn commit: r1722498 - in /maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/dependency/resolve: DependencyResolver.java internal/Maven30DependencyResolver.java internal/Maven31DependencyResolver.java

Author: rfscholte
Date: Fri Jan  1 15:23:08 2016
New Revision: 1722498

URL: http://svn.apache.org/viewvc?rev=1722498&view=rev
Log:
Prevent NPE with dependencyManagement and dependencies

Modified:
    maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/dependency/resolve/DependencyResolver.java
    maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/dependency/resolve/internal/Maven30DependencyResolver.java
    maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/dependency/resolve/internal/Maven31DependencyResolver.java

Modified: maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/dependency/resolve/DependencyResolver.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/dependency/resolve/DependencyResolver.java?rev=1722498&r1=1722497&r2=1722498&view=diff
==============================================================================
--- maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/dependency/resolve/DependencyResolver.java (original)
+++ maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/dependency/resolve/DependencyResolver.java Fri Jan  1 15:23:08 2016
@@ -50,7 +50,7 @@ public interface DependencyResolver
 
     /**
      * @param buildingRequest the project building request, never {@code null}
-     * @param dependencies the dependencies to resolve, never {@code null}
+     * @param dependencies the dependencies to resolve, can be {@code null}
      * @param managedDependencies managed dependencies, can be {@code null}
      * @param filter a filter, can be {@code null}
      * @return the resolved dependencies.

Modified: maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/dependency/resolve/internal/Maven30DependencyResolver.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/dependency/resolve/internal/Maven30DependencyResolver.java?rev=1722498&r1=1722497&r2=1722498&view=diff
==============================================================================
--- maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/dependency/resolve/internal/Maven30DependencyResolver.java (original)
+++ maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/dependency/resolve/internal/Maven30DependencyResolver.java Fri Jan  1 15:23:08 2016
@@ -103,31 +103,41 @@ public class Maven30DependencyResolver
             (ArtifactTypeRegistry) Invoker.invoke( RepositoryUtils.class, "newArtifactTypeRegistry",
                                                    ArtifactHandlerManager.class, artifactHandlerManager );
 
-        List<Dependency> aetherDependencies = new ArrayList<Dependency>( mavenDependencies.size() );
-
         final Class<?>[] argClasses =
             new Class<?>[] { org.apache.maven.model.Dependency.class, ArtifactTypeRegistry.class };
 
-        for ( org.apache.maven.model.Dependency mavenDependency : mavenDependencies )
-        {
-            Object[] args = new Object[] { mavenDependency, typeRegistry };
+         List<Dependency> aetherDependencies = new ArrayList<Dependency>( mavenDependencies.size() );
 
-            Dependency aetherDependency =
-                (Dependency) Invoker.invoke( RepositoryUtils.class, "toDependency", argClasses, args );
+         if ( mavenDependencies != null )
+         {
+             aetherDependencies = new ArrayList<Dependency>( mavenDependencies.size() );
 
-            aetherDependencies.add( aetherDependency );
-        }
+             for ( org.apache.maven.model.Dependency mavenDependency : mavenDependencies )
+             {
+                 Object[] args = new Object[] { mavenDependency, typeRegistry };
 
-        List<Dependency> aetherManagedDependencies = new ArrayList<Dependency>( managedMavenDependencies.size() );
+                 Dependency aetherDependency =
+                     (Dependency) Invoker.invoke( RepositoryUtils.class, "toDependency", argClasses, args );
 
-        for ( org.apache.maven.model.Dependency mavenDependency : managedMavenDependencies )
+                 aetherDependencies.add( aetherDependency );
+             }
+         }
+
+        List<Dependency> aetherManagedDependencies = null;
+
+        if ( managedMavenDependencies != null )
         {
-            Object[] args = new Object[] { mavenDependency, typeRegistry };
+            aetherManagedDependencies = new ArrayList<Dependency>( managedMavenDependencies.size() );
+
+            for ( org.apache.maven.model.Dependency mavenDependency : managedMavenDependencies )
+            {
+                Object[] args = new Object[] { mavenDependency, typeRegistry };
 
-            Dependency aetherDependency =
-                (Dependency) Invoker.invoke( RepositoryUtils.class, "toDependency", argClasses, args );
+                Dependency aetherDependency =
+                    (Dependency) Invoker.invoke( RepositoryUtils.class, "toDependency", argClasses, args );
 
-            aetherManagedDependencies.add( aetherDependency );
+                aetherManagedDependencies.add( aetherDependency );
+            }
         }
 
         @SuppressWarnings( "unchecked" )

Modified: maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/dependency/resolve/internal/Maven31DependencyResolver.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/dependency/resolve/internal/Maven31DependencyResolver.java?rev=1722498&r1=1722497&r2=1722498&view=diff
==============================================================================
--- maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/dependency/resolve/internal/Maven31DependencyResolver.java (original)
+++ maven/shared/trunk/maven-artifact-transfer/src/main/java/org/apache/maven/shared/dependency/resolve/internal/Maven31DependencyResolver.java Fri Jan  1 15:23:08 2016
@@ -102,31 +102,41 @@ public class Maven31DependencyResolver
             (ArtifactTypeRegistry) Invoker.invoke( RepositoryUtils.class, "newArtifactTypeRegistry",
                                                    ArtifactHandlerManager.class, artifactHandlerManager );
 
-        List<Dependency> aetherDeps = new ArrayList<Dependency>( mavenDependencies.size() );
-
         final Class<?>[] argClasses =
             new Class<?>[] { org.apache.maven.model.Dependency.class, ArtifactTypeRegistry.class };
 
-        for ( org.apache.maven.model.Dependency mavenDependency : mavenDependencies )
+        List<Dependency> aetherDeps = null;
+
+        if ( mavenDependencies != null )
         {
-            Object[] args = new Object[] { mavenDependency, typeRegistry };
+            aetherDeps = new ArrayList<Dependency>( mavenDependencies.size() );
 
-            Dependency aetherDependency =
-                (Dependency) Invoker.invoke( RepositoryUtils.class, "toDependency", argClasses, args );
+            for ( org.apache.maven.model.Dependency mavenDependency : mavenDependencies )
+            {
+                Object[] args = new Object[] { mavenDependency, typeRegistry };
 
-            aetherDeps.add( aetherDependency );
-        }
+                Dependency aetherDependency =
+                    (Dependency) Invoker.invoke( RepositoryUtils.class, "toDependency", argClasses, args );
 
-        List<Dependency> aetherManagedDeps = new ArrayList<Dependency>( managedMavenDependencies.size() );
+                aetherDeps.add( aetherDependency );
+            }
+        }
 
-        for ( org.apache.maven.model.Dependency mavenDependency : managedMavenDependencies )
+        List<Dependency> aetherManagedDependencies = null;
+        
+        if ( managedMavenDependencies != null )
         {
-            Object[] args = new Object[] { mavenDependency, typeRegistry };
+            aetherManagedDependencies = new ArrayList<Dependency>( managedMavenDependencies.size() );
+
+            for ( org.apache.maven.model.Dependency mavenDependency : managedMavenDependencies )
+            {
+                Object[] args = new Object[] { mavenDependency, typeRegistry };
 
-            Dependency aetherDependency =
-                (Dependency) Invoker.invoke( RepositoryUtils.class, "toDependency", argClasses, args );
+                Dependency aetherDependency =
+                    (Dependency) Invoker.invoke( RepositoryUtils.class, "toDependency", argClasses, args );
 
-            aetherManagedDeps.add( aetherDependency );
+                aetherManagedDependencies.add( aetherDependency );
+            }
         }
 
         @SuppressWarnings( "unchecked" )
@@ -134,7 +144,7 @@ public class Maven31DependencyResolver
             (List<RemoteRepository>) Invoker.invoke( RepositoryUtils.class, "toRepos", List.class,
                                                      buildingRequest.getRemoteRepositories() );
 
-        CollectRequest request = new CollectRequest( aetherDeps, aetherManagedDeps, aetherRepos );
+        CollectRequest request = new CollectRequest( aetherDeps, aetherManagedDependencies, aetherRepos );
 
         return resolveDependencies( buildingRequest, aetherRepos, filter, request );
     }