public void deletePrincipalRule(PrincipalRule rule) throws ProfilerException { getPersistenceBrokerTemplate().delete(rule); // reset persistent rules per principal rulesPerPrincipal.remove(rule.getPrincipalName()); String key = this.makePrincipalRuleKey(rule.getPrincipalName(), rule.getLocatorName()); // remove individual rule principalRules.remove(key); // track cached principal rules trackCachedPrincipalRulesRemoved(rule.getPrincipalName(), rule); }
/** * Evict cached profiler rule information for principal. * * @param principalName cached profiler rule key * @param force force eviction of guest and default rules */ private void evictCachedPrincipalRules(String principalName, boolean force) { if (principalName != null) { // do not evict guest and default principal profiler rules by // default since they would be evicted all too frequently if (force || (!principalName.equals(getGuestPrincipalName()) && !principalName.equals(DEFAULT_RULE_PRINCIPAL_NAME))) { // evict cached profiler rules Collection<PrincipalRule> rules = allRulesPerPrincipal.remove(principalName); if (rules != null) { rulesPerPrincipal.remove(principalName); for (PrincipalRule rule : rules) { String key = this.makePrincipalRuleKey(rule.getPrincipalName(), rule.getLocatorName()); principalRules.remove(key); } } } } }