SubtreeSpecification ss = null;
SubtreeSpecification ss;
    public void init( ContextFactoryConfiguration factoryCfg, InterceptorConfiguration cfg ) throws NamingException    {        super.init( factoryCfg, cfg );        this.nexus = factoryCfg.getPartitionNexus();        this.factoryCfg = factoryCfg;        ConcreteNameComponentNormalizer ncn = new ConcreteNameComponentNormalizer(                factoryCfg.getGlobalRegistries().getAttributeTypeRegistry() );        ssParser = new SubtreeSpecificationParser( ncn );        dnParser = new DnParser( ncn );        evaluator = new SubtreeEvaluator( factoryCfg.getGlobalRegistries().getOidRegistry() );        // prepare to find all subentries in all namingContexts        Iterator suffixes = this.nexus.listSuffixes( true );        ExprNode filter = new SimpleNode( "objectclass", "subentry", LeafNode.EQUALITY );        SearchControls controls = new SearchControls();        controls.setSearchScope( SearchControls.SUBTREE_SCOPE );        controls.setReturningAttributes( new String[] { "subtreeSpecification" } );        // search each namingContext for subentries        while ( suffixes.hasNext() )        {            Name suffix = dnParser.parse( ( String ) suffixes.next() );            NamingEnumeration subentries = nexus.search( suffix, factoryCfg.getEnvironment(), filter, controls );            while ( subentries.hasMore() )            {                SearchResult result = ( SearchResult ) subentries.next();                Attributes subentry = result.getAttributes();                String dn = result.getName();                String subtree = ( String ) subentry.get( "subtreeSpecification" ).get();                SubtreeSpecification ss = null;                try                {                    ss = ssParser.parse( subtree );                }                catch ( Exception e )                {                    log.warn( "Failed while parsing subtreeSpecification for " + dn );                    continue;                }                subtrees.put( dnParser.parse( dn ).toString(), ss );            }        }    }