directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Pavel Zlámal (JIRA) <j...@apache.org>
Subject [jira] [Commented] (DIRAPI-320) ClassCastException on Objects.equals(Value,Value) for userPassword attribute
Date Wed, 12 Sep 2018 13:29:00 GMT

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

Mime
View raw message