#19 ADD followed by DELETE doesn't fulfill MOVE operation

JX_General_Code
open
nobody
9
2012-10-15
2005-08-24
Li Yang
No

Almost all 'move' operations in JXplorer that are
implemented as ADD followed by DELETE. The
only 'move' operation that is done as a RENAME is for
a single leaf node that does not change its parent.
But ADD followed by DELETE approach to implement
MOVE operation will have problem with operational
attributes which is quite common across many directory
servers and the added entry would have these
operational attributes regenerated.

After communicating with Chris Betts, What I suggest
is, to use ctx.rename() to modify dn as the default
method and try to catch the possible
UNABLE_TO_PERFORM error from the server. In this
way, LDAP systems like Oracle Internet Directory
which supports renaming of internal nodes can get the
correct behavior; for those systems which don't support
renaming, JXplorer should also prevent renaming from
happening and alert user by saying 'server does not
allow this move operation'. In any case, ADD+DELETE
is giving the user an illusion that the MOVE has been
achieved, but actually the moved entry is not identical
to the original one anymore (operational attributes get
regenerated). Anyway, LDAP protocol defines this move
operation and a lot of more systems are supporting this
anyway.

Thanks,
Li

Discussion

  • Giamma

    Giamma - 2005-12-02

    Logged In: YES
    user_id=1394705

    I agree it would be nice to use RENAME and not ADD + DELETE.
    ADD + DELETE is not atomic and there seems to be a lot of
    other operation in between (SEARCH/HASENTRY/LOOKUP)

     
  • EJP

    EJP - 2012-07-13

    This feature is CRITICAL for referential integrity. For example with OpenLDAP and the 'refint' overlay, a rename will cascade to all the attributes holding that value that have been defined as requiring referential integrity. However with the present implementation, the DELETE causes the value slot to be rewritten with CN=EMPTY and the ADD doesn't cause anything of course, so the attribute value is completely lost. Please escalate this.

     

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:





No, thanks