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

Sam Gleske edited comment on GROOVY-9710 at 9/2/20, 9:09 PM:
-------------------------------------------------------------

Closing as not a bug.

* Groovy 2.5 release notes call out the changed behavior.
 * A nice to  have would be [List.intersect API 
documentation|http://docs.groovy-lang.org/latest/html/groovy-jdk/java/util/List.html#intersect(java.lang.Iterable)]
 calling out the behavior for how it is ordered; or mentioning that ordering is 
not guaranteed and to use another method if guaranteed ordering is a concern.



was (Author: samrocketman):
* Groovy 2.5 release notes call out the changed behavior.
 * A nice to  have would be [List.intersect API 
documentation|http://docs.groovy-lang.org/latest/html/groovy-jdk/java/util/List.html#intersect(java.lang.Iterable)]
 calling out the behavior for how it is ordered; or mentioning that ordering is 
not guaranteed and to use another method if guaranteed ordering is a concern.


> List.intersect changes behavior from Groovy 2.4 and Groovy 2.5+
> ---------------------------------------------------------------
>
>                 Key: GROOVY-9710
>                 URL: https://issues.apache.org/jira/browse/GROOVY-9710
>             Project: Groovy
>          Issue Type: Bug
>          Components: groovy-runtime
>    Affects Versions: 3.0.5, 2.5.13
>         Environment: Ubuntu 18.04.5 LTS
> OpenJDK Java 1.8.0_265 (Private Build 25.265-b01)
> Gradle 5.6.3
>            Reporter: Sam Gleske
>            Priority: Major
>
> h2. Description
> [List.intersect|http://docs.groovy-lang.org/latest/html/groovy-jdk/java/util/List.html#intersect(java.lang.Iterable)]
>  preserves the ordering of the source list in Groovy 2.4 but instead takes 
> the ordering of the intersecting list. This can lead to unexpected behavior 
> in Groovy applications as code migrates to newer versions of Groovy.
> h2. Example code
> {code:java}
> // Passes assertion in Groovy 2.4.20 but fails in Groovy 2.5.13 and 3.0.5
> assert ['a', 'b'].intersect(['c', 'b', 'a']) == ['a', 'b']{code}
> h2. Expected behavior
> The order of the first list is preserved.
> h2. Actual behavior
> The order of the second list takes precedence.
> h2. Groovy version matrix
> ||Groovy version||Behavior||
> |2.4.20|Assertion passes|
> |2.5.13|Assertion fails (order reversed) |
> |3.0.5|Assertion fails (order reversed) |



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to