Emmanuel Lecharny created DIRAPI-275:
----------------------------------------
Summary: Many AttributeType are defined with the wrong m-usage
Key: DIRAPI-275
URL: https://issues.apache.org/jira/browse/DIRAPI-275
Project: Directory Client API
Issue Type: Bug
Affects Versions: 1.0.0-M33
Reporter: Emmanuel Lecharny
Fix For: 1.0.0-M34
We have some mixture of attributeTypes defined in two ways :
{noformat}
..
./ldap/schema/data/src/main/resources/schema/ou=schema/cn=apache/ou=attributetypes/m-oid=1.3.6.1.1.16.4.ldif:m-usage:
DIRECTORY_OPERATION
./ldap/schema/data/src/main/resources/schema/ou=schema/cn=apache/ou=attributetypes/m-oid=1.3.6.1.1.20.ldif:m-usage:
DIRECTORY_OPERATION
...
{noformat}
but
{noformat}
...
./ldap/schema/data/src/main/resources/schema/ou=schema/cn=pwdpolicy/ou=attributetypes/m-oid=1.3.6.1.4.1.42.2.27.8.1.16.ldif:m-usage:
directoryOperation
./ldap/schema/data/src/main/resources/schema/ou=schema/cn=pwdpolicy/ou=attributetypes/m-oid=1.3.6.1.4.1.42.2.27.8.1.17.ldif:m-usage:
directoryOperation
...
{noformat}
The schema parser does not bail out because of this (ugly) method in
{{UsageEnum}} class :
{noformat}
/**
* Gets the enumeration type for the attributeType usage string regardless
* of case.
*
* @param usage the usage string
* @return the usage enumeration type
*/
public static UsageEnum getUsage( String usage )
{
try
{
UsageEnum result = valueOf( usage );
return result;
}
catch ( IllegalArgumentException iae )
{
if ( "directoryOperation".equals( usage ) )
{
return DIRECTORY_OPERATION;
}
else if ( "distributedOperation".equals( usage ) )
{
return DISTRIBUTED_OPERATION;
}
else if ( "dSAOperation".equals( usage ) )
{
return DSA_OPERATION;
}
else if ( "userApplications".equals( usage ) )
{
return USER_APPLICATIONS;
}
else
{
return null;
}
}
}
{noformat}
Not that when we have the wrong format, we fall back to a case sensitive
comparison. This is very weak...
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)