[
https://issues.apache.org/jira/browse/DIRSTUDIO-913?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13986245#comment-13986245
]
Stefan Seelmann commented on DIRSTUDIO-913:
-------------------------------------------
I tested with latest version of ApacheDS.
Now LDAP error 66 (notAllowedOnNonLeaf) is returned and Studio starts do delete
the children. However at some point it fails again with the following error:
[LDAP: error code 53 - UNWILLING_TO_PERFORM: failed for MessageType :
DEL_REQUEST
Message ID : 22
Del request
Entry :
'm-oid=1.3.6.1.4.1.42.2.27.4.1.7,ou=attributeTypes,cn=java,ou=schema'
org.apache.directory.api.ldap.model.message.DeleteRequestImpl@c14d8571: ERR_346
Cannot delete the AttributeType
m-oid=1.3.6.1.4.1.42.2.27.4.1.7,ou=attributeTypes,cn=java,ou=schema from the
registries, the resulting registries would be inconsistent :
org.apache.directory.api.ldap.model.exception.LdapProtocolErrorException:
ERR_11012 Cannot remove 1.3.6.1.4.1.42.2.27.4.1.7 for the registries, it would
become inconsistent. The following SchemaObjects are referencing this
SchemaObject : <OBJECT_CLASS,1.3.6.1.4.1.42.2.27.4.2.4>]
The reason is quite clear: The algorithm just searches the children and deletes
them one by one. However within a schema objects depend on each other. To make
the delete successful we would need to build a graph and delete the objects in
the right order. Or, do a brute force approach and continue deletion and repeat
till all entries are gone.
The question is if that is worth the effort? IMHO we should not add too much
logic into the simple "delete" operation.
> Removing elements with children under "ou=schema" (ApacheDS) does lead to
> LDAP errors
> -------------------------------------------------------------------------------------
>
> Key: DIRSTUDIO-913
> URL: https://issues.apache.org/jira/browse/DIRSTUDIO-913
> Project: Directory Studio
> Issue Type: Bug
> Affects Versions: 2.0.0-M6 (2.0.0.v20130308)
> Reporter: Konrad Windszus
> Assignee: Pierre-Arnaud Marcelot
>
> Create an embedded server and connect to it. Just click on cn=java,ou=schema
> and try to remove the element. You get the following error
> {code}
> Error while deleting entry
> - [LDAP: error code 53 - UNWILLING_TO_PERFORM: failed for MessageType :
> DEL_REQUES
> java.lang.Exception: [LDAP: error code 53 - UNWILLING_TO_PERFORM: failed for
> MessageType : DEL_REQUEST
> Message ID : 26
> Del request
> Entry : 'cn=java,ou=schema'
> org.apache.directory.api.ldap.model.message.DeleteRequestImpl@a5f31b93: There
> are children under the entry cn=java,ou=schema]
> at
> org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper.checkResponse(DirectoryApiConnectionWrapper.java:1279)
> at
> org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper.access$600(DirectoryApiConnectionWrapper.java:109)
> at
> org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper$7.run(DirectoryApiConnectionWrapper.java:995)
> at
> org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper.runAndMonitor(DirectoryApiConnectionWrapper.java:1174)
> at
> org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper.checkConnectionAndRunAndMonitor(DirectoryApiConnectionWrapper.java:1108)
> at
> org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper.deleteEntry(DirectoryApiConnectionWrapper.java:1017)
> at
> org.apache.directory.studio.ldapbrowser.core.jobs.DeleteEntriesRunnable.deleteEntry(DeleteEntriesRunnable.java:382)
> at
> org.apache.directory.studio.ldapbrowser.core.jobs.DeleteEntriesRunnable.optimisticDeleteEntryRecursive(DeleteEntriesRunnable.java:272)
> at
> org.apache.directory.studio.ldapbrowser.core.jobs.DeleteEntriesRunnable.run(DeleteEntriesRunnable.java:173)
> 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 53 - UNWILLING_TO_PERFORM: failed for MessageType :
> DEL_REQUEST
> Message ID : 26
> Del request
> Entry : 'cn=java,ou=schema'
> org.apache.directory.api.ldap.model.message.DeleteRequestImpl@a5f31b93: There
> are children under the entry cn=java,ou=schema]
> {code}
> Directory Studio should try to remove the child elements first.
--
This message was sent by Atlassian JIRA
(v6.2#6252)