[ https://issues.apache.org/jira/browse/GROOVY-7876?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Paul King resolved GROOVY-7876. ------------------------------- Resolution: Fixed Assignee: Paul King Fix Version/s: 2.4.8 Proposed PR merged > ClassCastException when calling DefaultTypeTransformation#compareEqual > ---------------------------------------------------------------------- > > Key: GROOVY-7876 > URL: https://issues.apache.org/jira/browse/GROOVY-7876 > Project: Groovy > Issue Type: Bug > Affects Versions: 2.4.6 > Reporter: Andrew White > Assignee: Paul King > Fix For: 2.4.8 > > > It appears that comparing two objects that both implement comparable with > DefaultTypeTransformation#compareEqual is not safe in all cases. Consider > enums for example, which throw exceptions when compared to differing classes. > This is using Eclipse Collections for pairs but the idea is the same in > general. > {code} > enum E1 {A, B, C} > enum E2 {D, E, F} > def "test groovy oddness"() { > when: > def test = DefaultTypeTransformation.compareEqual( > Tuples.pair(E1.A, 1), > Tuples.pair(E2.D, 1)) > then: > assert test == false > } > {code} > Stacktrace > {code} > java.lang.ClassCastException > at java.lang.Enum.compareTo(Enum.java:180) > at java.lang.Enum.compareTo(Enum.java:55) > at > org.eclipse.collections.impl.tuple.PairImpl.compareTo(PairImpl.java:95) > at > org.eclipse.collections.impl.tuple.PairImpl.compareTo(PairImpl.java:22) > at com.GroovyTests.test groovy oddness(GroovyTests.groovy:36) > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)