[ https://issues.apache.org/jira/browse/DIRAPI-320?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16611795#comment-16611795 ]
Emmanuel Lecharny commented on DIRAPI-320: ------------------------------------------ Note that when loading the schema using the {{JarLdifSchemaLoader}}, you will get the proper attributeType, with the proper syntax, the proper matchingRule and the proper comparator. Now, loading the schema from an {{OpenLDAP}} source might give you a different result. Can you share the code you use to do so ? Thanks ! > ClassCastException on Objects.equals(Value,Value) for userPassword attribute > ---------------------------------------------------------------------------- > > Key: DIRAPI-320 > URL: https://issues.apache.org/jira/browse/DIRAPI-320 > Project: Directory Client API > Issue Type: Bug > Affects Versions: 2.0.0.AM2 > Reporter: Pavel Zlámal > Priority: Minor > > When I use _JarLdifSchemaLoader_ it seems to load _userPassword_ attribute > type with different Comparator than when I load it from LDAP connection > (openLDAP in my case). > Then If I call: > {code:java} > Objects.equals(val, attribute.get()) > {code} > to check if value passed to my method is the first in the attribute, I get > _ClassCastException_, since it tries to pass _String_ (normalized value) to > the _ByteArrayComparator._ > When I use Schema only loaded from connection, then it works, since it uses > _ComparableComparator._ > {code:java} > java.lang.ClassCastException: java.lang.String cannot be cast to [B > at > org.apache.directory.api.ldap.model.schema.comparators.ByteArrayComparator.compare(ByteArrayComparator.java:32) > at org.apache.directory.api.ldap.model.entry.Value.equals(Value.java:1389) > at java.util.Objects.equals(Objects.java:59) > {code} > So there is probably bug in schema ldif included in JAR or in equals() > implementation of Value. -- This message was sent by Atlassian JIRA (v7.6.3#76005)