[ 
https://issues.apache.org/jira/browse/DIRSERVER-832?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12481834
 ] 

Emmanuel Lecharny commented on DIRSERVER-832:
---------------------------------------------

I have started to fix this one, and it will take time.

Here is what is going to happen :
- I will remove all the String reference to LDAP objectClasses and Attributes 
out of the code : no more "objectClass", "top" or whatever. Those String will 
now be constants declared in the shared-ldap-constants.
- these Strings won't be removed from tests : this is dangerous, as we may have 
to test that "TOP" or "top" is accepted by the server. Tester know what they 
are doing :)
- The apacheds-constants will get purged from the constants declared in 
shared-ldap. The apacheds-constants will only contians specific constants for 
apacheds, like meta-schema constants
- inside the server, developpers should *not* use direct access to attribute's 
values like shown in the initial bug report. Instead, they should use the 
AttributeUtils.containsValue() for this purpose (in shared-ldap).  This method 
use the registry to allow comparizons based on the defined matching rules for 
each attributes.

That's it ...

> Added Attributes are all case sensitive
> ---------------------------------------
>
>                 Key: DIRSERVER-832
>                 URL: https://issues.apache.org/jira/browse/DIRSERVER-832
>             Project: Directory ApacheDS
>          Issue Type: Bug
>    Affects Versions: 1.5.0, 1.0
>            Reporter: Emmanuel Lecharny
>         Assigned To: Emmanuel Lecharny
>            Priority: Blocker
>             Fix For: 1.5.0
>
>
> The server is working, but this is pure luck !
> When we add some attribute, like ObjectClass, the values are added into it 
> caseSensitive.
> For instance, adding 'person' and 'PERSON' is just adding two values into the 
> attribute.
> So far, so good. Now, we have many places in the server where wo do case 
> sensitive comparizon on suposely case insensitive values (like for 
> objectclasses). For instance, in SchemService :
> ...
>     private int getSubentryTypes( Attributes subentry ) throws NamingException
>     {
>         int types = 0;
>         
>         Attribute oc = subentry.get( "objectClass" );
>         
>         if ( oc.contains( "accessControlSubentry" ) ) <<<--------------- This 
> is DAMN WRONG !!!
> ...
> At this point, I suspect the 1.0.0 version is not amendable. We must fix it 
> in 1.5, using the MatchingRules to manage comparizons on attributes.
> I hope I'm totally wrong, but I'm really scared... It looks like you go to 
> the doctor wor that little red spot on your skin, and it turns out you have a 
> hopeless cancer ...

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