[ https://issues.apache.org/jira/browse/GROOVY-7530?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14728582#comment-14728582 ]
Jochen Theodorou commented on GROOVY-7530: ------------------------------------------ If it is non-static Groovy code calling the method, you can provide your own extension module to provide this method by yourself and overwrite the version in the runtime as at quick fix. As for the vulnerability, it would be nice to have explained how. Because otherwise a fix of this (if done), may not fix your problem. > 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 > > {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)