Release plugin throws NullPointerException when using version range for 
dependency
----------------------------------------------------------------------------------

                 Key: MNG-3351
                 URL: http://jira.codehaus.org/browse/MNG-3351
             Project: Maven 2
          Issue Type: Bug
    Affects Versions: 2.0.8
            Reporter: David Hoffer
            Priority: Blocker


After upgrading to 2.0.8 I find that the release plugin throws NPE if any 
dependency uses version range.

I have one dependency with version range <version>[1.0,2.0)</version> the rest 
are test scope with fixed version.

Here is the crash stack trace:
java.lang.NullPointerException: version was null for 
com.xrite:xrite-colorlib-api
[13:42:05]: at 
org.apache.maven.artifact.DefaultArtifact.getBaseVersion(DefaultArtifact.java:362)
[13:42:05]: at 
org.apache.maven.artifact.DefaultArtifact.isSnapshot(DefaultArtifact.java:557)
[13:42:05]: at 
org.apache.maven.shared.release.phase.CheckDependencySnapshotsPhase.checkArtifact(CheckDependencySnapshotsPhase.java:252)
[13:42:05]: at 
org.apache.maven.shared.release.phase.CheckDependencySnapshotsPhase.checkProject(CheckDependencySnapshotsPhase.java:138)
[13:42:05]: at 
org.apache.maven.shared.release.phase.CheckDependencySnapshotsPhase.execute(CheckDependencySnapshotsPhase.java:106)
[13:42:05]: at 
org.apache.maven.shared.release.DefaultReleaseManager.prepare(DefaultReleaseManager.java:194)
[13:42:05]: at 
org.apache.maven.shared.release.DefaultReleaseManager.prepare(DefaultReleaseManager.java:131)
[13:42:05]: at 
org.apache.maven.shared.release.DefaultReleaseManager.prepare(DefaultReleaseManager.java:94)
[13:42:05]: at 
org.apache.maven.plugins.release.PrepareReleaseMojo.execute(PrepareReleaseMojo.java:127)
[13:42:05]: at 
org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:447)
[13:42:05]: at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:559)
[13:42:05]: at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:513)
[13:42:05]: at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:483)
[13:42:05]: at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:331)
[13:42:05]: at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:228)
[13:42:05]: at 
org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:143)
[13:42:05]: at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:333)
[13:42:05]: at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:126)
[13:42:05]: at org.apache.maven.cli.MavenCli.main(MavenCli.java:282)
[13:42:05]: at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[13:42:05]: at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[13:42:05]: at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[13:42:05]: at java.lang.reflect.Method.invoke(Method.java:597)
[13:42:05]: at 
org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
[13:42:05]: at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
[13:42:05]: at 
org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
[13:42:05]: at org.codehaus.classworlds.Launcher.main(Launcher.java:375)

It seems the reason version is null is that the call to 
selectVersionFromNewRangeIfAvailable() assumes that 
versionRange.getRecommendedVersion() will always return non-null, else it sets 
the version to null!  However during the release:prepare phase this is not 
true, see the output:

[13:42:04]: [INFO] [release:prepare]
[13:42:04]: [INFO] Verifying that there are no local modifications...
[13:42:04]: [INFO] Executing: svn --non-interactive status
[13:42:04]: [INFO] Working directory: C:\BuildAgent\work\23044d751bcc9843
[13:42:05]: [INFO] Checking dependencies and plugins for snapshots ...
[13:42:05]: TEST!!! version=null
[13:42:05]: TEST!!! versionRange=[1.0,2.0)
[13:42:05]: TEST!!! getRecommendedVersion=null

TEST!!! Lines are my test code so I could see what is going on here.




-- 
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

        

Reply via email to