cat.debug("<isAthorizedRecursive: returns " + returnval + " : " + resource + "," +state);
log.debug("<isAthorizedRecursive: returns " + returnval + " : " + resource + "," +state);
    private boolean isAuthorizedRecursive(AdminInformation admininformation, String resource, int state){       cat.debug("isAuthorizedRecursive: " + " resource: " + resource + " name: "+ this.name + "," +state);       int index;       int internalstate = STATE_DECLINE;       boolean returnval = false;       AccessTreeNode next;       String nextname = null;       boolean lastresource=false;       String nextsubresource;       Set keys;       String matchname;       internalstate = matchInformation(admininformation);           if(resource.equals(this.name)) {                 // If this resource have state accept recursive state is given         if( state == STATE_ACCEPT_RECURSIVE || internalstate == STATE_ACCEPT || internalstate == STATE_ACCEPT_RECURSIVE ){             // If this resource's rule set don't says decline.           if(!(internalstate == STATE_DECLINE || internalstate == STATE_DECLINE_RECURSIVE))             returnval=true;         }       }       else{         //cat.debug(" resource : " + resource);         nextsubresource = resource.substring(this.name.length());         if((nextsubresource.toCharArray()[0])=='/')         nextsubresource = nextsubresource.substring(1);         //cat.debug(" nextresource : " + nextsubresource);                  index = nextsubresource.indexOf('/');         if(index != -1){             nextname =  nextsubresource.substring(0,index);         }         else {           nextname = nextsubresource;          }         //cat.debug(" nextname : " + nextname);                  next = (AccessTreeNode) leafs.get(nextname);         if(next == null ){  // resource path doesn't exist            // If  internal state isn't decline recusive is accept recursive.            if(internalstate == STATE_ACCEPT_RECURSIVE){               returnval=true;            }            // If state accept recursive is given and internal state isn't decline recusive.            if(state == STATE_ACCEPT_RECURSIVE  && internalstate != STATE_DECLINE_RECURSIVE && internalstate != STATE_DECLINE){              returnval=true;            }       /*     if(internalstate == STATE_ACCEPT && lastresource){              returnval=true;            } */         }         if(next != null){ // resource path exists.           // If internalstate is accept recursive or decline recusive.           if(internalstate == STATE_ACCEPT_RECURSIVE || internalstate == STATE_DECLINE_RECURSIVE){             state=internalstate;           }           //cat.debug(this.name + " --> ");           returnval=next.isAuthorizedRecursive(admininformation, nextsubresource, state);         }       }       cat.debug("<isAthorizedRecursive: returns " + returnval + " : " + resource + "," +state);       return returnval;    }