Repository: groovy
Updated Branches:
  refs/heads/master 2c226838e -> 0d86565c5


GROOVY-7876: ClassCastException when calling 
DefaultTypeTransformation#compareEqual (minor refactor)


Project: http://git-wip-us.apache.org/repos/asf/groovy/repo
Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/0d86565c
Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/0d86565c
Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/0d86565c

Branch: refs/heads/master
Commit: 0d86565c503595965ce2ed697e87ddafe7c40491
Parents: 2c22683
Author: paulk <pa...@asert.com.au>
Authored: Sun Jul 24 21:27:16 2016 +1000
Committer: paulk <pa...@asert.com.au>
Committed: Sun Jul 24 21:27:16 2016 +1000

----------------------------------------------------------------------
 .../groovy/runtime/typehandling/DefaultTypeTransformation.java  | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/groovy/blob/0d86565c/src/main/org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.java
----------------------------------------------------------------------
diff --git 
a/src/main/org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.java
 
b/src/main/org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.java
index 41484d8..94e0084 100644
--- 
a/src/main/org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.java
+++ 
b/src/main/org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.java
@@ -578,9 +578,12 @@ public class DefaultTypeTransformation {
             else if (left instanceof String && right instanceof GString) {
                 return ((String) left).compareTo(right.toString());
             }
+            else if (left instanceof GString && right instanceof String) {
+                return ((GString) left).compareTo(right);
+            }
             if (!equalityCheckOnly || 
left.getClass().isAssignableFrom(right.getClass())
                     || (right.getClass() != Object.class && 
right.getClass().isAssignableFrom(left.getClass())) //GROOVY-4046
-                    || (left instanceof GString && right instanceof String)) {
+            ) {
                 Comparable comparable = (Comparable) left;
                 // GROOVY-7876: when comparing for equality we try to only 
call compareTo when an assignable
                 // relationship holds but with a container/holder class and 
because of erasure, we might still end

Reply via email to