You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Konrad Windszus (Jira)" <ji...@apache.org> on 2022/02/21 18:25:00 UTC

[jira] [Created] (MNG-7418) Incorrect merging of snapshot versions in o.a.m.artifact.repository.metadata.Metadata.merge(...)

Konrad Windszus created MNG-7418:
------------------------------------

             Summary: Incorrect merging of snapshot versions in o.a.m.artifact.repository.metadata.Metadata.merge(...)
                 Key: MNG-7418
                 URL: https://issues.apache.org/jira/browse/MNG-7418
             Project: Maven
          Issue Type: Bug
          Components: Artifacts and Repositories
    Affects Versions: 3.8.4
            Reporter: Konrad Windszus


Given that I have two metadata on version level:

{code}
<metadata modelVersion="1.1.0">
<groupId>org.apache.jackrabbit.vault</groupId>
<artifactId>org.apache.jackrabbit.vault</artifactId>
<version>3.5.9-SNAPSHOT</version>
<versioning>
...
<snapshotVersions>
<snapshotVersion>
<extension>jar</extension>
<value>3.5.9-1</value>
<updated>20220218143327</updated>
</snapshotVersion>
</snapshotVersions>
</versioning>
</metadata>
{code}

and 

<metadata modelVersion="1.1.0">
<groupId>org.apache.jackrabbit.vault</groupId>
<artifactId>org.apache.jackrabbit.vault</artifactId>
<version>3.5.9-SNAPSHOT</version>
<versioning>
...
<snapshotVersions>
<snapshotVersion>
<extension>jar</extension>
<value>3.5.9-2</value>
<updated>20220220143327</updated>
</snapshotVersion>
</snapshotVersions>
</versioning>
</metadata>
{code}

Merging both via https://github.com/apache/maven/blob/03df5f7c639db744a3597c7175c92c8e2a27767b/maven-repository-metadata/src/main/mdo/metadata.mdo#L91 does not lead to two different snapshotVersions but only the one from the original metadata.

On the other hand the merge in https://github.com/apache/maven/blob/03df5f7c639db744a3597c7175c92c8e2a27767b/maven-resolver-provider/src/main/java/org/apache/maven/repository/internal/RemoteSnapshotMetadata.java#L72 does seem to do the merging correctly.

As IMHO the logic of merging should be agnostic of the resolver provider, those versions should always be merged using all three fields from https://github.com/apache/maven/blob/03df5f7c639db744a3597c7175c92c8e2a27767b/maven-repository-metadata/src/main/mdo/metadata.mdo#L315-L333 concatenated as ID.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)