directory-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Emmanuel Lecharny <elecha...@apache.org>
Subject Re: [ApacheDS] Custom schema attributes used in search filter
Date Thu, 17 May 2007 17:03:55 GMT
B G a écrit :

> Hi...


Hi !

>
> I came across a problem today using an embedded apacheds 1.5. When my
> application starts I programatically add my custom schema to the 
> directory
> schema partition. Prior to 1.5 I did this using bootstrap schema, but was
> unable to get ldif imports to work consistently on a windows machine with
> 1.5, could no longer use the 1.0 bootstrap mechanism and so I resorted to
> doing it programatically. This seems to work fine as my schema does 
> display
> in an ldap browser and when I add entires schema validation against my
> custom schema works as I would expect.
>
> The problem comes when I restart my application and do a search using an
> attribute from my custom schema in a search filter. This results in a 
> null
> pointer being thrown in the BTreePartition.lookup method due to not being
> able to find an entry which is assumed to always be non-null at this 
> point
> in the code. I did some debugging and was able to determine that I could
> avoid the problem if I did not allow the shutdown code for the
> DefaultDirectoryService to be run. I then tried to determine what the
> difference was between running the shutdown code and not running the
> shutdown code and found the following:
>
> 1) If the shutdown code is run then when I restart the server the custom
> schema that I added programatically on the first start was persisted 
> and is
> already in the schema partition when I restart. If I do not allow the
> shutdown code to run the schema has not been persisted and it gets added
> upon each restart (I do check to see if a schema element is present 
> before I
> add it).
> 2) When the custom schema has been persisted (via the shutdown code 
> somehow)
> an entry which uses attributes from my custom schema in its DN gets
> normalized to using OID for the attribute name and the failure described
> above occurs, but when it has not been persisted and the schema was added
> during this start the entry's DN gets normalized to using the 
> attribute name
> and not the OID. In this case things work correctly and no null pointer.
>
> I realize this may be a bit confusing, but there is definitely as 
> issue here
> and I will not pretend to understand all that is going on. I have worked
> around the problem for the moment by not allowing the directory shutdown
> code to be run, but I think this is a hack work around that will probably
> cause some other problems. I suppose another work around could be to 
> remove
> the scheme entry if it is present and then readd it upon each restart, 
> but
> have not tried this to see if that works and seems like another hack. Is
> there something obvious I am doing wrong? Is custom schema supposed to be
> persisted? Any help to get this issue resolved correctly would be greatly
> appreciated and if I can provide more or better information please let me
> know.
>
> Thanks a lot

Whoahh... A pretty impressive description :) Ok, I have to read it 
again. What could help is if you could provide some code which expose 
the buggy behavior, so that we can debug it. Is it possible ?

Otherwise, we would really appreciate if you can create a JIRA for that, 
because it might take us some time to fix it, and I don't really want 
this potential bug to be lost in ML ...

Thanks !
Emmanuel


Mime
View raw message