[ 
http://jira.codehaus.org/browse/MNG-3351?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_120540
 ] 

David Hoffer commented on MNG-3351:
-----------------------------------

Perhaps I was a bit hasty when I said this effects 2.0-beta-7 as well.  On the 
exact same project I released it today with 2.0.8 & 2.0-beta-7, when I went 
back and used 2.0-beta-6 I got this same error again.

Now if I go to a slightly more complicated build (just has more dependencies 
typically using version ranges) using 2.0.8 & 2.0-beta-7 I get a different 
problem.  When doing the release:prepare it says:

[INFO] Checking dependencies and plugins for snapshots ...
There are still some remaining snapshot dependencies.: Do you want to resolve th
em now? (yes/no) no: :

I have no idea what to select here.  This is new, I have never seen this 
message before.  However I have NO snapshot dependencies so why do I get this, 
it makes no sense to me.  (Because releases can't have snapshots we always make 
sure we have none.)

If I select no it fails due to a false message that says it can't release 
project due to non released dependencies: 
com.xrite:xrite-commons:jar;[1.84,2.0):compile
Again, this is not a snapshot...am I getting tripped up by the maven bug 
MNG-3092 where it will accept snapshots if they exist in this range?  

If I select yes then I get the following error:
[INFO] [release:prepare]
[INFO] Resuming release from phase 'check-dependency-snapshots'
[INFO] Checking dependencies and plugins for snapshots ...
There are still some remaining snapshot dependencies.: Do you want to resolve th
em now? (yes/no) no: : yes
Dependency type to resolve,: specify the selection number ( 0:All 1:Project Depe
ndencies 2:Plugins 3:Reports 4:Extensions ): (0/1/2/3) 1: :
Resolve Project Dependency Snapshots.: [INFO] ----------------------------------
--------------------------------------
[ERROR] FATAL ERROR
[INFO] ------------------------------------------------------------------------
[INFO] null
[INFO] ------------------------------------------------------------------------
[INFO] Trace
java.lang.NullPointerException
        at java.util.regex.Matcher.getTextLength(Matcher.java:1140)
        at java.util.regex.Matcher.reset(Matcher.java:291)
        at java.util.regex.Matcher.<init>(Matcher.java:211)
        at java.util.regex.Pattern.matcher(Pattern.java:888)
        at org.apache.maven.shared.release.versions.DefaultVersionInfo.<init>(De
faultVersionInfo.java:122)
        at org.apache.maven.shared.release.phase.CheckDependencySnapshotsPhase.p
rocessSnapshot(CheckDependencySnapshotsPhase.java:392)
        at org.apache.maven.shared.release.phase.CheckDependencySnapshotsPhase.r
esolveSnapshots(CheckDependencySnapshotsPhase.java:345)
        at org.apache.maven.shared.release.phase.CheckDependencySnapshotsPhase.c
heckProject(CheckDependencySnapshotsPhase.java:227)
        at org.apache.maven.shared.release.phase.CheckDependencySnapshotsPhase.e
xecute(CheckDependencySnapshotsPhase.java:106)
        at org.apache.maven.shared.release.DefaultReleaseManager.prepare(Default
ReleaseManager.java:194)
        at org.apache.maven.shared.release.DefaultReleaseManager.prepare(Default
ReleaseManager.java:131)
        at org.apache.maven.shared.release.DefaultReleaseManager.prepare(Default
ReleaseManager.java:94)
        at org.apache.maven.plugins.release.PrepareReleaseMojo.execute(PrepareRe
leaseMojo.java:136)
        at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPlugi
nManager.java:447)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(Defa
ultLifecycleExecutor.java:539)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandalone
Goal(DefaultLifecycleExecutor.java:493)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(Defau
ltLifecycleExecutor.java:463)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHan
dleFailures(DefaultLifecycleExecutor.java:311)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegmen
ts(DefaultLifecycleExecutor.java:224)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLi
fecycleExecutor.java:143)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:333)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:126)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:282)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.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)

So in summary 2.0.8 with 2.0-beta-7 works in one case and not in another.  I'm 
not clear what test case to attach to this issue as I do not understand what is 
going on with 2.0-beta-7 & 2.0.8.


> 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