Skip to content
This repository has been archived by the owner on Jan 29, 2020. It is now read-only.

Commit

Permalink
Prevent NPE with dependencyManagement and dependencies
Browse files Browse the repository at this point in the history
git-svn-id: https://svn.apache.org/repos/asf/maven/shared/trunk@1722498 13f79535-47bb-0310-9956-ffa450edef68
  • Loading branch information
rfscholte committed Jan 1, 2016
1 parent 64fabce commit cc912b8
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 31 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ Iterable<ArtifactResult> resolveDependencies( ProjectBuildingRequest buildingReq

/**
* @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.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -103,31 +103,41 @@ public Iterable<org.apache.maven.shared.artifact.resolve.ArtifactResult> resolve
(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 };

Dependency aetherDependency =
(Dependency) Invoker.invoke( RepositoryUtils.class, "toDependency", argClasses, args );

List<Dependency> aetherManagedDependencies = new ArrayList<Dependency>( managedMavenDependencies.size() );
aetherDependencies.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 );

aetherManagedDependencies.add( aetherDependency );
aetherManagedDependencies.add( aetherDependency );
}
}

@SuppressWarnings( "unchecked" )
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -102,39 +102,49 @@ public Iterable<org.apache.maven.shared.artifact.resolve.ArtifactResult> resolve
(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" )
List<RemoteRepository> aetherRepos =
(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 );
}
Expand Down

0 comments on commit cc912b8

Please sign in to comment.