apache / apache/maven-release

[MRELEASE-872] NPE in release:perform when specifying svn tag as param

Open
#1,343 3 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
Java
Stars
128
Forks
145
Avg merge
7h 7m
Merged PRs (30d)
3

Description

**[Anders Hammar](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=afloom)** opened **[MRELEASE-872](https://issues.apache.org/jira/browse/MRELEASE-872?redirect=false)** and commented

When executing release:perform and specifying the Svn tag via the 'connectionUrl' parameter, the execution fails with a NullPointerException. This happens for an execution without an existing Maven project (e.g. in an empty directory).

> [ERROR] Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.5:perform (default-cli) on project standalone-pom: Execution default-cli of goal org.apache.maven.plugins:maven-release-plugin:2.5:perform failed. NullPointerException -> [Help 1]
> org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.5:perform (default-cli) on project standalone-pom: Execution default-cli
> of goal org.apache.maven.plugins:maven-release-plugin:2.5:perform failed.
> at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:225)
> at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
> at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
> at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
> at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
> at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
> at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
> at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
> at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
> at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
> at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
> at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
> at java.lang.reflect.Method.invoke(Method.java:611)
> at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
> at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
> at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
> at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
> Caused by: org.apache.maven.plugin.PluginExecutionException: Execution default-cli of goal org.apache.maven.plugins:maven-release-plugin:2.5:perform failed.
> at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:110)
> at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
> ... 19 more
> Caused by: java.lang.NullPointerException
> at org.apache.maven.shared.release.util.ReleaseUtil.getCommonBasedir(ReleaseUtil.java:210)
> at org.apache.maven.shared.release.util.ReleaseUtil.getCommonBasedir(ReleaseUtil.java:200)
> at org.apache.maven.shared.release.phase.CheckoutProjectFromScm.performCheckout(CheckoutProjectFromScm.java:230)
> at org.apache.maven.shared.release.phase.CheckoutProjectFromScm.execute(CheckoutProjectFromScm.java:131)
> at org.apache.maven.shared.release.DefaultReleaseManager.perform(DefaultReleaseManager.java:429)
> at org.apache.maven.shared.release.DefaultReleaseManager.perform(DefaultReleaseManager.java:381)
> at org.apache.maven.plugins.release.PerformReleaseMojo.execute(PerformReleaseMojo.java:177)
> at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
> ... 20 more

---

**Affects:** 2.4.2, 2.5

Contributor guide

No contributing guide indexed for this repository

Research direction

Reproduce release:perform from an empty directory with connectionUrl set to an SVN tag. Start with ReleaseUtil.getCommonBasedir and CheckoutProjectFromScm.performCheckout, the locations shown in the stack trace. Done means this scenario no longer fails with a NullPointerException and has an appropriate release:perform result.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
build-system, release
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.