cat.debug(">addAccessRule: " + subresource );
log.debug(">addAccessRule: " + subresource );
     public void addAccessRule(String subresource, AccessRule accessrule, AdminGroup admingroup) {       cat.debug(">addAccessRule: " + subresource );       int index;       AccessTreeNode next;       String nextname;       String nextsubresource;       if(subresource.equals(this.name)){ // Root is a special case.           Object[] accessadmingroupair = {accessrule,admingroup};           useraccesspairs.addElement(accessadmingroupair);       }       else{           nextsubresource = subresource.substring(this.name.length());           if((nextsubresource.toCharArray()[0])=='/')             nextsubresource = nextsubresource.substring(1);           index = nextsubresource.indexOf('/');           if(index != -1){             nextname =  nextsubresource.substring(0,index);           }           else{             nextname = nextsubresource;           }           next= (AccessTreeNode) leafs.get(nextname);           if(next == null){  // Doesn't exist, create.              next=new AccessTreeNode(nextname);              leafs.put(nextname, next);           }                   //cat.debug(this.name + " --> ");           next.addAccessRule(nextsubresource, accessrule, admingroup);       }       cat.debug("<addAccessRule: " + subresource);     }