[ 
https://issues.apache.org/jira/browse/DIRAPI-320?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16612130#comment-16612130
 ] 

Pavel Zlámal commented on DIRAPI-320:
-------------------------------------

Hi,

I tested it a bit more. The problem arise only, when I load schema with 
{{JarLdifSchemaLoader}} and also from LDAP connection, but only when I load 
them in order connection first and Jar second.

I do load all schemas in relaxed mode, because i couldn't get it working 
otherwise and it probably wrongly modify attribute definition (or syntax or 
something like this) in registeries. Then comparison fails. With opposite order 
it works even if ByteArrayComparator is used.

I'd like to load schema from jar or connection only, but there are always some 
missing attributes, since they are either not present or not valid when loading 
schema.

I found out, that when I enable/disable schema on Schema object itself, it 
works. Referencing it by name "inetorgperson" etc. and using SchemaManager 
methods doesn't work.

Having "User guide" documentation for SchemaManager would be really nice.

 

 

 

 

> 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)

Reply via email to