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]