[ https://issues.apache.org/jira/browse/GROOVY-7530?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Paul King reassigned GROOVY-7530: --------------------------------- Assignee: Paul King > disjoint() does not work correctly if objects don't implement Comparable > ------------------------------------------------------------------------ > > Key: GROOVY-7530 > URL: https://issues.apache.org/jira/browse/GROOVY-7530 > Project: Groovy > Issue Type: Bug > Components: groovy-runtime > Affects Versions: 2.4.4 > Reporter: Tobias Ahlers > Assignee: Paul King > > {code:java} > class Foo { > private String name > Foo(String name) { > this.name = name > } > public boolean equals(Object o) { > if (this == o) return true > if (o == null || getClass() != o.getClass()) return false > Foo that = (Foo) o > return Objects.equals(name, that.name) > } > public int hashCode() { > return Objects.hash(name) > } > } > def a = [new Foo("foo")] > def b = [new Foo("foo")] > assert !a.disjoint(b) > {code} > If disjoint() is used on a list with objects not implementing Comparable the > wrong result is returned. > intersect() shows the same wrong behavior. > It's looks like the NumberAwareComparator not implementing the equals case as > of commit 286532c is the problem. -- This message was sent by Atlassian JIRA (v6.3.4#6332)