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