ancestorDn = ancestorDn.getSuffix( 1 );
ancestorDn = ancestorDn.getPrefix( 1 );
    private void dropAliasIndices( BigInteger aliasId ) throws NamingException    {        String targetDn = ( String ) aliasIdx.reverseLookup( aliasId );        BigInteger targetId = getEntryId( targetDn );        String aliasDn = getEntryDn( aliasId );        Name ancestorDn = new LdapName( aliasDn ).getSuffix( 1 );        BigInteger ancestorId = getEntryId( ancestorDn.toString() );                /*         * We cannot just drop all tuples in the one level and subtree indices         * linking baseIds to the targetId.  If more than one alias refers to         * the target then droping all tuples with a value of targetId would         * make all other aliases to the target inconsistent.         *          * We need to walk up the path of alias ancestors until we reach the          * upSuffix, deleting each ( ancestorId, targetId ) tuple in the         * subtree scope alias.  We only need to do this for the direct parent         * of the alias on the one level subtree.         */        oneAliasIdx.drop( ancestorId, targetId );        subAliasIdx.drop( ancestorId, targetId );                while ( ! ancestorDn.equals( upSuffix ) )        {            ancestorDn = ancestorDn.getSuffix( 1 );            ancestorId = getEntryId( ancestorDn.toString() );                        subAliasIdx.drop( ancestorId, targetId );        }            // Drops all alias tuples pointing to the id of the alias to be deleted        aliasIdx.drop( aliasId );    }