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

Elliotte Rusty Harold commented on MNG-7316:
--------------------------------------------

I'd say the Java API is bad also, for exactly this reason. This is hardly the 
first time I've encountered this problem, but that ship sailed last century.

However regardless of API specification or lack thereof, I do think it's 
reasonable to expect that a mutable return value remain mutable in patch 
releases. Per semver, "Major version X (X.y.z | X > 0) MUST be incremented if 
any backwards incompatible changes are introduced to the public API." and this 
is a backwards incompatible change in the public API. I'm on the fence about 
whether it's serious enough for someone to put in the effort to patch 3.8.x 
just to fix this. If 3.9.0 is coming out soon and will fix this, I'd be OK with 
that. If not, it should probably be fixed in 3.8.x though volunteer hours are a 
limited resource.

> MavenProject.getAttachedArtifacts() regression with 3.8.1
> ---------------------------------------------------------
>
>                 Key: MNG-7316
>                 URL: https://issues.apache.org/jira/browse/MNG-7316
>             Project: Maven
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 3.8.2, 3.8.3
>            Reporter: Gary D. Gregory
>            Priority: Critical
>             Fix For: waiting-for-feedback, wontfix-candidate
>
>
> The method {{MavenProject.getAttachedArtifacts()}} as of 3.8.2 breaks 
> releasing components for us at Apache Commons using our Maven Release plugin 
> because the list returned is now immutable, we now get an exception when 
> calling {{remove()}} on the collection returned by the API; see 
> [https://github.com/apache/commons-release-plugin/blob/master/src/main/java/org/apache/commons/release/plugin/mojos/CommonsDistributionDetachmentMojo.java#L137]
> This worked fine in 3.8.1, may you please change it back for 3.8.4?
> We cannot use Maven 3.8.2 and 3.8.3 to release our components.
> ([~michael-o]: Ironically, I discovered this trying to create a release 
> candidate for Apache Commons CLI.)
> The exception in 3.8.3:
> {quote}Caused by: java.lang.UnsupportedOperationException
>  at java.util.Collections$UnmodifiableCollection.remove 
> (Collections.java:1060)
>  at 
> org.apache.commons.release.plugin.mojos.CommonsDistributionDetachmentMojo.execute
>  (CommonsDistributionDetachmentMojo.java:136)
>  at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo 
> (DefaultBuildPluginManager.java:137)
> {quote}
>  



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

Reply via email to