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


Reply via email to