[ 
https://issues.apache.org/jira/browse/MNG-8106?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17840582#comment-17840582
 ] 

ASF GitHub Bot commented on MNG-8106:
-------------------------------------

slawekjaranowski commented on code in PR #1481:
URL: https://github.com/apache/maven/pull/1481#discussion_r1578544215


##########
maven-api-impl/src/main/java/org/apache/maven/internal/impl/resolver/LocalSnapshotMetadata.java:
##########
@@ -113,6 +113,11 @@ protected void merge(Metadata recessive) {
 
         metadata = 
metadata.withVersioning(metadata.getVersioning().withSnapshotVersions(versions.values()));
 
+        // just carry-on as-is
+        if (recessive.getPlugins() != null && 
!recessive.getPlugins().isEmpty()) {
+            metadata = metadata.withPlugins(new 
ArrayList<>(recessive.getPlugins()));

Review Comment:
   should we also check if `metadata` already contains a `plugins`?





> Maven Metadata corruption if repository directory role overlaps
> ---------------------------------------------------------------
>
>                 Key: MNG-8106
>                 URL: https://issues.apache.org/jira/browse/MNG-8106
>             Project: Maven
>          Issue Type: Bug
>          Components: Artifacts and Repositories
>    Affects Versions: 3.9.0, 3.9.1, 3.9.2, 3.9.3, 3.9.4, 3.9.5, 3.9.6, 
> 4.0.0-alpha-2, 4.0.0-alpha-3, 4.0.0-alpha-4, 4.0.0-alpha-5, 4.0.0-alpha-7, 
> 4.0.0-alpha-8, 4.0.0-alpha-9, 4.0.0-alpha-10, 4.0.0-alpha-12, 4.0.0-alpha-13
>            Reporter: Tamas Cservenak
>            Assignee: Tamas Cservenak
>            Priority: Major
>             Fix For: 3.9.7, 4.0.0-beta-1
>
>
> In case certain directory role in repository is manifold (which IS against 
> best practices), data loss occurs. Metadata will contain this or that, but 
> not both data.
> Example: consider project producing these artifacts
>  * org.foo:bar:1.0
>  * org.foo.bar:baz:1.0
> In this case, the local (and remote) repository path {{org/foo/bar}} that is 
> a directory, will overlap in a way, it is G level for one artifact, and A 
> level for another. Now, if org.foo.bar:baz is a Maven Plugin, the G level 
> should contain plugin related (G level) metadata. At the same time, due 
> org.foo:bar this directory should contain A level metadata (list of 
> versions). Affected maven versions will simply drop "the other" metadata (so 
> if last deployed using this directory as G, the A data will be missing, and 
> other way around).
> Have to note that doing this kind of naming is against "best practices", but 
> still, can occur, for example in case of some refactoring/renaming of long 
> running project modules.



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

Reply via email to