Gili created MNG-8121:
-------------------------

             Summary: NullPointerException at 
org.apache.maven.artifact.repository.metadata.Metadata.merge (Metadata.java:293)
                 Key: MNG-8121
                 URL: https://issues.apache.org/jira/browse/MNG-8121
             Project: Maven
          Issue Type: Bug
          Components: Artifacts and Repositories
    Affects Versions: 3.9.6
         Environment: Maven 3.9.6
maven-plugin-plugin 3.13.0
            Reporter: Gili


TL;DR org.apache.maven.artifact.repository.metadata.Metadata.merge 
(Metadata.java:293) throws NullPointerException if previous releases of a 
plugin did not have a goalPrefix set.
 
At least, this is my interpretation of what is going on.
 
Background
-------------
 
I have an open-source project at 
[https://github.com/cmake-maven-project/cmake-maven-project/tree/v3.27.1-b1] 
with the following coordinates:
 
<groupId>com.googlecode.cmake-maven-project</groupId>
<artifactId>cmake</artifactId>
 

If I upgrade "maven-plugin-plugin" from version 3.10.1 to 3.13.0 I am forced to 
set "<goalPrefix>" because of https://issues.apache.org/jira/browse/MPLUGIN-450 
and 
[https://github.com/apache/maven-plugin-tools/commit/ed4774bcd8b8d2d1f7ff1196cf7644054cb3ae14#diff-624cbd32cd7fc0f3f9154fbec92b8a1aebb04614360b4a0b5fc28a407e99d743L96]

 

In my particular case, I set "<goalPrefix>cmake-binaries</goalPrefix>" inside 
cmake-binaries-plugin/pom.xml.

Now, when I try deploying a release to Maven Central I get the following 
exception stack trace:

 
 
{noformat}
java.lang.NullPointerException
    at org.apache.maven.artifact.repository.metadata.Metadata.merge 
(Metadata.java:293)
    at 
org.apache.maven.artifact.repository.metadata.AbstractRepositoryMetadata.updateRepositoryMetadata
 (AbstractRepositoryMetadata.java:99)
    at 
org.apache.maven.artifact.repository.metadata.AbstractRepositoryMetadata.storeInLocalRepository
 (AbstractRepositoryMetadata.java:59)
    at org.apache.maven.artifact.repository.metadata.MetadataBridge.merge 
(MetadataBridge.java:56)
    at org.eclipse.aether.internal.impl.DefaultDeployer.upload 
(DefaultDeployer.java:399)
    at org.eclipse.aether.internal.impl.DefaultDeployer.deploy 
(DefaultDeployer.java:294)
    at org.eclipse.aether.internal.impl.DefaultDeployer.deploy 
(DefaultDeployer.java:202)
    at org.eclipse.aether.internal.impl.DefaultRepositorySystem.deploy 
(DefaultRepositorySystem.java:393)
    at org.apache.maven.artifact.deployer.DefaultArtifactDeployer.deploy 
(DefaultArtifactDeployer.java:131)
    at 
org.sonatype.nexus.maven.staging.deploy.strategy.AbstractDeployStrategy.deployUp
 (AbstractDeployStrategy.java:213)
    at 
org.sonatype.nexus.maven.staging.deploy.strategy.StagingDeployStrategy.finalizeDeploy
 (StagingDeployStrategy.java:125)
    at org.sonatype.nexus.maven.staging.deploy.DeployMojo.execute 
(DeployMojo.java:213)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo 
(DefaultBuildPluginManager.java:126){noformat}
 
I assume that this is caused by {{preExisting.getPrefix()}} returning null, but 
I have no idea why this is happening. Perhaps this is caused by previous 
versions not have a goalPrefix set? Shouldn't the implementation handle this 
possibility?



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to