3.1.1.2.5.3 Defunct

A schema object with isDefunct = TRUE is defunct; a schema object that is not defunct is active. This section documents the special behavior of attributeSchema and classSchema objects related to the defunct state.

The effect of being defunct depends upon the forest functional level as specified in the following subsections. The following statements are independent of the forest functional level.

  • The isDefunct attribute being not present on an attributeSchema or classSchema object is equivalent to isDefunct = FALSE; modifications that move between these two representations of the active state have no special behavior.

  • If an LDAP Modify changes the isDefunct attribute (giving it a value of TRUE or FALSE, or removing it), this change MUST be the only change in the LDAP Modify request; otherwise, the request fails with error unwillingToPerform / ERROR_DS_ILLEGAL_MOD_OPERATION.

  • If a Modify sets isDefunct to TRUE but the attributeSchema or classSchema object is base (that is, it has FLAG_SCHEMA_BASE_OBJECT present in its systemFlags attribute), the Modify fails, with error unwillingToPerform / ERROR_DS_ILLEGAL_BASE_SCHEMA_MOD.

  • LDAP Add cannot create instances of a defunct class (section 3.1.1.5.2.2), and LDAP Add and Modify cannot create instances of a defunct attribute (see sections 3.1.1.5.2.2 and 3.1.1.5.3.2).

  • Making an attributeSchema or classSchema object defunct has no effect on the state of existing objects that use the defunct attribute or class, but it changes the behavior of reads and updates of such objects as described in sections 3.1.1.4.8 (Search), 3.1.1.5.2.2 (Add), 3.1.1.5.3.2 (Modify), and 3.1.1.5.5 (Delete).