Issue Details (XML | Word | Printable)

Key: MNG-2739
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: John Casey
Reporter: Jason van Zyl
Votes: 0
Watchers: 2
Operations

If you were logged in you would be able to see more operations.
Maven 2

Repository entries are not validated and NPE will occur

Created: 02/Jan/07 09:34 AM   Updated: 14/May/09 04:11 AM
Component/s: Artifacts and Repositories
Affects Version/s: None
Fix Version/s: 2.0.10, 2.1.0-M1

Time Tracking:
Not Specified

Issue Links:
Duplicate
 

Complexity: Intermediate


 Description  « Hide
Using something like the following has no id and an incorrect file url:

<profile>
<id>cbuilds</id>
<repositories>
<repository>
<url>/Users/jvanzyl/js/org/codehaus/mojo/trunk/mojo/mojo-sandbox/c-builds/test-cpkg/m2-repo</url>
</repository>
</repositories>
</profile>

java.lang.NullPointerException
at org.apache.maven.wagon.repository.Repository.hashCode(Repository.java:239)
at java.util.HashMap.hash(HashMap.java:264)
at java.util.HashMap.put(HashMap.java:382)
at java.util.HashSet.add(HashSet.java:194)
at org.apache.maven.project.DefaultMavenProjectBuilder.buildInternal(DefaultMavenProjectBuilder.java:665)
at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromSourceFileInternal(DefaultMavenProjectBuilder.java:416)
at org.apache.maven.project.DefaultMavenProjectBuilder.build(DefaultMavenProjectBuilder.java:192)
at org.apache.maven.DefaultMaven.getProject(DefaultMaven.java:515)
at org.apache.maven.DefaultMaven.collectProjects(DefaultMaven.java:447)
at org.apache.maven.DefaultMaven.getProjects(DefaultMaven.java:351)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:278)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:115)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:256)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
at org.codehaus.classworlds.Launcher.main(Launcher.java:375)



 All   Comments   Work Log   Change History      Sort Order: Ascending order - Click to sort in descending order
John Casey added a comment - 09/May/08 12:57 PM
almost got the integration test done for this, but I'm snagged on some other (unrelated, I think) failing ITs. I'll continue to work on it, though.

John Casey added a comment - 23/May/08 04:53 PM
added logic to ProjectUtils and MavenTools implementations to validate that repo ID and URL are present before constructing an ArtifactRepository instance.

John Casey added a comment - 26/Jul/08 04:37 PM
same thing is happening with mirror repositories, when id is left off. Need to guard against this somehow.

Paul Benedict added a comment - 27/Jul/08 08:30 AM
My first question is whether <id> and <url> are required elements? If so, why isn't the pull parser validating the syntax?

John Casey added a comment - 28/Jul/08 03:17 PM

John Casey added a comment - 28/Jul/08 03:20 PM
fixed in 2.0.10 branch, will port/merge over to 2.0.x and trunk branches now.

John Casey added a comment - 03/Sep/08 04:59 PM
Adding fix-for for both 2.0.10 and 2.1.0-M1, since 2.1.0-M1 will actually be released first and may not incorporate all of the eventual issue fixes released in 2.0.10.

Julien HENRY added a comment - 14/May/09 04:11 AM
Hi,

It seems I have the same issue with one of my projects. It occurs during site creation (mvn clean install works fine).

