RFC 4512 stipulates that Schema Objects names are case insensitives and can collide (ie, we can use the same name for an AT and an OC, for instance) :

RFC 4512, 6.2 :
"...
Implementations MUST be prepared that the same short name might be
  used in a subschema to refer to the different kinds of schema
  elements. That is, there might be an object class 'x-fubar' and an
  attribute type 'x-fubar' in a subschema.
..."

We have filed two JIRAs about it (https://issues.apache.org/jira/browse/DIRSERVER-1301/1302).

As I'm reviewing the OidRegistry code, as a follow up of the multiple Schema problems, I found that :

in cosine Schema :
------------------
attributetype ( 0.9.2342.19200300.100.1.55 NAME 'audio'
...

// RFC 2252, removed in RFC 4517
String AUDIO_SYNTAX = "1.3.6.1.4.1.1466.115.121.1.4";


in SystemSyntaxProducer :
-------------------------

syntax = new BootstrapSyntax( SchemaConstants.AUDIO_SYNTAX, syntaxCheckerRegistry );
       syntax.setNames( new String[]
           { "Audio" } );
       syntax.setHumanReadable( false );
       cb.schemaObjectProduced( this, syntax.getOid(), syntax );

the byName() method in the oidRegistry will have the audio name pointing to 2 different OIDs, which is not allowed, as the name is expected to be case insensitive ...

We have to change the way the OIDs are registred, so that the lookup done in 
this registry is using the SchemaObject type we are looking for (we always know 
what kind of SchemaObject we are looking for).

--
--
cordialement, regards,
Emmanuel Lécharny
www.iktek.com
directory.apache.org


Reply via email to