Hi guys,
I have an issue with this operation. The way it works is currently :
1) grab the old entry from the backend immediately
(eagerlyPopulateFields in InterceptorChain).
This is done to spare lookups all aver the following interceptors
2) as we go down the chain, do a lots of checks and update, including
adding the missing operational attributes (lastModifier,
lastModifyDate), and if needed, delete the old RDN from the entry
3) in the backend, call the store.rename() operation which takes 3
parameters :
- DN (the entry DN)
- new RDN (the new name)
- deleteOldRdn flag
Here, I think we have a double problem :
- first we have grabbed the entry just for the purpose of doing some
checks, assuming that we will grab it again in the store
- second, we will have to call the modify() operation after the rename
has been done, as we have lost the Operationnal attribute update, so the
full operation has a double cost (maybe more).
I suggest that we modify the rename() parameters to pass the modified
entry instead of doing the modification into the store, because, anyway
this is not where the logic should be placed.
wdyt ?
--
Regards,
Cordialement,
Emmanuel Lécharny
www.nextury.com