>mvn site -X
+ Error stacktraces are turned on.
Apache Maven 2.1.0 (r755702; 2009-03-18 20:10:27+0100)
Java version: 1.6.0_12
Java home: C:\Program Files\Java\jdk1.6.0_12\jre
Default locale: fr_FR, platform encoding: Cp1252
OS name: "windows xp" version: "5.1" arch: "x86" Family: "windows"
[DEBUG] Building Maven user-level plugin registry from: 'C:\Documents and Settings\jhenry\.m2\plugin-registry.xml'
[DEBUG] Building Maven global-level plugin registry from: 'D:\apache-maven-2.1.0\bin\..\conf\plugin-registry.xml'
[INFO] Scanning for projects...
[DEBUG] Searching for parent-POM: com.mycompany.sud:parent:pom:1.0.3-SNAPSHOT of project: mycompany.cust.project:project:jar:1.0-SNAPSHOT in relative path: ../pom.xml
[DEBUG] Parent-POM: com.mycompany.sud:parent:pom:1.0.3-SNAPSHOT not found in relative path: ../pom.xml
[DEBUG] Retrieving parent-POM: com.mycompany.sud:parent:pom:1.0.3-SNAPSHOT for project: mycompany.cust.project:project:jar:1.0-SNAPSHOT from the repository.
[DEBUG] Skipping disabled repository central
[DEBUG] parent: using locally installed snapshot
[DEBUG] Wagons could not be registered as the extension container was never created
[INFO] ------------------------------------------------------------------------
[INFO] Building project
[INFO]    task-segment: [site]
[INFO] ------------------------------------------------------------------------
[DEBUG] Retrieving parent-POM: org.apache.maven.plugins:maven-plugins:pom:11 for project: null:maven-site-plugin:maven-plugin:2.0-beta-7 from the repository.
[DEBUG] Retrieving parent-POM: org.apache.maven:maven-parent:pom:8 for project: org.apache.maven.plugins:maven-plugins:pom:11 from the repository.
[DEBUG] Retrieving parent-POM: org.apache:apache:pom:4 for project: org.apache.maven:maven-parent:pom:8 from the repository.
[DEBUG] Retrieving parent-POM: org.apache.maven.plugins:maven-plugins:pom:8 for project: null:maven-compiler-plugin:maven-plugin:2.0.2 from the repository.
[DEBUG] Retrieving parent-POM: org.apache.maven:maven-parent:pom:5 for project: org.apache.maven.plugins:maven-plugins:pom:8 from the repository.
[DEBUG] Retrieving parent-POM: org.apache:apache:pom:3 for project: org.apache.maven:maven-parent:pom:5 from the repository.
[DEBUG] Retrieving parent-POM: org.apache.maven.plugins:maven-plugins:pom:7 for project: org.apache.maven.plugins:maven-eclipse-plugin:maven-plugin:2.3 from the repository.
[DEBUG] Retrieving parent-POM: org.apache.maven:maven-plugin-surrogate-parent:pom:5 for project: org.apache.maven.plugin
s:maven-plugins:pom:7 from the repository.
[DEBUG] Retrieving parent-POM: org.apache.maven.surefire:surefire:pom:2.3 for project: org.apache.maven.plugins:maven-surefire-plugin:maven-plugin:2.3 from the repository.
[DEBUG] Retrieving parent-POM: org.apache.maven.plugins:maven-plugins:pom:4 for project: null:maven-javadoc-plugin:maven-plugin:2.2 from the repository.
[INFO] ------------------------------------------------------------------------
[ERROR] FATAL ERROR
[INFO] ------------------------------------------------------------------------
[INFO] id can not be null
[INFO] ------------------------------------------------------------------------
[DEBUG] Trace
java.lang.NullPointerException: id can not be null
        at org.apache.maven.wagon.repository.Repository.<init>(Repository.java:81)
        at org.apache.maven.artifact.repository.DefaultArtifactRepository.<init>(DefaultArtifactRepository.java:70)
        at org.apache.maven.artifact.repository.DefaultArtifactRepositoryFactory.createDeploymentArtifactRepository(DefaultArtifactRepositoryFactory.java:44)
        at org.apache.maven.project.ProjectUtils.buildDeploymentArtifactRepository(ProjectUtils.java:80)
        at org.apache.maven.project.DefaultMavenProjectBuilder.processProjectLogic(DefaultMavenProjectBuilder.java:1038)

        at org.apache.maven.project.DefaultMavenProjectBuilder.buildInternal(DefaultMavenProjectBuilder.java:880)
        at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromRepository(DefaultMavenProjectBuilder.java:255)
        at org.apache.maven.plugin.DefaultPluginManager.checkRequiredMavenVersion(DefaultPluginManager.java:270)
        at org.apache.maven.plugin.DefaultPluginManager.verifyVersionedPlugin(DefaultPluginManager.java:198)
        at org.apache.maven.plugin.DefaultPluginManager.verifyReportPlugin(DefaultPluginManager.java:605)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.verifyReportPlugin(DefaultLifecycleExecutor.java:1557)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.getReportExecutions(DefaultLifecycleExecutor.java:912)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.getReportExecutions(DefaultLifecycleExecutor.java:888)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:583)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:540)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:519)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:371)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:332)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:181)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:356)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:137)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:356)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
        at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
        at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
        at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1 second
[INFO] Finished at: Thu May 14 11:03:53 CEST 2009
[INFO] Final Memory: 5M/9M
[INFO] ------------------------------------------------------------------------