Directory Studio
  1. Directory Studio
  2. DIRSTUDIO-777

Renaming entry fails when using Apache Directory LDAP API

    Details

      Description

      Another thing that happens only with the Apache LDAP API.

      If I against my eDirectory want to perform a rename on an entry with F2.

      If the object is named manuell1000-setla1 and I want to rename it to manuell1000-SETLA1

      I.e. I'm only changing the case the I get this error when using the Apache API:

      Error while renaming entry

      • [LDAP: error code 68 - NDS error: entry already exists (-606)]
        java.lang.Exception: [LDAP: error code 68 - NDS error: entry already exists (-606)]
        at org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper.checkResponse(DirectoryApiConnectionWrapper.java:1259)
        at org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper.access$500(DirectoryApiConnectionWrapper.java:107)
        at org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper$5.run(DirectoryApiConnectionWrapper.java:845)
        at org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper.runAndMonitor(DirectoryApiConnectionWrapper.java:1161)
        at org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper.checkConnectionAndRunAndMonitor(DirectoryApiConnectionWrapper.java:1095)
        at org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper.renameEntry(DirectoryApiConnectionWrapper.java:867)
        at org.apache.directory.studio.ldapbrowser.core.jobs.RenameEntryRunnable.renameEntry(RenameEntryRunnable.java:306)
        at org.apache.directory.studio.ldapbrowser.core.jobs.RenameEntryRunnable.run(RenameEntryRunnable.java:165)
        at org.apache.directory.studio.connection.core.jobs.StudioConnectionJob.run(StudioConnectionJob.java:109)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)

      [LDAP: error code 68 - NDS error: entry already exists (-606)]

      If I switch to JNDI and perform the exact same operation I get no error, it renames the entry.

        Activity

        Hide
        Pierre-Arnaud Marcelot added a comment -

        Closing the issue as version 2.0.0-M3 has been released now.

        Show
        Pierre-Arnaud Marcelot added a comment - Closing the issue as version 2.0.0-M3 has been released now.
        Hide
        Pierre-Arnaud Marcelot added a comment -

        Aleks,

        I marked this renaming entry issue as fixed and opened a new entry for the separate jump issue you reported here.

        See DIRSTUDIO-781 (Back and forth jumping between an entry in a search and the DIT when performing a rename).

        Show
        Pierre-Arnaud Marcelot added a comment - Aleks, I marked this renaming entry issue as fixed and opened a new entry for the separate jump issue you reported here. See DIRSTUDIO-781 (Back and forth jumping between an entry in a search and the DIT when performing a rename).
        Show
        Pierre-Arnaud Marcelot added a comment - Fixed at revisions 1244632 and 1244633. http://svn.apache.org/viewvc?rev=1244632&view=rev http://svn.apache.org/viewvc?rev=1244633&view=rev
        Hide
        Pierre-Arnaud Marcelot added a comment -

        Ok, thanks for the confirmation.

        Show
        Pierre-Arnaud Marcelot added a comment - Ok, thanks for the confirmation.
        Hide
        Aleks M added a comment -

        Yes it's the same behaviour.

        Both renames work.

        Show
        Aleks M added a comment - Yes it's the same behaviour. Both renames work.
        Hide
        Pierre-Arnaud Marcelot added a comment -

        Hi Aleks,

        Thanks for the confirmation.
        Does it fix both renaming issues?

        Regarding the jump back and forth between the entry in the search and the entry in the DIT, it's probably an issue due too many update UI events being sent.
        I guess the behavior is exactly the same whether you're using the LDAP API or JNDI, right?

        I will have a look at that too.

        Show
        Pierre-Arnaud Marcelot added a comment - Hi Aleks, Thanks for the confirmation. Does it fix both renaming issues? Regarding the jump back and forth between the entry in the search and the entry in the DIT, it's probably an issue due too many update UI events being sent. I guess the behavior is exactly the same whether you're using the LDAP API or JNDI, right? I will have a look at that too.
        Hide
        Aleks M added a comment -

        Hello
        The rename works in the snapshot version.
        Just one question, when performing the rename by doing F2 on an entry in the search results view, it view jumps back and forth between the entry in the search and the entry in the DIT tree a couple of times. Is that normal?

        Show
        Aleks M added a comment - Hello The rename works in the snapshot version. Just one question, when performing the rename by doing F2 on an entry in the search results view, it view jumps back and forth between the entry in the search and the entry in the DIT tree a couple of times. Is that normal?
        Hide
        Pierre-Arnaud Marcelot added a comment -

        +1 Emmanuel.

        Thanks Aleks for all your reports!

        I think I have found the issue. It was probably a wrong use of the API (which doesn't need to be fixed).

        Aleks, could you please try to reproduce the issue with this SNAPSHOT version?
        http://people.apache.org/~pamarcelot/ApacheDirectoryStudio-win32-x86_64-2.0.0-SNAPSHOT.zip

        Thanks!

        Show
        Pierre-Arnaud Marcelot added a comment - +1 Emmanuel. Thanks Aleks for all your reports! I think I have found the issue. It was probably a wrong use of the API (which doesn't need to be fixed). Aleks, could you please try to reproduce the issue with this SNAPSHOT version? http://people.apache.org/~pamarcelot/ApacheDirectoryStudio-win32-x86_64-2.0.0-SNAPSHOT.zip Thanks!
        Hide
        Emmanuel Lecharny added a comment -

        Regarding the first error, it's really a god catch. The name is supposed to be case-insensitive, but also case-preserving. In this case, the internal check done is certainly not good.

        Same for the second issue...

        Each time I wonder why we don't go for a RC, you bring new bugs that make us feel we have made the good choice when we decided to release milestones instead of RCs

        Aleks, I must say you are a doing very valuable work !

        Show
        Emmanuel Lecharny added a comment - Regarding the first error, it's really a god catch. The name is supposed to be case-insensitive, but also case-preserving. In this case, the internal check done is certainly not good. Same for the second issue... Each time I wonder why we don't go for a RC, you bring new bugs that make us feel we have made the good choice when we decided to release milestones instead of RCs Aleks, I must say you are a doing very valuable work !
        Hide
        Aleks M added a comment -

        Another thing, if I try to rename a non-leaf object, i.e. if the object has children from setla1 to SETLA1, it also doens't work with the Apache API. In JNDI, no problems.
        With Apache LDAP API I get this error:

        Error while renaming entry

        • [LDAP: error code 71 - Affects Multiple DSAs]
          java.lang.Exception: [LDAP: error code 71 - Affects Multiple DSAs]
          at org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper.checkResponse(DirectoryApiConnectionWrapper.java:1259)
          at org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper.access$500(DirectoryApiConnectionWrapper.java:107)
          at org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper$5.run(DirectoryApiConnectionWrapper.java:845)
          at org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper.runAndMonitor(DirectoryApiConnectionWrapper.java:1161)
          at org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper.checkConnectionAndRunAndMonitor(DirectoryApiConnectionWrapper.java:1095)
          at org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper.renameEntry(DirectoryApiConnectionWrapper.java:867)
          at org.apache.directory.studio.ldapbrowser.core.jobs.RenameEntryRunnable.renameEntry(RenameEntryRunnable.java:306)
          at org.apache.directory.studio.ldapbrowser.core.jobs.RenameEntryRunnable.run(RenameEntryRunnable.java:165)
          at org.apache.directory.studio.connection.core.jobs.StudioConnectionJob.run(StudioConnectionJob.java:109)
          at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)

        [LDAP: error code 71 - Affects Multiple DSAs]

        Show
        Aleks M added a comment - Another thing, if I try to rename a non-leaf object, i.e. if the object has children from setla1 to SETLA1, it also doens't work with the Apache API. In JNDI, no problems. With Apache LDAP API I get this error: Error while renaming entry [LDAP: error code 71 - Affects Multiple DSAs] java.lang.Exception: [LDAP: error code 71 - Affects Multiple DSAs] at org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper.checkResponse(DirectoryApiConnectionWrapper.java:1259) at org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper.access$500(DirectoryApiConnectionWrapper.java:107) at org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper$5.run(DirectoryApiConnectionWrapper.java:845) at org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper.runAndMonitor(DirectoryApiConnectionWrapper.java:1161) at org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper.checkConnectionAndRunAndMonitor(DirectoryApiConnectionWrapper.java:1095) at org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper.renameEntry(DirectoryApiConnectionWrapper.java:867) at org.apache.directory.studio.ldapbrowser.core.jobs.RenameEntryRunnable.renameEntry(RenameEntryRunnable.java:306) at org.apache.directory.studio.ldapbrowser.core.jobs.RenameEntryRunnable.run(RenameEntryRunnable.java:165) at org.apache.directory.studio.connection.core.jobs.StudioConnectionJob.run(StudioConnectionJob.java:109) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) [LDAP: error code 71 - Affects Multiple DSAs]

          People

          • Assignee:
            Pierre-Arnaud Marcelot
            Reporter:
            Aleks M
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development