Author: scolebourne
Date: Fri Aug 18 12:51:26 2006
New Revision: 432703

URL: http://svn.apache.org/viewvc?rev=432703&view=rev
Log:
Ensure classes are the same in Enum.compareTo

Modified:
    
jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/enums/Enum.java
    
jakarta/commons/proper/lang/trunk/src/test/org/apache/commons/lang/enums/EnumEqualsTest.java

Modified: 
jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/enums/Enum.java
URL: 
http://svn.apache.org/viewvc/jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/enums/Enum.java?rev=432703&r1=432702&r2=432703&view=diff
==============================================================================
--- 
jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/enums/Enum.java
 (original)
+++ 
jakarta/commons/proper/lang/trunk/src/java/org/apache/commons/lang/enums/Enum.java
 Fri Aug 18 12:51:26 2006
@@ -1,5 +1,5 @@
 /*
- * Copyright 2002-2005 The Apache Software Foundation.
+ * Copyright 2002-2006 The Apache Software Foundation.
  * 
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -584,6 +584,8 @@
             if (other.getClass().getName().equals(this.getClass().getName())) {
                 return iName.compareTo( getNameInOtherClassLoader(other) );
             }
+            throw new ClassCastException(
+                    "Different enum class '" + 
ClassUtils.getShortClassName(other.getClass()) + "'");
         }
         return iName.compareTo(((Enum) other).iName);
     }

Modified: 
jakarta/commons/proper/lang/trunk/src/test/org/apache/commons/lang/enums/EnumEqualsTest.java
URL: 
http://svn.apache.org/viewvc/jakarta/commons/proper/lang/trunk/src/test/org/apache/commons/lang/enums/EnumEqualsTest.java?rev=432703&r1=432702&r2=432703&view=diff
==============================================================================
--- 
jakarta/commons/proper/lang/trunk/src/test/org/apache/commons/lang/enums/EnumEqualsTest.java
 (original)
+++ 
jakarta/commons/proper/lang/trunk/src/test/org/apache/commons/lang/enums/EnumEqualsTest.java
 Fri Aug 18 12:51:26 2006
@@ -87,4 +87,33 @@
         assertEquals(false, TrafficlightColorEnum.RED.equals(new 
TotallyUnrelatedClass("some")));
         assertEquals(false, CarColorEnum.RED.equals(new 
TotallyUnrelatedClass("some")));
     }
+
+    //-----------------------------------------------------------------------
+    public void testCompareTo() {
+        try {
+            CarColorEnum.RED.compareTo(TrafficlightColorEnum.RED);
+            fail();
+        } catch (ClassCastException ex) {}
+        try {
+            CarColorEnum.YELLOW.compareTo(TrafficlightColorEnum.YELLOW);
+            fail();
+        } catch (ClassCastException ex) {}
+        try {
+            TrafficlightColorEnum.RED.compareTo(new 
TotallyUnrelatedClass("red"));
+            fail();
+        } catch (ClassCastException ex) {}
+        try {
+            CarColorEnum.RED.compareTo(new TotallyUnrelatedClass("red"));
+            fail();
+        } catch (ClassCastException ex) {}
+        try {
+            TrafficlightColorEnum.RED.compareTo(new 
TotallyUnrelatedClass("some"));
+            fail();
+        } catch (ClassCastException ex) {}
+        try {
+            CarColorEnum.RED.compareTo(new TotallyUnrelatedClass("some"));
+            fail();
+        } catch (ClassCastException ex) {}
+    }
+
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to