throw new LdapInvalidAttributeIdentifierException();
throw new LdapInvalidAttributeIdentifierException( "unrecognized attributeID " + change.getID() );
    public void modify( NextInterceptor next, Name name, int modOp, Attributes mods ) throws NamingException    {        Attributes entry = nexus.lookup( name );        Attribute objectClass = getResultantObjectClasses( modOp, mods.get( "objectClass"), entry.get( "objectClass" ) );        ObjectClassRegistry ocRegistry = this.globalRegistries.getObjectClassRegistry();        AttributeTypeRegistry atRegistry = this.globalRegistries.getAttributeTypeRegistry();        NamingEnumeration changes = mods.getIDs();        while ( changes.hasMore() )        {            String id = ( String ) changes.next();            Attribute change = mods.get( id );            if ( ! atRegistry.hasAttributeType( change.getID() ) && ! objectClass.contains( "extensibleObject" ) )            {                throw new LdapInvalidAttributeIdentifierException();            }            if ( modOp == DirContext.REMOVE_ATTRIBUTE && entry.get( change.getID() ) == null )            {                throw new LdapNoSuchAttributeException();            }            // for required attributes we need to check if all values are removed            // if so then we have a schema violation that must be thrown            if ( modOp == DirContext.REMOVE_ATTRIBUTE &&                 isRequired( change.getID(), objectClass ) &&                 isCompleteRemoval( change, entry ) )            {                throw new LdapSchemaViolationException( ResultCodeEnum.OBJECTCLASSVIOLATION );            }        }        if ( modOp == DirContext.REMOVE_ATTRIBUTE )        {            SchemaChecker.preventRdnChangeOnModifyRemove( name, modOp, mods );            SchemaChecker.preventStructuralClassRemovalOnModifyRemove( ocRegistry, name, modOp, mods, objectClass );        }        if ( modOp == DirContext.REPLACE_ATTRIBUTE )        {            SchemaChecker.preventRdnChangeOnModifyReplace( name, modOp, mods );            SchemaChecker.preventStructuralClassRemovalOnModifyReplace( ocRegistry, name, modOp, mods );        }        next.modify( name, modOp, mods );    }