[ 
https://issues.apache.org/jira/browse/MNG-6495?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16668887#comment-16668887
 ] 

Elliotte Rusty Harold commented on MNG-6495:
--------------------------------------------

I think this is the code where I stumbled onto this. Looks like I since added a 
ModelResolver to avoid the issue, but try setting that to null instead and see 
what happens. 


package com.google.cloud.tools.opensource.dependencies;

import java.net.MalformedURLException;
import java.net.URL;

import org.apache.maven.building.UrlSource;
import org.apache.maven.model.Model;
import org.apache.maven.model.building.DefaultModelBuilder;
import org.apache.maven.model.building.DefaultModelBuilderFactory;
import org.apache.maven.model.building.DefaultModelBuildingRequest;
import org.apache.maven.model.building.ModelBuildingException;
import org.apache.maven.model.building.ModelBuildingRequest;
import org.apache.maven.model.building.ModelBuildingResult;
import org.apache.maven.model.building.ModelSource;
import org.apache.maven.model.building.UrlModelSource;
import org.apache.maven.model.resolution.ModelResolver;
import org.apache.maven.model.resolution.UnresolvableModelException;
import org.apache.maven.project.ProjectModelResolver;
import org.eclipse.aether.artifact.DefaultArtifact;
import org.eclipse.aether.collection.DependencyCollectionException;
import org.eclipse.aether.resolution.DependencyResolutionException;

public class MetadataExplorer {

  public static void main(String[] args)
      throws DependencyCollectionException, DependencyResolutionException, 
MalformedURLException, UnresolvableModelException {
    
    try {
      DefaultArtifact artifact = new 
DefaultArtifact("com.google.guava:guava:26.0-jre");
      DefaultModelBuilder modelBuilder = new 
DefaultModelBuilderFactory().newInstance();

      ModelBuildingRequest request = new DefaultModelBuildingRequest();
      URL pomUrl = new URL(
          
"https://repo1.maven.org/maven2/com/google/guava/guava/26.0-jre/guava-26.0-jre.pom";);
      UrlModelSource source = new UrlModelSource(pomUrl);
      request.setModelSource(source);
      
      ProjectModelResolver modelResolver
          = new ProjectModelResolver(null, null, null, null, null, null, null);
      
      ModelSource s = modelResolver.resolveModel("com.google.guava", "guava", 
"26.0-jre");
      
      request.setModelResolver(modelResolver);
      ModelBuildingResult result = modelBuilder.build(request);
      Model model = result.getEffectiveModel();
      System.out.println(model.getArtifactId());
    } catch (IllegalArgumentException ex) {
      System.err.println("Bad Maven coordinates " + args[0]);
      return;      
    } catch (ModelBuildingException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
  }

}


> ModelResolver cannot be null
> ----------------------------
>
>                 Key: MNG-6495
>                 URL: https://issues.apache.org/jira/browse/MNG-6495
>             Project: Maven
>          Issue Type: Bug
>          Components: Bootstrap & Build
>    Affects Versions: 3.5.4
>            Reporter: Elliotte Rusty Harold
>            Priority: Major
>
> Got this exception stacktrace while writing some of my own code today:
> {noformat}
> Exception in thread "main" java.lang.NullPointerException: 
> request.modelResolver cannot be null (parent POM 
> com.google.guava:guava-parent:26.0-jre and POM 
> com.google.guava:guava:[unknown-version])
>       at org.apache.commons.lang3.Validate.notNull(Validate.java:225)
>       at 
> org.apache.maven.model.building.DefaultModelBuilder.readParentExternally(DefaultModelBuilder.java:1046)
>       at 
> org.apache.maven.model.building.DefaultModelBuilder.readParent(DefaultModelBuilder.java:830)
>       at 
> org.apache.maven.model.building.DefaultModelBuilder.build(DefaultModelBuilder.java:332)
>       at 
> com.google.cloud.tools.opensource.dependencies.MetadataExplorer.main(MetadataExplorer.java:50)
> {noformat}
> No big deal except that the JavaDoc at 
> [ModelBuildingRequest|http://maven.apache.org/ref/3.5.4/maven-model-builder/apidocs/org/apache/maven/model/building/ModelBuildingRequest.html]
>  says "The model resolver to use, may be null."
> Not sure whether to update the docs or the code here. 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to