Directory ApacheDS
  1. Directory ApacheDS
  2. DIRSERVER-1470

Error code 80 - OTHER is thrown when trying to remove a value from the objectClass attribute

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Minor Minor
    • Resolution: Cannot Reproduce
    • Affects Version/s: 1.5.5
    • Fix Version/s: 1.5.6
    • Component/s: None
    • Labels:
      None

      Description

      When I tried to remove the 'person' value of the objectClass attribute.

      Here's the entry as LDIF:
      dn: cn=user103,ou=users,dc=example,dc=com
      uid: HYZ8-56740ss
      sn: user103
      cn: user103
      description: faux
      objectClass: organizationalPerson
      objectClass: person
      objectClass: inetOrgPerson
      objectClass: top

      And here's the complete stacktrace in Studio:
      javax.naming.NamingException: [LDAP: error code 80 - OTHER: failed for Modify Request
      Object : '2.5.4.3=user103,2.5.4.11=users,0.9.2342.19200300.100.1.25=example,0.9.2342.19200300.100.1.25=com'
      Modification[0]
      Operation : delete
      Modification
      objectClass: person
      : null]; remaining name 'cn=user103,ou=users,dc=example,dc=com'
      at com.sun.jndi.ldap.LdapCtx.mapErrorCode(LdapCtx.java:3085)
      at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2987)
      at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2794)
      at com.sun.jndi.ldap.LdapCtx.c_modifyAttributes(LdapCtx.java:1455)
      at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_modifyAttributes(ComponentDirContext.java:255)
      at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.modifyAttributes(PartialCompositeDirContext.java:172)
      at org.apache.directory.studio.connection.core.io.jndi.JNDIConnectionWrapper$2.run(JNDIConnectionWrapper.java:454)
      at org.apache.directory.studio.connection.core.io.jndi.JNDIConnectionWrapper.runAndMonitor(JNDIConnectionWrapper.java:1272)
      at org.apache.directory.studio.connection.core.io.jndi.JNDIConnectionWrapper.checkConnectionAndRunAndMonitor(JNDIConnectionWrapper.java:1203)
      at org.apache.directory.studio.connection.core.io.jndi.JNDIConnectionWrapper.modifyEntry(JNDIConnectionWrapper.java:502)
      at org.apache.directory.studio.ldapbrowser.core.jobs.ImportLdifJob.importLdifRecord(ImportLdifJob.java:507)
      at org.apache.directory.studio.ldapbrowser.core.jobs.ImportLdifJob.importLdif(ImportLdifJob.java:267)
      at org.apache.directory.studio.ldapbrowser.core.jobs.ExecuteLdifRunnable.run(ExecuteLdifRunnable.java:143)
      at org.apache.directory.studio.ldapbrowser.core.jobs.UpdateEntryRunnable.run(UpdateEntryRunnable.java:58)
      at org.apache.directory.studio.connection.ui.RunnableContextRunner$1.run(RunnableContextRunner.java:113)
      at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)

        Activity

        Hide
        Kiran Ayyagari added a comment -

        Tested against the trunk but cannot reproduce the mentioned exception

        Show
        Kiran Ayyagari added a comment - Tested against the trunk but cannot reproduce the mentioned exception
        Hide
        Pierre-Arnaud Marcelot added a comment -

        +1 Stefan.

        It would be more meaningful...

        Show
        Pierre-Arnaud Marcelot added a comment - +1 Stefan. It would be more meaningful...
        Hide
        Stefan Seelmann added a comment -

        I think we should not allow it, but send a better error code:

        From RFC 4511:
        objectClassModsProhibited (69)
        Indicates that an attempt to modify the object class(es) of
        an entry's 'objectClass' attribute is prohibited.

        For example, this code is returned when a client attempts to
        modify the structural object class of an entry.

        BTW: both, OpenLDAP and OpenDS allow the deletion of the 'person' value.

        Show
        Stefan Seelmann added a comment - I think we should not allow it, but send a better error code: From RFC 4511: objectClassModsProhibited (69) Indicates that an attempt to modify the object class(es) of an entry's 'objectClass' attribute is prohibited. For example, this code is returned when a client attempts to modify the structural object class of an entry. BTW: both, OpenLDAP and OpenDS allow the deletion of the 'person' value.
        Hide
        Emmanuel Lecharny added a comment -

        We may have to define if it's a bug or not

        Show
        Emmanuel Lecharny added a comment - We may have to define if it's a bug or not
        Hide
        Emmanuel Lecharny added a comment -

        Not sure this is not plain normal. The 'person' OC is inherited by 'inetOrgPerson', so it must be prsent in the OC list.

        Even if you can create an entry on ADS even if you provide only the top level class (the inherited ones will be deduced), you should not remove one OC when it's present in the entry.

        Show
        Emmanuel Lecharny added a comment - Not sure this is not plain normal. The 'person' OC is inherited by 'inetOrgPerson', so it must be prsent in the OC list. Even if you can create an entry on ADS even if you provide only the top level class (the inherited ones will be deduced), you should not remove one OC when it's present in the entry.

          People

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

            Dates

            • Created:
              Updated:
              Resolved:

              Development