You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Brian Fox (JIRA)" <ji...@codehaus.org> on 2008/03/03 19:31:28 UTC
[jira] Commented: (MNG-2123) NullPointerException when a dependency
uses version range and another uses an actual version incompatible with
that range
[ http://jira.codehaus.org/browse/MNG-2123?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_125943 ]
Brian Fox commented on MNG-2123:
--------------------------------
The proposed fix is to return RELEASE as the version if two dependencies at the same level specify incompatible versions (ie 3.2 and (2.0,3.1.99]). Clearly we shouldn't throw an NPE, but returning the RELEASE version feels wrong. First that totally breaks repeatability of a build and second, shouldn't we notify the user with a useful exception instead of guessing anything?
(discussion on @ dev: http://www.nabble.com/Comments-on-MNG-2123-%28version-specification-issues%29-td15810087s177.html)
> NullPointerException when a dependency uses version range and another uses an actual version incompatible with that range
> -------------------------------------------------------------------------------------------------------------------------
>
> Key: MNG-2123
> URL: http://jira.codehaus.org/browse/MNG-2123
> Project: Maven 2
> Issue Type: Bug
> Components: Dependencies
> Affects Versions: 2.0.2, 2.0.3, 2.0.4
> Reporter: Carlos Sanchez
> Assignee: Brian Fox
> Fix For: 2.0.9
>
> Attachments: MNG-2123-maven-artifact.patch, mng2123_versionRangeDependency.tar.bz2, pom.xml
>
> Original Estimate: 4 hours
> Remaining Estimate: 4 hours
>
> Struts 1.2.7 depends on commons-digester 1.6 and jasperreports 1.1.1 in [1.7,)
> Build fails with a null pointer exception that is not very explanatory
> [INFO] Scanning for projects...
> [INFO] ----------------------------------------------------------------------------
> [INFO] Building Unnamed - test:test:jar:1.0-SNAPSHOT
> [INFO] task-segment: [test]
> [INFO] ----------------------------------------------------------------------------
> [INFO] [resources:resources]
> [INFO] Using default encoding to copy filtered resources.
> [INFO] ----------------------------------------------------------------------------
> [ERROR] FATAL ERROR
> [INFO] ----------------------------------------------------------------------------
> [INFO] version was null for commons-digester:commons-digester
> [INFO] ----------------------------------------------------------------------------
> [INFO] Trace
> java.lang.NullPointerException: version was null for commons-digester:commons-digester
> at org.apache.maven.artifact.DefaultArtifact.getBaseVersion(DefaultArtifact.java:361)
> at org.apache.maven.artifact.DefaultArtifact.getId(DefaultArtifact.java:222)
> at org.apache.maven.artifact.resolver.ResolutionNode.getDependencyTrail(ResolutionNode.java:115)
> at org.apache.maven.artifact.resolver.DefaultArtifactCollector.collect(DefaultArtifactCollector.java:88)
> at org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolveTransitively(DefaultArtifactResolver.java:223)
> at org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolveTransitively(DefaultArtifactResolver.java:211)
> at org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolveTransitively(DefaultArtifactResolver.java:182)
> at org.apache.maven.plugin.DefaultPluginManager.resolveTransitiveDependencies(DefaultPluginManager.java:1117)
> at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:366)
> at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:534)
> at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:475)
> at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:454)
> at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:306)
> at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:273)
> at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:140)
> at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:322)
> 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)
> [INFO] ----------------------------------------------------------------------------
> [INFO] Total time: 1 second
> [INFO] Finished at: Sun Mar 05 23:26:16 PST 2006
> [INFO] Final Memory: 3M/5M
> [INFO] ----------------------------------------------------------------------------
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira