[ 
https://issues.apache.org/jira/browse/DIRSERVER-928?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Alex Karasulu closed DIRSERVER-928.
-----------------------------------

    Resolution: Fixed

I simply added an IllegalStateException instead of returning the difference 
between the hashCodes of the two objects in the comparator.  The choice for the 
exception comes from the fact that if you do use this comparator and one of the 
objects is not Comparable then you used it wrong and that's an invalid state 
for the software which was not intended.  The following commits were made for 
this fix:

For shared trunk used in ADS 1.5:

   http://svn.apache.org/viewvc?view=rev&revision=567175 

For shared 0.9.5 branch used in ADS 1.0:

   http://svn.apache.org/viewvc?view=rev&rev=567176

> ComparableComparator in shared yeild incorrect results when two objects 
> compared are not Comparable
> ---------------------------------------------------------------------------------------------------
>
>                 Key: DIRSERVER-928
>                 URL: https://issues.apache.org/jira/browse/DIRSERVER-928
>             Project: Directory ApacheDS
>          Issue Type: Bug
>          Components: ldap
>    Affects Versions: 1.0.1, 1.5.0
>            Reporter: Emmanuel Lecharny
>            Assignee: Alex Karasulu
>            Priority: Critical
>             Fix For: 1.5.1, 1.0.3
>
>
> The org.apache.directory.shared.ldap.schema.ComparableComparator may fail if 
> none of the two object implements the Comparable interface. As the last test 
> is a comparison of their hashcode value, there is no guarantee that if they 
> are equal, objects are equal.
> We should throw an exception if the objects don't implement the Comparable 
> interface. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to