+1

Definitely a good utility method to have.

But I feel that the verification that the entry is a leaf and does not have any 
children, in the case of a delete operation, should be done by a higher level 
interceptor (or class).
I'm not sure this scenario should be verified on each partition type but that a 
higher class (DirectoryService maybe) should take the responsibility to ask the 
underlying partition if the entry is a leaf and then ask it to delete the entry.

Regards,
Pierre-Arnaud

On 2 déc. 2011, at 09:51, Emmanuel Lecharny wrote:

> Hi guys,
> 
> yesterday, we were tracking a bug in the schema manager. When we tried to 
> delete a schema, we got an error because under the schema entry, we had some 
> entries (cn=attributesTypes, etc). The entry wasn't deleted, which is good, 
> but the problem was that the schema was removed from the registries, because 
> it was removed before we tried to do the removal in the underlying LDIF 
> partition.
> 
> So we added a check to see if the entry has a child, in order to reject the 
> deletion in all cases (including from the registries). Sadly, we had to code 
> a search (ONE_LEVEL) to now if we had some children. This could have been 
> done using a lookup in the one_level index, but it's not exposed by the 
> Partition interface.
> 
> Adding a hasChildren(Dn) method would help, as we could get the result either 
> by using the one_level index if it exists, or by doing something else.
> 
> wdyt ?
> 
> -- 
> Regards,
> Cordialement,
> Emmanuel Lécharny
> www.iktek.com
> 

Reply via email to