RANGER-2652: refactor policy-engine - #2 (renames and whitespace updates)
diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/PolicyEngine.java b/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/PolicyEngine.java
index b24d37c..f7ca5e8 100644
--- a/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/PolicyEngine.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/PolicyEngine.java
@@ -50,39 +50,46 @@
 import org.apache.ranger.plugin.util.ServicePolicies;
 
 public class PolicyEngine {
-
     private static final Log LOG = LogFactory.getLog(PolicyEngine.class);
 
     private static final Log PERF_POLICYENGINE_INIT_LOG       = RangerPerfTracer.getPerfLogger("policyengine.init");
     private static final Log PERF_POLICYENGINE_REBALANCE_LOG  = RangerPerfTracer.getPerfLogger("policyengine.rebalance");
 
-    private boolean  useForwardedIPAddress;
-    private String[] trustedProxyAddresses;
-
-    private final RangerPolicyRepository policyRepository;
-    private final RangerPolicyRepository tagPolicyRepository;
-
+    private final RangerPolicyRepository              policyRepository;
+    private final RangerPolicyRepository              tagPolicyRepository;
+    private final List<RangerContextEnricher>         allContextEnrichers;
+    private final RangerPluginContext                 pluginContext;
     private final Map<String, RangerPolicyRepository> zonePolicyRepositories = new HashMap<>();
+    private final Map<String, RangerResourceTrie>     resourceZoneTrie = new HashMap<>();
+    private final Map<String, String>                 zoneTagServiceMap = new HashMap<>();
+    private       boolean                             useForwardedIPAddress;
+    private       String[]                            trustedProxyAddresses;
+    private       boolean                             isPreCleaned = false;
 
-    private final List<RangerContextEnricher> allContextEnrichers;
-
-    private final Map<String, RangerResourceTrie>   resourceZoneTrie = new HashMap<>();
-    private final Map<String, String>               zoneTagServiceMap = new HashMap<>();
-    private final RangerPluginContext               pluginContext;
-
-    private       boolean                           isPreCleaned = false;
 
     public boolean getUseForwardedIPAddress() {
         return useForwardedIPAddress;
     }
 
+    public void setUseForwardedIPAddress(boolean useForwardedIPAddress) {
+        this.useForwardedIPAddress = useForwardedIPAddress;
+    }
+
     public String[] getTrustedProxyAddresses() {
         return trustedProxyAddresses;
     }
 
-    public long     getRoleVersion() { return this.pluginContext.getAuthContext().getRoleVersion(); }
+    public void setTrustedProxyAddresses(String[] trustedProxyAddresses) {
+        this.trustedProxyAddresses = trustedProxyAddresses;
+    }
 
-    public void     setRangerRoles(RangerRoles rangerRoles) { this.pluginContext.getAuthContext().setRangerRoles(rangerRoles); }
+    public long getRoleVersion() { return this.pluginContext.getAuthContext().getRoleVersion(); }
+
+    public void setRangerRoles(RangerRoles rangerRoles) { this.pluginContext.getAuthContext().setRangerRoles(rangerRoles); }
+
+    public String getServiceName() {
+        return policyRepository.getServiceName();
+    }
 
     public RangerServiceDef getServiceDef() {
         return policyRepository.getServiceDef();
@@ -100,34 +107,52 @@
         return tagPolicyRepository;
     }
 
+    public Map<String, RangerPolicyRepository> getZonePolicyRepositories() { return zonePolicyRepositories; }
+
     public List<RangerContextEnricher> getAllContextEnrichers() { return allContextEnrichers; }
 
     public RangerPluginContext getPluginContext() { return pluginContext; }
 
     @Override
-    public String toString( ) {
-        StringBuilder sb = new StringBuilder();
-
-        sb.append("PolicyEngine={");
-
-        sb.append("serviceName={").append(this.getServiceName()).append("} ");
-        sb.append(policyRepository);
-
-        sb.append("}");
-
-        return sb.toString();
+    public String toString() {
+        return toString(new StringBuilder()).toString();
     }
 
     @Override
     protected void finalize() throws Throwable {
         try {
             cleanup();
-        }
-        finally {
+        } finally {
             super.finalize();
         }
     }
 
+    public StringBuilder toString(StringBuilder sb) {
+        if (sb == null) {
+            sb = new StringBuilder();
+        }
+
+        sb.append("PolicyEngine={");
+
+        sb.append("serviceName={").append(this.getServiceName()).append("} ");
+
+        sb.append("policyRepository={");
+        if (policyRepository != null) {
+            policyRepository.toString(sb);
+        }
+        sb.append("} ");
+
+        sb.append("tagPolicyRepository={");
+        if (tagPolicyRepository != null) {
+            tagPolicyRepository.toString(sb);
+        }
+        sb.append("} ");
+
+        sb.append("}");
+
+        return sb;
+    }
+
     public boolean compare(PolicyEngine other) {
         boolean ret;
 
@@ -147,9 +172,11 @@
 
         if (ret) {
             ret = Objects.equals(resourceZoneTrie.keySet(), other.resourceZoneTrie.keySet());
+
             if (ret) {
                 for (Map.Entry<String, RangerResourceTrie> entry : resourceZoneTrie.entrySet()) {
                     ret = entry.getValue().compareSubtree(other.resourceZoneTrie.get(entry.getKey()));
+
                     if (!ret) {
                         break;
                     }
@@ -163,6 +190,7 @@
             if (ret) {
                 for (Map.Entry<String, RangerPolicyRepository> entry : zonePolicyRepositories.entrySet()) {
                     ret = entry.getValue().compare(other.zonePolicyRepositories.get(entry.getKey()));
+
                     if (!ret) {
                         break;
                     }
@@ -173,49 +201,47 @@
         return ret;
     }
 
-    public void setUseForwardedIPAddress(boolean useForwardedIPAddress) {
-        this.useForwardedIPAddress = useForwardedIPAddress;
-    }
-
-    public void setTrustedProxyAddresses(String[] trustedProxyAddresses) {
-        this.trustedProxyAddresses = trustedProxyAddresses;
-    }
-
     public List<RangerPolicy> getResourcePolicies(String zoneName) {
         RangerPolicyRepository zoneResourceRepository = zonePolicyRepositories.get(zoneName);
+
         return zoneResourceRepository == null ? ListUtils.EMPTY_LIST : zoneResourceRepository.getPolicies();
     }
 
     public RangerAccessResult createAccessResult(RangerAccessRequest request, int policyType) {
         RangerAccessResult ret = new RangerAccessResult(policyType, getServiceName(), getPolicyRepository().getServiceDef(), request);
+
         switch (getPolicyRepository().getAuditModeEnum()) {
             case AUDIT_ALL:
                 ret.setIsAudited(true);
                 break;
+
             case AUDIT_NONE:
                 ret.setIsAudited(false);
                 break;
+
             default:
                 if (CollectionUtils.isEmpty(getPolicyRepository().getPolicies()) && getTagPolicyRepository() == null) {
                     ret.setIsAudited(true);
                 }
+
                 break;
         }
         return ret;
     }
 
-    public PolicyEngine(String appId, ServicePolicies servicePolicies, RangerPolicyEngineOptions options, RangerPluginContext rangerPluginContext, RangerRoles rangerRoles) {
-
+    public PolicyEngine(String appId, ServicePolicies servicePolicies, RangerPolicyEngineOptions options, RangerPluginContext pluginContext, RangerRoles roles) {
         if (LOG.isDebugEnabled()) {
-            LOG.debug("==> PolicyEngine(" + appId + ", " + servicePolicies + ", " + options + ", " + rangerPluginContext + ")");
+            LOG.debug("==> PolicyEngine(" + appId + ", " + servicePolicies + ", " + options + ", " + pluginContext + ")");
         }
 
         RangerPerfTracer perf = null;
 
         if(RangerPerfTracer.isPerfTraceEnabled(PERF_POLICYENGINE_INIT_LOG)) {
             perf = RangerPerfTracer.getPerfTracer(PERF_POLICYENGINE_INIT_LOG, "RangerPolicyEngine.init(appId=" + appId + ",hashCode=" + Integer.toHexString(System.identityHashCode(this)) + ")");
-            long freeMemory = Runtime.getRuntime().freeMemory();
+
+            long freeMemory  = Runtime.getRuntime().freeMemory();
             long totalMemory = Runtime.getRuntime().totalMemory();
+
             PERF_POLICYENGINE_INIT_LOG.debug("In-Use memory: " + (totalMemory - freeMemory) + ", Free memory:" + freeMemory);
         }
 
@@ -223,11 +249,9 @@
             options = new RangerPolicyEngineOptions();
         }
 
-        this.pluginContext = rangerPluginContext;
+        this.pluginContext = pluginContext;
 
-        RangerAuthContext authContext = new RangerAuthContext(null);
-        authContext.setRangerRoles(rangerRoles);
-        this.pluginContext.setAuthContext(authContext);
+        this.pluginContext.setAuthContext(new RangerAuthContext(null, roles));
 
         if(StringUtils.isBlank(options.evaluatorType) || StringUtils.equalsIgnoreCase(options.evaluatorType, RangerPolicyEvaluator.EVALUATOR_TYPE_AUTO)) {
             options.evaluatorType = RangerPolicyEvaluator.EVALUATOR_TYPE_OPTIMIZED;
@@ -242,21 +266,21 @@
                 && !StringUtils.isEmpty(tagPolicies.getServiceName())
                 && tagPolicies.getServiceDef() != null
                 && !CollectionUtils.isEmpty(tagPolicies.getPolicies())) {
-
             if (LOG.isDebugEnabled()) {
                 LOG.debug("PolicyEngine : Building tag-policy-repository for tag-service " + tagPolicies.getServiceName());
             }
+
             tagPolicyRepository = new RangerPolicyRepository(appId, tagPolicies, options, this.pluginContext, servicePolicies.getServiceDef(), servicePolicies.getServiceName());
         } else {
             if (LOG.isDebugEnabled()) {
                 LOG.debug("PolicyEngine : No tag-policy-repository for service " + servicePolicies.getServiceName());
             }
+
             tagPolicyRepository = null;
         }
 
         List<RangerContextEnricher> tmpList;
-
-        List<RangerContextEnricher> tagContextEnrichers = tagPolicyRepository == null ? null :tagPolicyRepository.getContextEnrichers();
+        List<RangerContextEnricher> tagContextEnrichers      = tagPolicyRepository == null ? null :tagPolicyRepository.getContextEnrichers();
         List<RangerContextEnricher> resourceContextEnrichers = policyRepository.getContextEnrichers();
 
         if (CollectionUtils.isEmpty(tagContextEnrichers)) {
@@ -265,6 +289,7 @@
             tmpList = tagContextEnrichers;
         } else {
             tmpList = new ArrayList<>(tagContextEnrichers);
+
             tmpList.addAll(resourceContextEnrichers);
         }
 
@@ -272,8 +297,10 @@
 
         if (MapUtils.isNotEmpty(servicePolicies.getSecurityZones())) {
             buildZoneTrie(servicePolicies);
+
             for (Map.Entry<String, ServicePolicies.SecurityZoneInfo> zone : servicePolicies.getSecurityZones().entrySet()) {
                 RangerPolicyRepository policyRepository = new RangerPolicyRepository(appId, servicePolicies, options, this.pluginContext, zone.getKey());
+
                 zonePolicyRepositories.put(zone.getKey(), policyRepository);
             }
         }
@@ -281,8 +308,9 @@
         RangerPerfTracer.log(perf);
 
         if (PERF_POLICYENGINE_INIT_LOG.isDebugEnabled()) {
-            long freeMemory = Runtime.getRuntime().freeMemory();
+            long freeMemory  = Runtime.getRuntime().freeMemory();
             long totalMemory = Runtime.getRuntime().totalMemory();
+
             PERF_POLICYENGINE_INIT_LOG.debug("In-Use memory: " + (totalMemory - freeMemory) + ", Free memory:" + freeMemory);
         }
 
@@ -295,18 +323,17 @@
         if (LOG.isDebugEnabled()) {
             LOG.debug("==> cloneWithDelta(" + Arrays.toString(servicePolicies.getPolicyDeltas().toArray()) + ", " + servicePolicies.getPolicyVersion() + ")");
         }
-        final PolicyEngine ret;
 
-        RangerPerfTracer perf = null;
+        final PolicyEngine ret;
+        RangerPerfTracer   perf = null;
 
         if(RangerPerfTracer.isPerfTraceEnabled(PERF_POLICYENGINE_INIT_LOG)) {
             perf = RangerPerfTracer.getPerfTracer(PERF_POLICYENGINE_INIT_LOG, "RangerPolicyEngine.cloneWithDelta()");
         }
 
-        RangerServiceDef serviceDef = this.getServiceDef();
-        String serviceType = (serviceDef != null) ? serviceDef.getName() : "";
-
-        boolean isValidDeltas = false;
+        RangerServiceDef serviceDef    = this.getServiceDef();
+        String           serviceType   = (serviceDef != null) ? serviceDef.getName() : "";
+        boolean          isValidDeltas = false;
 
         if (CollectionUtils.isNotEmpty(servicePolicies.getPolicyDeltas()) || MapUtils.isNotEmpty(servicePolicies.getSecurityZones())) {
             isValidDeltas = CollectionUtils.isEmpty(servicePolicies.getPolicyDeltas()) || RangerPolicyDeltaUtil.isValidDeltas(servicePolicies.getPolicyDeltas(), serviceType);
@@ -318,6 +345,7 @@
                             if (LOG.isDebugEnabled()) {
                                 LOG.debug("Invalid policy-deltas for security zone:[" + entry.getKey() + "]");
                             }
+
                             isValidDeltas = false;
                             break;
                         }
@@ -340,20 +368,13 @@
         return ret;
     }
 
-    public String getServiceName() {
-        return policyRepository.getServiceName();
-    }
-
-    public Map<String, RangerPolicyRepository> getZonePolicyRepositories() { return zonePolicyRepositories; }
-
     public RangerPolicyRepository getRepositoryForMatchedZone(RangerAccessResource resource) {
         if (LOG.isDebugEnabled()) {
             LOG.debug("==> PolicyEngine.getRepositoryForMatchedZone(" + resource +  ")");
         }
 
-        String zoneName = getMatchedZoneName(resource);
-
-        final RangerPolicyRepository ret = getRepositoryForZone(zoneName);
+        String                       zoneName = getMatchedZoneName(resource);
+        final RangerPolicyRepository ret      = getRepositoryForZone(zoneName);
 
         if (LOG.isDebugEnabled()) {
             LOG.debug("<== PolicyEngine.getRepositoryForMatchedZone(" + resource +  ")");
@@ -367,9 +388,8 @@
             LOG.debug("==> PolicyEngine.getRepositoryForMatchedZone(" + policy + ")");
         }
 
-        String zoneName = policy.getZoneName();
-
-        final RangerPolicyRepository ret = getRepositoryForZone(zoneName);
+        String                       zoneName = policy.getZoneName();
+        final RangerPolicyRepository ret      = getRepositoryForZone(zoneName);
 
         if (LOG.isDebugEnabled()) {
             LOG.debug("<== PolicyEngine.getRepositoryForMatchedZone(" + policy + ")");
@@ -410,28 +430,30 @@
 
     public boolean isResourceZoneAssociatedWithTagService(String resourceZoneName) {
         final boolean ret;
+
         if (StringUtils.isNotEmpty(resourceZoneName) && tagPolicyRepository != null && zoneTagServiceMap.get(resourceZoneName) != null) {
             if (LOG.isDebugEnabled()) {
                 LOG.debug("Accessed resource is in a zone:[" + resourceZoneName + "] which is associated with the tag-service:[" + tagPolicyRepository.getServiceName() + "]");
             }
+
             ret = true;
         } else {
             ret = false;
         }
+
         return ret;
     }
 
     public void preCleanup() {
-
         if (LOG.isDebugEnabled()) {
             LOG.debug("==> PolicyEngine.preCleanup()");
         }
 
         if (!isPreCleaned) {
-
             if (policyRepository != null) {
                 policyRepository.preCleanup();
             }
+
             if (tagPolicyRepository != null) {
                 tagPolicyRepository.preCleanup();
             }
@@ -441,6 +463,7 @@
                     entry.getValue().preCleanup();
                 }
             }
+
             isPreCleaned = true;
         } else {
             if (LOG.isDebugEnabled()) {
@@ -453,10 +476,6 @@
         }
     }
 
-    List<RangerPolicy> getResourcePolicies() { return policyRepository == null ? ListUtils.EMPTY_LIST : policyRepository.getPolicies(); }
-
-    List<RangerPolicy> getTagPolicies() { return tagPolicyRepository == null ? ListUtils.EMPTY_LIST : tagPolicyRepository.getPolicies(); }
-
     private String getMatchedZoneName(Map<String, ?> resource, RangerAccessResource accessResource) {
         if (LOG.isDebugEnabled()) {
             LOG.debug("==> PolicyEngine.getMatchedZoneName(" + resource + ", " + accessResource + ")");
@@ -465,28 +484,28 @@
         String ret = null;
 
         if (MapUtils.isNotEmpty(this.resourceZoneTrie)) {
-
             List<List<RangerZoneResourceMatcher>> zoneMatchersList = null;
             List<RangerZoneResourceMatcher>       smallestList     = null;
 
             for (Map.Entry<String, ?> entry : resource.entrySet()) {
-                String       resourceDefName = entry.getKey();
-                Object       resourceValues  = entry.getValue();
-
-                RangerResourceTrie<RangerZoneResourceMatcher> trie         = resourceZoneTrie.get(resourceDefName);
+                String                                        resourceDefName = entry.getKey();
+                Object                                        resourceValues  = entry.getValue();
+                RangerResourceTrie<RangerZoneResourceMatcher> trie            = resourceZoneTrie.get(resourceDefName);
 
                 if (trie == null) {
                     continue;
                 }
 
-                List<RangerZoneResourceMatcher>               matchedZones = trie.getEvaluatorsForResource(resourceValues);
+                List<RangerZoneResourceMatcher> matchedZones = trie.getEvaluatorsForResource(resourceValues);
 
                 if (LOG.isDebugEnabled()) {
                     LOG.debug("ResourceDefName:[" + resourceDefName + "], values:[" + resourceValues + "], matched-zones:[" + matchedZones + "]");
                 }
+
                 if (CollectionUtils.isEmpty(matchedZones)) { // no policies for this resource, bail out
                     zoneMatchersList = null;
                     smallestList     = null;
+
                     break;
                 }
 
@@ -495,8 +514,10 @@
                 } else {
                     if (zoneMatchersList == null) {
                         zoneMatchersList = new ArrayList<>();
+
                         zoneMatchersList.add(smallestList);
                     }
+
                     zoneMatchersList.add(matchedZones);
 
                     if (smallestList.size() > matchedZones.size()) {
@@ -505,15 +526,16 @@
                 }
             }
             if (smallestList != null) {
-
                 final List<RangerZoneResourceMatcher> intersection;
 
                 if (zoneMatchersList != null) {
                     intersection = new ArrayList<>(smallestList);
+
                     for (List<RangerZoneResourceMatcher> zoneMatchers : zoneMatchersList) {
                         if (zoneMatchers != smallestList) {
                             // remove zones from intersection that are not in zoneMatchers
                             intersection.retainAll(zoneMatchers);
+
                             if (CollectionUtils.isEmpty(intersection)) { // if no zoneMatcher exists, bail out and return empty list
                                 break;
                             }
@@ -534,11 +556,13 @@
                         if (LOG.isDebugEnabled()) {
                             LOG.debug("Trying to match resource:[" + accessResource + "] using zoneMatcher:[" + zoneMatcher + "]");
                         }
+
                         // These are potential matches. Try to really match them
                         if (zoneMatcher.getPolicyResourceMatcher().isMatch(accessResource, RangerPolicyResourceMatcher.MatchScope.ANY, null)) {
                             if (LOG.isDebugEnabled()) {
                                 LOG.debug("Matched resource:[" + accessResource + "] using zoneMatcher:[" + zoneMatcher + "]");
                             }
+
                             // Actual match happened
                             matchedZoneNames.add(zoneMatcher.getSecurityZoneName());
                         } else {
@@ -547,11 +571,16 @@
                             }
                         }
                     }
-                    LOG.info("The following zone-names matched resource:[" + accessResource + "]: " + matchedZoneNames);
+
+                    if (LOG.isDebugEnabled()) {
+                        LOG.debug("The following zone-names matched resource:[" + accessResource + "]: " + matchedZoneNames);
+                    }
 
                     if (matchedZoneNames.size() == 1) {
                         String[] zones = new String[1];
+
                         matchedZoneNames.toArray(zones);
+
                         ret = zones[0];
                     } else {
                         LOG.error("Internal error, multiple zone-names are matched. The following zone-names matched resource:[" + resource + "]: " + matchedZoneNames);
@@ -559,14 +588,15 @@
                 }
             }
         }
+
         if (LOG.isDebugEnabled()) {
             LOG.debug("<== PolicyEngine.getMatchedZoneName(" + resource + ", " + accessResource + ") : " + ret);
         }
+
         return ret;
     }
 
     private RangerAccessResource convertToAccessResource(Map<String, ?> resource) {
-
         RangerAccessResourceImpl ret = new RangerAccessResourceImpl();
 
         ret.setServiceDef(getServiceDef());
@@ -579,7 +609,6 @@
     }
 
     private RangerPolicyRepository getRepositoryForZone(String zoneName) {
-
         final RangerPolicyRepository ret;
 
         if (LOG.isDebugEnabled()) {
@@ -595,29 +624,25 @@
         if (ret == null) {
             LOG.error("policyRepository for zoneName:[" + zoneName + "],  serviceName:[" + getServiceName() + "], policyVersion:[" + getPolicyVersion() + "] is null!! ERROR!");
         }
+
         return ret;
     }
 
     private PolicyEngine(final PolicyEngine other, ServicePolicies servicePolicies) {
-
-        long         policyVersion = servicePolicies.getPolicyVersion() != null ? servicePolicies.getPolicyVersion() : -1L;
-
         this.useForwardedIPAddress = other.useForwardedIPAddress;
         this.trustedProxyAddresses = other.trustedProxyAddresses;
+        this.pluginContext         = other.pluginContext;
 
-        this.pluginContext = other.pluginContext;
-
-        List<RangerPolicyDelta> defaultZoneDeltas = new ArrayList<>();
+        long                    policyVersion                   = servicePolicies.getPolicyVersion() != null ? servicePolicies.getPolicyVersion() : -1L;
+        List<RangerPolicyDelta> defaultZoneDeltas               = new ArrayList<>();
         List<RangerPolicyDelta> defaultZoneDeltasForTagPolicies = new ArrayList<>();
 
         if (MapUtils.isNotEmpty(servicePolicies.getSecurityZones())) {
-
             buildZoneTrie(servicePolicies);
 
             Map<String, List<RangerPolicyDelta>> zoneDeltasMap = new HashMap<>();
 
             for (Map.Entry<String, ServicePolicies.SecurityZoneInfo> zone : servicePolicies.getSecurityZones().entrySet()) {
-
                 List<RangerPolicyDelta> deltas = zone.getValue().getPolicyDeltas();
 
                 for (RangerPolicyDelta delta : deltas) {
@@ -625,10 +650,12 @@
 
                     if (StringUtils.isNotEmpty(zoneName)) {
                         List<RangerPolicyDelta> zoneDeltas = zoneDeltasMap.get(zoneName);
+
                         if (zoneDeltas == null) {
                             zoneDeltas = new ArrayList<>();
                             zoneDeltasMap.put(zoneName, zoneDeltas);
                         }
+
                         zoneDeltas.add(delta);
                     } else {
                         LOG.warn("policyDelta : [" + delta + "] does not belong to any zone. Should not have come here.");
@@ -637,15 +664,15 @@
             }
 
             for (Map.Entry<String, List<RangerPolicyDelta>> entry : zoneDeltasMap.entrySet()) {
-                final String             zoneName   = entry.getKey();
-                List<RangerPolicyDelta>  zoneDeltas = entry.getValue();
-
-                RangerPolicyRepository       otherRepository = other.zonePolicyRepositories.get(zoneName);
-                final RangerPolicyRepository policyRepository;
+                final String                  zoneName        = entry.getKey();
+                final List<RangerPolicyDelta> zoneDeltas      = entry.getValue();
+                final RangerPolicyRepository  otherRepository = other.zonePolicyRepositories.get(zoneName);
+                final RangerPolicyRepository  policyRepository;
 
                 if (CollectionUtils.isNotEmpty(zoneDeltas)) {
                     if (otherRepository == null) {
                         List<RangerPolicy> policies = new ArrayList<>();
+
                         for (RangerPolicyDelta delta : zoneDeltas) {
                             if (delta.getChangeType() == RangerPolicyDelta.CHANGE_TYPE_POLICY_CREATE) {
                                 policies.add(delta.getPolicy());
@@ -653,6 +680,7 @@
                                 LOG.warn("Expected changeType:[" + RangerPolicyDelta.CHANGE_TYPE_POLICY_CREATE + "], found policy-change-delta:[" + delta +"]");
                             }
                         }
+
                         servicePolicies.getSecurityZones().get(zoneName).setPolicies(policies);
 
                         policyRepository = new RangerPolicyRepository(other.policyRepository.getAppId(), servicePolicies, other.policyRepository.getOptions(), this.pluginContext, zoneName);
@@ -687,6 +715,7 @@
             if (other.tagPolicyRepository == null) {
                 // Only creates are expected
                 List<RangerPolicy> tagPolicies = new ArrayList<>();
+
                 for (RangerPolicyDelta delta : defaultZoneDeltasForTagPolicies) {
                     if (delta.getChangeType() == RangerPolicyDelta.CHANGE_TYPE_POLICY_CREATE) {
                         tagPolicies.add(delta.getPolicy());
@@ -694,7 +723,9 @@
                         LOG.warn("Expected changeType:[" + RangerPolicyDelta.CHANGE_TYPE_POLICY_CREATE + "], found policy-change-delta:[" + delta + "]");
                     }
                 }
+
                 servicePolicies.getTagPolicies().setPolicies(tagPolicies);
+
                 this.tagPolicyRepository = new RangerPolicyRepository(other.policyRepository.getAppId(), servicePolicies.getTagPolicies(), other.policyRepository.getOptions(), this.pluginContext, servicePolicies.getServiceDef(), servicePolicies.getServiceName());
             } else {
                 this.tagPolicyRepository = new RangerPolicyRepository(other.tagPolicyRepository, defaultZoneDeltasForTagPolicies, policyVersion);
@@ -704,8 +735,7 @@
         }
 
         List<RangerContextEnricher> tmpList;
-
-        List<RangerContextEnricher> tagContextEnrichers = tagPolicyRepository == null ? null :tagPolicyRepository.getContextEnrichers();
+        List<RangerContextEnricher> tagContextEnrichers      = tagPolicyRepository == null ? null :tagPolicyRepository.getContextEnrichers();
         List<RangerContextEnricher> resourceContextEnrichers = policyRepository.getContextEnrichers();
 
         if (CollectionUtils.isEmpty(tagContextEnrichers)) {
@@ -714,12 +744,13 @@
             tmpList = tagContextEnrichers;
         } else {
             tmpList = new ArrayList<>(tagContextEnrichers);
+
             tmpList.addAll(resourceContextEnrichers);
         }
+
         this.allContextEnrichers = tmpList;
 
         reorderPolicyEvaluators();
-
     }
 
     private void buildZoneTrie(ServicePolicies servicePolicies) {
@@ -742,7 +773,6 @@
                 }
 
                 for (Map<String, List<String>> resource : zoneDetails.getResources()) {
-
                     if (LOG.isDebugEnabled()) {
                         LOG.debug("Building matcher for resource:[" + resource + "] in zone:[" + zoneName +"]");
                     }
@@ -750,10 +780,9 @@
                     Map<String, RangerPolicy.RangerPolicyResource> policyResources = new HashMap<>();
 
                     for (Map.Entry<String, List<String>> entry : resource.entrySet()) {
-                        String resourceDefName = entry.getKey();
-                        List<String> resourceValues = entry.getValue();
-
-                        RangerPolicy.RangerPolicyResource policyResource = new RangerPolicy.RangerPolicyResource();
+                        String                            resourceDefName = entry.getKey();
+                        List<String>                      resourceValues  = entry.getValue();
+                        RangerPolicy.RangerPolicyResource policyResource  = new RangerPolicy.RangerPolicyResource();
 
                         policyResource.setIsExcludes(false);
                         policyResource.setIsRecursive(StringUtils.equals(serviceDef.getName(), EmbeddedServiceDefsUtil.EMBEDDED_SERVICEDEF_HDFS_NAME));
@@ -784,7 +813,6 @@
             for (RangerServiceDef.RangerResourceDef resourceDef : serviceDef.getResources()) {
                 resourceZoneTrie.put(resourceDef.getName(), new RangerResourceTrie<>(resourceDef, matchers));
             }
-
         }
 
         if (LOG.isDebugEnabled()) {
@@ -796,12 +824,14 @@
         if (other != null) {
             other.setShared();
         }
+
         return other;
     }
     private void reorderPolicyEvaluators() {
         if (LOG.isDebugEnabled()) {
             LOG.debug("==> reorderEvaluators()");
         }
+
         RangerPerfTracer perf = null;
 
         if(RangerPerfTracer.isPerfTraceEnabled(PERF_POLICYENGINE_REBALANCE_LOG)) {
@@ -823,7 +853,6 @@
     }
 
     private void cleanup() {
-
         if (LOG.isDebugEnabled()) {
             LOG.debug("==> PolicyEngine.cleanup()");
         }
@@ -833,11 +862,13 @@
         if(RangerPerfTracer.isPerfTraceEnabled(PERF_POLICYENGINE_INIT_LOG)) {
             perf = RangerPerfTracer.getPerfTracer(PERF_POLICYENGINE_INIT_LOG, "RangerPolicyEngine.cleanUp(hashCode=" + Integer.toHexString(System.identityHashCode(this)) + ")");
         }
+
         preCleanup();
 
         if (policyRepository != null) {
             policyRepository.cleanup();
         }
+
         if (tagPolicyRepository != null) {
             tagPolicyRepository.cleanup();
         }
@@ -854,6 +885,5 @@
             LOG.debug("<== PolicyEngine.cleanup()");
         }
     }
-
 }
 
diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/RangerAccessRequestProcessor.java b/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/RangerAccessRequestProcessor.java
index a683699..a213b36 100644
--- a/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/RangerAccessRequestProcessor.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/RangerAccessRequestProcessor.java
@@ -20,9 +20,7 @@
 package org.apache.ranger.plugin.policyengine;
 
 public interface RangerAccessRequestProcessor {
-
     void preProcess(RangerAccessRequest request);
 
     default void enrich(RangerAccessRequest request) {}
-
 }
diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/RangerPolicyEngineImpl.java b/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/RangerPolicyEngineImpl.java
index afe6683..5709fd8 100644
--- a/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/RangerPolicyEngineImpl.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/RangerPolicyEngineImpl.java
@@ -20,6 +20,7 @@
 package org.apache.ranger.plugin.policyengine;
 
 import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.collections.ListUtils;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -57,22 +58,27 @@
 	private final PolicyEngine                 policyEngine;
 	private final RangerAccessRequestProcessor requestProcessor;
 
+
 	static public RangerPolicyEngine getPolicyEngine(final RangerPolicyEngineImpl other, final ServicePolicies servicePolicies) {
 		RangerPolicyEngine ret = null;
 
 		if (other != null && servicePolicies != null) {
 			PolicyEngine policyEngine = other.policyEngine.cloneWithDelta(servicePolicies);
+
 			if (policyEngine != null) {
 				ret = new RangerPolicyEngineImpl(policyEngine);
 			}
 		}
+
 		return ret;
 	}
 
-	public RangerPolicyEngineImpl(String appId, ServicePolicies servicePolicies, RangerPolicyEngineOptions options, RangerPluginContext rangerPluginContext, RangerRoles rangerRoles) {
-		policyEngine = new PolicyEngine(appId, servicePolicies, options, rangerPluginContext, rangerRoles);
-		policyEngine.getPluginContext().getAuthContext().setRangerRoles(rangerRoles);
-		this.requestProcessor = new RangerDefaultRequestProcessor(policyEngine);
+	public RangerPolicyEngineImpl(String appId, ServicePolicies servicePolicies, RangerPolicyEngineOptions options, RangerPluginContext pluginContext, RangerRoles roles) {
+		policyEngine = new PolicyEngine(appId, servicePolicies, options, pluginContext, roles);
+
+		policyEngine.getPluginContext().getAuthContext().setRangerRoles(roles);
+
+		requestProcessor = new RangerDefaultRequestProcessor(policyEngine);
 	}
 
 	@Override
@@ -85,22 +91,27 @@
 		if (LOG.isDebugEnabled()) {
 			LOG.debug("==> RangerPolicyEngineImpl.evaluatePolicies(" + request + ", policyType=" + policyType + ")");
 		}
+
 		RangerPerfTracer perf = null;
 
 		if(RangerPerfTracer.isPerfTraceEnabled(PERF_POLICYENGINE_REQUEST_LOG)) {
 			String requestHashCode = Integer.toHexString(System.identityHashCode(request)) + "_" + policyType;
+
 			perf = RangerPerfTracer.getPerfTracer(PERF_POLICYENGINE_REQUEST_LOG, "RangerPolicyEngine.evaluatePolicies(requestHashCode=" + requestHashCode + ")");
+
 			LOG.info("RangerPolicyEngineImpl.evaluatePolicies(" + requestHashCode + ", " + request + ")");
 		}
+
 		requestProcessor.preProcess(request);
 
 		RangerAccessResult ret = zoneAwareAccessEvaluationWithNoAudit(request, policyType);
 
 		if (resultProcessor != null) {
-
 			RangerPerfTracer perfAuditTracer = null;
+
 			if(RangerPerfTracer.isPerfTraceEnabled(PERF_POLICYENGINE_AUDIT_LOG)) {
 				String requestHashCode = Integer.toHexString(System.identityHashCode(request)) + "_" + policyType;
+
 				perfAuditTracer = RangerPerfTracer.getPerfTracer(PERF_POLICYENGINE_AUDIT_LOG, "RangerPolicyEngine.processAudit(requestHashCode=" + requestHashCode + ")");
 			}
 
@@ -154,7 +165,6 @@
 		}
 
 		RangerResourceACLs ret  = new RangerResourceACLs();
-
 		RangerPerfTracer   perf = null;
 
 		if(RangerPerfTracer.isPerfTraceEnabled(PERF_POLICYENGINE_GET_ACLS_LOG)) {
@@ -180,13 +190,11 @@
 		if (matchedRepository == null) {
 			LOG.error("policyRepository for zoneName:[" + zoneName + "],  serviceName:[" + policyEngine.getPolicyRepository().getServiceName() + "], policyVersion:[" + getPolicyVersion() + "] is null!! ERROR!");
 		} else {
-
-			List<RangerPolicyEvaluator> allEvaluators = new ArrayList<>();
-			Map<Long, RangerPolicyResourceMatcher.MatchType> tagMatchTypeMap = null;
-			Set<Long> policyIdForTemporalTags = null;
-
-			Set<RangerTagForEval> tags = RangerAccessRequestUtil.getRequestTagsFromContext(request.getContext());
-			List<PolicyEvaluatorForTag> tagPolicyEvaluators = policyEngine.getTagPolicyRepository() == null ? null : policyEngine.getTagPolicyRepository().getLikelyMatchPolicyEvaluators(tags, RangerPolicy.POLICY_TYPE_ACCESS, null);
+			List<RangerPolicyEvaluator>                      allEvaluators           = new ArrayList<>();
+			Map<Long, RangerPolicyResourceMatcher.MatchType> tagMatchTypeMap         = null;
+			Set<Long>                                        policyIdForTemporalTags = null;
+			Set<RangerTagForEval>                            tags                    = RangerAccessRequestUtil.getRequestTagsFromContext(request.getContext());
+			List<PolicyEvaluatorForTag>                      tagPolicyEvaluators     = policyEngine.getTagPolicyRepository() == null ? null : policyEngine.getTagPolicyRepository().getLikelyMatchPolicyEvaluators(tags, RangerPolicy.POLICY_TYPE_ACCESS, null);
 
 			if (CollectionUtils.isNotEmpty(tagPolicyEvaluators)) {
 				tagMatchTypeMap = new HashMap<>();
@@ -194,13 +202,15 @@
 				final boolean useTagPoliciesFromDefaultZone = !policyEngine.isResourceZoneAssociatedWithTagService(zoneName);
 
 				for (PolicyEvaluatorForTag tagEvaluator : tagPolicyEvaluators) {
-					RangerPolicyEvaluator evaluator = tagEvaluator.getEvaluator();
-					String policyZoneName = evaluator.getPolicy().getZoneName();
+					RangerPolicyEvaluator evaluator      = tagEvaluator.getEvaluator();
+					String                policyZoneName = evaluator.getPolicy().getZoneName();
+
 					if (useTagPoliciesFromDefaultZone) {
 						if (StringUtils.isNotEmpty(policyZoneName)) {
 							if (LOG.isDebugEnabled()) {
 								LOG.debug("Tag policy [zone:" + policyZoneName + "] does not belong to default zone. Not evaluating this policy:[" + evaluator.getPolicy() + "]");
 							}
+
 							continue;
 						}
 					} else {
@@ -208,9 +218,11 @@
 							if (LOG.isDebugEnabled()) {
 								LOG.debug("Tag policy [zone:" + policyZoneName + "] does not belong to the zone:[" + zoneName + "] of the accessed resource. Not evaluating this policy:[" + evaluator.getPolicy() + "]");
 							}
+
 							continue;
 						}
 					}
+
 					RangerTagForEval tag = tagEvaluator.getTag();
 
 					allEvaluators.add(evaluator);
@@ -267,10 +279,9 @@
 					PolicyACLSummary aclSummary = evaluator.getPolicyACLSummary();
 
 					if (aclSummary != null) {
-
 						boolean isConditional = (policyIdForTemporalTags != null && policyIdForTemporalTags.contains(evaluator.getId())) || evaluator.getValidityScheduleEvaluatorsCount() != 0;
-
 						Integer accessResult;
+
 						for (Map.Entry<String, Map<String, PolicyACLSummary.AccessResult>> userAccessInfo : aclSummary.getUsersAccessInfo().entrySet()) {
 							final String userName = userAccessInfo.getKey();
 
@@ -279,11 +290,14 @@
 									accessResult = ACCESS_CONDITIONAL;
 								} else {
 									accessResult = accessInfo.getValue().getResult();
+
 									if (accessResult.equals(RangerPolicyEvaluator.ACCESS_UNDETERMINED)) {
 										accessResult = RangerPolicyEvaluator.ACCESS_DENIED;
 									}
 								}
+
 								RangerPolicy policy = evaluator.getPolicy();
+
 								ret.setUserAccessInfo(userName, accessInfo.getKey(), accessResult, policy);
 							}
 						}
@@ -296,11 +310,14 @@
 									accessResult = ACCESS_CONDITIONAL;
 								} else {
 									accessResult = accessInfo.getValue().getResult();
+
 									if (accessResult.equals(RangerPolicyEvaluator.ACCESS_UNDETERMINED)) {
 										accessResult = RangerPolicyEvaluator.ACCESS_DENIED;
 									}
 								}
+
 								RangerPolicy policy = evaluator.getPolicy();
+
 								ret.setGroupAccessInfo(groupName, accessInfo.getKey(), accessResult, policy);
 							}
 						}
@@ -313,11 +330,14 @@
 									accessResult = ACCESS_CONDITIONAL;
 								} else {
 									accessResult = accessInfo.getValue().getResult();
+
 									if (accessResult.equals(RangerPolicyEvaluator.ACCESS_UNDETERMINED)) {
 										accessResult = RangerPolicyEvaluator.ACCESS_DENIED;
 									}
 								}
+
 								RangerPolicy policy = evaluator.getPolicy();
+
 								ret.setRoleAccessInfo(roleName, accessInfo.getKey(), accessResult, policy);
 							}
 						}
@@ -346,9 +366,8 @@
 
 		requestProcessor.preProcess(request);
 
-		RangerResourceAccessInfo ret = new RangerResourceAccessInfo(request);
-
-		String zoneName = policyEngine.getMatchedZoneName(request.getResource());
+		RangerResourceAccessInfo ret      = new RangerResourceAccessInfo(request);
+		String                   zoneName = policyEngine.getMatchedZoneName(request.getResource());
 
 		if (LOG.isDebugEnabled()) {
 			LOG.debug("zoneName:[" + zoneName + "]");
@@ -365,29 +384,27 @@
 		if (matchedRepository == null) {
 			LOG.error("policyRepository for zoneName:[" + zoneName + "],  serviceName:[" + policyEngine.getPolicyRepository().getServiceName() + "], policyVersion:[" + getPolicyVersion() + "] is null!! ERROR!");
 		} else {
-
 			List<RangerPolicyEvaluator> tagPolicyEvaluators = policyEngine.getTagPolicyRepository() == null ? null : policyEngine.getTagPolicyRepository().getPolicyEvaluators();
 
 			if (CollectionUtils.isNotEmpty(tagPolicyEvaluators)) {
-
 				Set<RangerTagForEval> tags = RangerAccessRequestUtil.getRequestTagsFromContext(request.getContext());
 
 				if (CollectionUtils.isNotEmpty(tags)) {
-
 					final boolean useTagPoliciesFromDefaultZone = !policyEngine.isResourceZoneAssociatedWithTagService(zoneName);
 
 					for (RangerTagForEval tag : tags) {
-						RangerAccessRequest tagEvalRequest = new RangerTagAccessRequest(tag, policyEngine.getTagPolicyRepository().getServiceDef(), request);
-
-						List<RangerPolicyEvaluator> evaluators = policyEngine.getTagPolicyRepository().getLikelyMatchPolicyEvaluators(tagEvalRequest.getResource(), RangerPolicy.POLICY_TYPE_ACCESS);
+						RangerAccessRequest         tagEvalRequest = new RangerTagAccessRequest(tag, policyEngine.getTagPolicyRepository().getServiceDef(), request);
+						List<RangerPolicyEvaluator> evaluators     = policyEngine.getTagPolicyRepository().getLikelyMatchPolicyEvaluators(tagEvalRequest.getResource(), RangerPolicy.POLICY_TYPE_ACCESS);
 
 						for (RangerPolicyEvaluator evaluator : evaluators) {
 							String policyZoneName = evaluator.getPolicy().getZoneName();
+
 							if (useTagPoliciesFromDefaultZone) {
 								if (StringUtils.isNotEmpty(policyZoneName)) {
 									if (LOG.isDebugEnabled()) {
 										LOG.debug("Tag policy [zone:" + policyZoneName + "] does not belong to default zone. Not evaluating this policy:[" + evaluator.getPolicy() + "]");
 									}
+
 									continue;
 								}
 							} else {
@@ -395,9 +412,11 @@
 									if (LOG.isDebugEnabled()) {
 										LOG.debug("Tag policy [zone:" + policyZoneName + "] does not belong to the zone:[" + zoneName + "] of the accessed resource. Not evaluating this policy:[" + evaluator.getPolicy() + "]");
 									}
+
 									continue;
 								}
 							}
+
 							evaluator.getResourceAccessInfo(tagEvalRequest, ret);
 						}
 					}
@@ -478,19 +497,25 @@
 
 	@Override
 	public List<RangerPolicy> getResourcePolicies() {
-		return policyEngine.getResourcePolicies();
+		RangerPolicyRepository policyRepository = policyEngine.getPolicyRepository();
+
+		return policyRepository == null ? ListUtils.EMPTY_LIST : policyRepository.getPolicies();
 	}
 
 	@Override
 	public List<RangerPolicy> getTagPolicies() {
-		return policyEngine.getTagPolicies();
+		RangerPolicyRepository tagPolicyRepository = policyEngine.getTagPolicyRepository();
+
+		return tagPolicyRepository == null ? ListUtils.EMPTY_LIST : tagPolicyRepository.getPolicies();
 	}
 
 	public void releaseResources() {
 		if (LOG.isDebugEnabled()) {
 			LOG.debug("==> RangerPolicyEngineImpl.releaseResources()");
 		}
+
 		PolicyEngine policyEngine = this.policyEngine;
+
 		if (policyEngine != null) {
 			policyEngine.preCleanup();
 		} else {
@@ -498,6 +523,7 @@
 				LOG.debug("Cannot preCleanup policy-engine as it is null!");
 			}
 		}
+
 		if (LOG.isDebugEnabled()) {
 			LOG.debug("<== RangerPolicyEngineImpl.releaseResources()");
 		}
@@ -508,7 +534,7 @@
 	}
 
 	private RangerPolicyEngineImpl(final PolicyEngine policyEngine) {
-		this.policyEngine = policyEngine;
+		this.policyEngine     = policyEngine;
 		this.requestProcessor = new RangerDefaultRequestProcessor(policyEngine);
 	}
 
@@ -517,13 +543,10 @@
 			LOG.debug("==> RangerPolicyEngineImpl.zoneAwareAccessEvaluationWithNoAudit(" + request + ", policyType =" + policyType + ")");
 		}
 
-		RangerAccessResult ret = null;
-
-		RangerPolicyRepository policyRepository = policyEngine.getPolicyRepository();
+		RangerAccessResult     ret                 = null;
+		RangerPolicyRepository policyRepository    = policyEngine.getPolicyRepository();
 		RangerPolicyRepository tagPolicyRepository = policyEngine.getTagPolicyRepository();
-
-		// Evaluate zone-name from request
-		String zoneName = policyEngine.getMatchedZoneName(request.getResource());
+		String                 zoneName            = policyEngine.getMatchedZoneName(request.getResource()); // Evaluate zone-name from request
 
 		if (LOG.isDebugEnabled()) {
 			LOG.debug("zoneName:[" + zoneName + "]");
@@ -536,15 +559,17 @@
 				LOG.error("policyRepository for zoneName:[" + zoneName + "],  serviceName:[" + policyEngine.getPolicyRepository().getServiceName() + "], policyVersion:[" + getPolicyVersion() + "] is null!! ERROR!");
 			}
 		}
+
 		if (policyRepository != null) {
 			ret = evaluatePoliciesNoAudit(request, policyType, zoneName, policyRepository, tagPolicyRepository);
+
 			ret.setZoneName(zoneName);
 		}
 
-
 		if (LOG.isDebugEnabled()) {
 			LOG.debug("<== RangerPolicyEngineImpl.zoneAwareAccessEvaluationWithNoAudit(" + request + ", policyType =" + policyType + "): " + ret);
 		}
+
 		return ret;
 	}
 
@@ -553,9 +578,8 @@
 			LOG.debug("==> RangerPolicyEngineImpl.evaluatePoliciesNoAudit(" + request + ", policyType =" + policyType + ", zoneName=" + zoneName + ")");
 		}
 
-		Date accessTime = request.getAccessTime() != null ? request.getAccessTime() : new Date();
-		RangerAccessResult ret = policyEngine.createAccessResult(request, policyType);
-
+		Date               accessTime = request.getAccessTime() != null ? request.getAccessTime() : new Date();
+		RangerAccessResult ret        = policyEngine.createAccessResult(request, policyType);
 
 		evaluateTagPolicies(request, policyType, zoneName, tagPolicyRepository, ret);
 
@@ -575,7 +599,7 @@
 
 		if (evaluateResourcePolicies) {
 			boolean findAuditByResource = !ret.getIsAuditedDetermined();
-			boolean foundInCache = findAuditByResource && policyRepository.setAuditEnabledFromCache(request, ret);
+			boolean foundInCache        = findAuditByResource && policyRepository.setAuditEnabledFromCache(request, ret);
 
 			ret.setIsAccessDetermined(false); // discard result by tag-policies, to evaluate resource policies for possible override
 
@@ -640,24 +664,23 @@
 			LOG.debug("==> RangerPolicyEngineImpl.evaluateTagPolicies(" + request + ", policyType =" + policyType + ", zoneName=" + zoneName + ", " + result + ")");
 		}
 
-		Date accessTime = request.getAccessTime() != null ? request.getAccessTime() : new Date();
-
-		Set<RangerTagForEval> tags = RangerAccessRequestUtil.getRequestTagsFromContext(request.getContext());
-
+		Date                        accessTime       = request.getAccessTime() != null ? request.getAccessTime() : new Date();
+		Set<RangerTagForEval>       tags             = RangerAccessRequestUtil.getRequestTagsFromContext(request.getContext());
 		List<PolicyEvaluatorForTag> policyEvaluators = tagPolicyRepository == null ? null : tagPolicyRepository.getLikelyMatchPolicyEvaluators(tags, policyType, accessTime);
 
 		if (CollectionUtils.isNotEmpty(policyEvaluators)) {
 			final boolean useTagPoliciesFromDefaultZone = !policyEngine.isResourceZoneAssociatedWithTagService(zoneName);
 
 			for (PolicyEvaluatorForTag policyEvaluator : policyEvaluators) {
-				RangerPolicyEvaluator evaluator = policyEvaluator.getEvaluator();
+				RangerPolicyEvaluator evaluator      = policyEvaluator.getEvaluator();
+				String                policyZoneName = evaluator.getPolicy().getZoneName();
 
-				String policyZoneName = evaluator.getPolicy().getZoneName();
 				if (useTagPoliciesFromDefaultZone) {
 					if (StringUtils.isNotEmpty(policyZoneName)) {
 						if (LOG.isDebugEnabled()) {
 							LOG.debug("Tag policy [zone:" + policyZoneName + "] does not belong to default zone. Not evaluating this policy:[" + evaluator.getPolicy() + "]");
 						}
+
 						continue;
 					}
 				} else {
@@ -665,14 +688,14 @@
 						if (LOG.isDebugEnabled()) {
 							LOG.debug("Tag policy [zone:" + policyZoneName + "] does not belong to the zone:[" + zoneName + "] of the accessed resource. Not evaluating this policy:[" + evaluator.getPolicy() + "]");
 						}
+
 						continue;
 					}
 				}
 
-				RangerTagForEval tag = policyEvaluator.getTag();
-
+				RangerTagForEval    tag            = policyEvaluator.getTag();
 				RangerAccessRequest tagEvalRequest = new RangerTagAccessRequest(tag, tagPolicyRepository.getServiceDef(), request);
-				RangerAccessResult tagEvalResult = policyEngine.createAccessResult(tagEvalRequest, policyType);
+				RangerAccessResult  tagEvalResult  = policyEngine.createAccessResult(tagEvalRequest, policyType);
 
 				if (LOG.isDebugEnabled()) {
 					LOG.debug("RangerPolicyEngineImpl.evaluateTagPolicies: Evaluating policies for tag (" + tag.getType() + ")");
@@ -710,6 +733,7 @@
 				}
 			}
 		}
+
 		if (result.getIsAllowed()) {
 			result.setIsAccessDetermined(true);
 		}
@@ -718,5 +742,4 @@
 			LOG.debug("<== RangerPolicyEngineImpl.evaluateTagPolicies(" + request + ", policyType =" + policyType + ", zoneName=" + zoneName + ", " + result + ")");
 		}
 	}
-
 }
diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/RangerPolicyRepository.java b/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/RangerPolicyRepository.java
index 28b441a..e583fa1 100644
--- a/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/RangerPolicyRepository.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/RangerPolicyRepository.java
@@ -56,7 +56,7 @@
     private static final Log LOG = LogFactory.getLog(RangerPolicyRepository.class);
 
     private static final Log PERF_CONTEXTENRICHER_INIT_LOG = RangerPerfTracer.getPerfLogger("contextenricher.init");
-    private static final Log PERF_TRIE_OP_LOG = RangerPerfTracer.getPerfLogger("resourcetrie.retrieval");
+    private static final Log PERF_TRIE_OP_LOG              = RangerPerfTracer.getPerfLogger("resourcetrie.retrieval");
 
     enum AuditModeEnum {
         AUDIT_ALL, AUDIT_NONE, AUDIT_DEFAULT
@@ -78,50 +78,48 @@
         }
     }
 
-    private final String                      serviceName;
-    private final String                      zoneName;
-    private final String                      appId;
-    private final RangerPolicyEngineOptions   options;
-    private final RangerPluginContext         pluginContext;
-    private final RangerServiceDef            serviceDef;
-    private final List<RangerPolicy>          policies;
-    private final long                        policyVersion;
-    private final List<RangerContextEnricher> contextEnrichers;
-    private List<RangerPolicyEvaluator>       policyEvaluators;
-    private List<RangerPolicyEvaluator>       dataMaskPolicyEvaluators;
-    private List<RangerPolicyEvaluator>       rowFilterPolicyEvaluators;
-    private Map<Long, RangerPolicyEvaluator>  policyEvaluatorsMap;
-    private final AuditModeEnum               auditModeEnum;
-    private final Map<String, AuditInfo>      accessAuditCache;
-
-    private final String                      componentServiceName;
-    private final RangerServiceDef            componentServiceDef;
+    private final String                          serviceName;
+    private final String                          zoneName;
+    private final String                          appId;
+    private final RangerPolicyEngineOptions       options;
+    private final RangerPluginContext             pluginContext;
+    private final RangerServiceDef                serviceDef;
+    private final List<RangerPolicy>              policies;
+    private final long                            policyVersion;
+    private final List<RangerContextEnricher>     contextEnrichers;
+    private final AuditModeEnum                   auditModeEnum;
+    private final Map<String, AuditInfo>          accessAuditCache;
+    private final String                          componentServiceName;
+    private final RangerServiceDef                componentServiceDef;
     private final Map<String, RangerResourceTrie> policyResourceTrie;
     private final Map<String, RangerResourceTrie> dataMaskResourceTrie;
     private final Map<String, RangerResourceTrie> rowFilterResourceTrie;
-
-    private boolean                           isContextEnrichersShared = false;
-    private boolean                           isPreCleaned = false;
+    private       List<RangerPolicyEvaluator>       policyEvaluators;
+    private       List<RangerPolicyEvaluator>       dataMaskPolicyEvaluators;
+    private       List<RangerPolicyEvaluator>       rowFilterPolicyEvaluators;
+    private       Map<Long, RangerPolicyEvaluator>  policyEvaluatorsMap;
+    private       boolean                           isContextEnrichersShared = false;
+    private       boolean                           isPreCleaned = false;
 
     RangerPolicyRepository(final RangerPolicyRepository other, final List<RangerPolicyDelta> deltas, long policyVersion) {
-
-        this.serviceName = other.serviceName;
-        this.zoneName = other.zoneName;
-        this.appId = other.appId;
-        this.options = other.options;
-        this.pluginContext = other.pluginContext;
-        this.serviceDef = other.serviceDef;
-        this.policies = new ArrayList<>(other.policies);
-        this.policyEvaluators = new ArrayList<>(other.policyEvaluators);
-        this.dataMaskPolicyEvaluators = new ArrayList<>(other.dataMaskPolicyEvaluators);
+        this.serviceName               = other.serviceName;
+        this.zoneName                  = other.zoneName;
+        this.appId                     = other.appId;
+        this.options                   = other.options;
+        this.pluginContext             = other.pluginContext;
+        this.serviceDef                = other.serviceDef;
+        this.policies                  = new ArrayList<>(other.policies);
+        this.policyEvaluators          = new ArrayList<>(other.policyEvaluators);
+        this.dataMaskPolicyEvaluators  = new ArrayList<>(other.dataMaskPolicyEvaluators);
         this.rowFilterPolicyEvaluators = new ArrayList<>(other.rowFilterPolicyEvaluators);
-        this.auditModeEnum = other.auditModeEnum;
-        this.componentServiceName = other.componentServiceName;
-        this.componentServiceDef = other.componentServiceDef;
-        this.policyEvaluatorsMap = new HashMap<>(other.policyEvaluatorsMap);
+        this.auditModeEnum             = other.auditModeEnum;
+        this.componentServiceName      = other.componentServiceName;
+        this.componentServiceDef       = other.componentServiceDef;
+        this.policyEvaluatorsMap       = new HashMap<>(other.policyEvaluatorsMap);
 
         if (other.policyResourceTrie != null) {
             this.policyResourceTrie = new HashMap<>();
+
             for (Map.Entry<String, RangerResourceTrie> entry : other.policyResourceTrie.entrySet()) {
                 policyResourceTrie.put(entry.getKey(), new RangerResourceTrie(entry.getValue()));
             }
@@ -131,6 +129,7 @@
 
         if (other.dataMaskResourceTrie != null) {
             this.dataMaskResourceTrie = new HashMap<>();
+
             for (Map.Entry<String, RangerResourceTrie> entry : other.dataMaskResourceTrie.entrySet()) {
                 dataMaskResourceTrie.put(entry.getKey(), new RangerResourceTrie(entry.getValue()));
             }
@@ -140,6 +139,7 @@
 
         if (other.rowFilterResourceTrie != null) {
             this.rowFilterResourceTrie = new HashMap<>();
+
             for (Map.Entry<String, RangerResourceTrie> entry : other.rowFilterResourceTrie.entrySet()) {
                 rowFilterResourceTrie.put(entry.getKey(), new RangerResourceTrie(entry.getValue()));
             }
@@ -149,6 +149,7 @@
 
         if (other.accessAuditCache != null) {
             int auditResultCacheSize = other.accessAuditCache.size();
+
             this.accessAuditCache = Collections.synchronizedMap(new CacheMap<String, AuditInfo>(auditResultCacheSize));
         } else {
             this.accessAuditCache = null;
@@ -157,7 +158,6 @@
         boolean[] flags = new boolean[RangerPolicy.POLICY_TYPES.length];
 
         for (RangerPolicyDelta delta : deltas) {
-
             final Integer changeType  = delta.getChangeType();
             final String  serviceType = delta.getServiceType();
             final Long    policyId    = delta.getPolicyId();
@@ -175,17 +175,21 @@
                         if (LOG.isDebugEnabled()) {
                             LOG.debug("Could not find policy for policy-id:[" + policyId + "]");
                         }
+
                         continue;
                     }
                     break;
+
                 case RangerPolicyDelta.CHANGE_TYPE_POLICY_UPDATE:
                     evaluator = getPolicyEvaluator(policyId);
+
                     if (evaluator == null) {
                         if (LOG.isDebugEnabled()) {
                             LOG.debug("Could not find evaluator for policy-id:[" + policyId + "]");
                         }
                     }
                     break;
+
                 case RangerPolicyDelta.CHANGE_TYPE_POLICY_DELETE:
                     evaluator = getPolicyEvaluator(policyId);
                     if (evaluator == null) {
@@ -194,6 +198,7 @@
                         }
                     }
                     break;
+
                 default:
                     LOG.error("Unknown changeType:[" + changeType + "], Ignoring");
                     break;
@@ -206,12 +211,15 @@
                     case RangerPolicyDelta.CHANGE_TYPE_POLICY_CREATE:
                         policyEvaluatorsMap.put(policyId, evaluator);
                         break;
+
                     case RangerPolicyDelta.CHANGE_TYPE_POLICY_UPDATE:
                         policyEvaluatorsMap.put(policyId, evaluator);
                         break;
+
                     case RangerPolicyDelta.CHANGE_TYPE_POLICY_DELETE:
                         policyEvaluatorsMap.remove(policyId);
                         break;
+
                     default:
                         break;
                 }
@@ -221,7 +229,6 @@
         }
 
         for (int policyType = 0; policyType < flags.length; policyType++) {
-
             if (flags[policyType]) {
                 Map<String, RangerResourceTrie> trie = getTrie(policyType);
 
@@ -392,6 +399,63 @@
         return sb.toString();
     }
 
+    public StringBuilder toString(StringBuilder sb) {
+        if (sb == null) {
+            sb = new StringBuilder();
+        }
+
+        sb.append("RangerPolicyRepository={");
+
+        sb.append("serviceName={").append(serviceName).append("} ");
+        sb.append("zoneName={").append(zoneName).append("} ");
+        sb.append("serviceDef={").append(serviceDef).append("} ");
+        sb.append("appId={").append(appId).append("} ");
+
+        sb.append("policyEvaluators={");
+        if (policyEvaluators != null) {
+            for (RangerPolicyEvaluator policyEvaluator : policyEvaluators) {
+                if (policyEvaluator != null) {
+                    sb.append(policyEvaluator).append(" ");
+                }
+            }
+        }
+        sb.append("} ");
+
+        sb.append("dataMaskPolicyEvaluators={");
+        if (this.dataMaskPolicyEvaluators != null) {
+            for (RangerPolicyEvaluator policyEvaluator : dataMaskPolicyEvaluators) {
+                if (policyEvaluator != null) {
+                    sb.append(policyEvaluator).append(" ");
+                }
+            }
+        }
+        sb.append("} ");
+
+        sb.append("rowFilterPolicyEvaluators={");
+        if (this.rowFilterPolicyEvaluators != null) {
+            for (RangerPolicyEvaluator policyEvaluator : rowFilterPolicyEvaluators) {
+                if (policyEvaluator != null) {
+                    sb.append(policyEvaluator).append(" ");
+                }
+            }
+        }
+        sb.append("} ");
+
+        sb.append("contextEnrichers={");
+        if (contextEnrichers != null) {
+            for (RangerContextEnricher contextEnricher : contextEnrichers) {
+                if (contextEnricher != null) {
+                    sb.append(contextEnricher).append(" ");
+                }
+            }
+        }
+        sb.append("} ");
+
+        sb.append("} ");
+
+        return sb;
+    }
+
     List<RangerContextEnricher> shareWith(RangerPolicyRepository other) {
         if (other != null && other.contextEnrichers != null) {
             other.setShared();
@@ -1383,62 +1447,4 @@
 
         return ret;
     }
-
-    private StringBuilder toString(StringBuilder sb) {
-
-        sb.append("RangerPolicyRepository={");
-
-        sb.append("serviceName={").append(serviceName).append("} ");
-        sb.append("zoneName={").append(zoneName).append("} ");
-        sb.append("serviceDef={").append(serviceDef).append("} ");
-        sb.append("appId={").append(appId).append("} ");
-
-        sb.append("policyEvaluators={");
-        if (policyEvaluators != null) {
-            for (RangerPolicyEvaluator policyEvaluator : policyEvaluators) {
-                if (policyEvaluator != null) {
-                    sb.append(policyEvaluator).append(" ");
-                }
-            }
-        }
-        sb.append("} ");
-
-        sb.append("dataMaskPolicyEvaluators={");
-
-        if (this.dataMaskPolicyEvaluators != null) {
-            for (RangerPolicyEvaluator policyEvaluator : dataMaskPolicyEvaluators) {
-                if (policyEvaluator != null) {
-                    sb.append(policyEvaluator).append(" ");
-                }
-            }
-        }
-        sb.append("} ");
-
-        sb.append("rowFilterPolicyEvaluators={");
-
-        if (this.rowFilterPolicyEvaluators != null) {
-            for (RangerPolicyEvaluator policyEvaluator : rowFilterPolicyEvaluators) {
-                if (policyEvaluator != null) {
-                    sb.append(policyEvaluator).append(" ");
-                }
-            }
-        }
-        sb.append("} ");
-
-        sb.append("contextEnrichers={");
-
-        if (contextEnrichers != null) {
-            for (RangerContextEnricher contextEnricher : contextEnrichers) {
-                if (contextEnricher != null) {
-                    sb.append(contextEnricher).append(" ");
-                }
-            }
-        }
-        sb.append("} ");
-
-        sb.append("} ");
-
-        return sb;
-    }
-
 }
diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/policyevaluator/RangerAbstractPolicyEvaluator.java b/agents-common/src/main/java/org/apache/ranger/plugin/policyevaluator/RangerAbstractPolicyEvaluator.java
index 11c1eeb..99ae598 100644
--- a/agents-common/src/main/java/org/apache/ranger/plugin/policyevaluator/RangerAbstractPolicyEvaluator.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/policyevaluator/RangerAbstractPolicyEvaluator.java
@@ -26,6 +26,7 @@
 import org.apache.commons.logging.LogFactory;
 import org.apache.ranger.plugin.model.RangerPolicy;
 import org.apache.ranger.plugin.model.RangerServiceDef;
+import org.apache.ranger.plugin.model.RangerServiceDef.RangerResourceDef;
 import org.apache.ranger.plugin.policyengine.RangerAccessRequest;
 import org.apache.ranger.plugin.policyengine.RangerPluginContext;
 import org.apache.ranger.plugin.policyengine.RangerPolicyEngineOptions;
@@ -36,10 +37,10 @@
 public abstract class RangerAbstractPolicyEvaluator implements RangerPolicyEvaluator {
 	private static final Log LOG = LogFactory.getLog(RangerAbstractPolicyEvaluator.class);
 
-	private RangerPolicy     policy;
-	private RangerServiceDef serviceDef;
-	private RangerServiceDef.RangerResourceDef leafResourceDef;
-	private int              evalOrder;
+	private   RangerPolicy        policy;
+	private   RangerServiceDef    serviceDef;
+	private   RangerResourceDef   leafResourceDef;
+	private   int                 evalOrder;
 	protected RangerPluginContext pluginContext = null;
 
 
@@ -53,9 +54,9 @@
 			LOG.debug("==> RangerAbstractPolicyEvaluator.init(" + policy + ", " + serviceDef + ")");
 		}
 
-		this.policy            = policy;
-		this.serviceDef        = serviceDef;
-		this.leafResourceDef   = ServiceDefUtil.getLeafResourceDef(serviceDef, getPolicyResource());
+		this.policy          = policy;
+		this.serviceDef      = serviceDef;
+		this.leafResourceDef = ServiceDefUtil.getLeafResourceDef(serviceDef, getPolicyResource());
 
 		if(LOG.isDebugEnabled()) {
 			LOG.debug("<== RangerAbstractPolicyEvaluator.init(" + policy + ", " + serviceDef + ")");
@@ -88,7 +89,7 @@
 	}
 
 	@Override
-	public boolean isAncestorOf(RangerServiceDef.RangerResourceDef resourceDef) {
+	public boolean isAncestorOf(RangerResourceDef resourceDef) {
 		return ServiceDefUtil.isAncestorOf(serviceDef, leafResourceDef, resourceDef);
 	}
 
@@ -132,8 +133,11 @@
 	public StringBuilder toString(StringBuilder sb) {
 		sb.append("RangerAbstractPolicyEvaluator={");
 
-		sb.append("policy={").append(policy).append("} ");
-		sb.append("serviceDef={").append(serviceDef).append("} ");
+		sb.append("policy={");
+		if (policy != null) {
+			policy.toString(sb);
+		}
+		sb.append("} ");
 
 		sb.append("}");
 
diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/service/RangerAuthContext.java b/agents-common/src/main/java/org/apache/ranger/plugin/service/RangerAuthContext.java
index b9dff76..eed6432 100644
--- a/agents-common/src/main/java/org/apache/ranger/plugin/service/RangerAuthContext.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/service/RangerAuthContext.java
@@ -36,7 +36,6 @@
 import java.util.concurrent.ConcurrentHashMap;
 
 public class RangerAuthContext {
-
     private final Map<RangerContextEnricher, Object> requestContextEnrichers;
     private       RangerRolesUtil                    rangerRolesUtil;
 
@@ -44,6 +43,12 @@
         this.requestContextEnrichers = requestContextEnrichers != null ? requestContextEnrichers : new ConcurrentHashMap<>();
     }
 
+    public RangerAuthContext(Map<RangerContextEnricher, Object> requestContextEnrichers, RangerRoles roles) {
+        this.requestContextEnrichers = requestContextEnrichers != null ? requestContextEnrichers : new ConcurrentHashMap<>();
+
+        setRangerRoles(roles);
+    }
+
     public Map<RangerContextEnricher, Object> getRequestContextEnrichers() {
         return requestContextEnrichers;
     }
@@ -63,15 +68,14 @@
     }
 
     public Set<String> getRolesForUserAndGroups(String user, Set<String> groups) {
-        RangerRolesUtil rangerRolesUtil = this.rangerRolesUtil;
-
+        RangerRolesUtil          rangerRolesUtil  = this.rangerRolesUtil;
         Map<String, Set<String>> userRoleMapping  = rangerRolesUtil.getUserRoleMapping();
         Map<String, Set<String>> groupRoleMapping = rangerRolesUtil.getGroupRoleMapping();
-
-        Set<String> allRoles = new HashSet<>();
+        Set<String>              allRoles         = new HashSet<>();
 
         if (MapUtils.isNotEmpty(userRoleMapping) && StringUtils.isNotEmpty(user)) {
             Set<String> userRoles = userRoleMapping.get(user);
+
             if (CollectionUtils.isNotEmpty(userRoles)) {
                 allRoles.addAll(userRoles);
             }
@@ -81,12 +85,15 @@
             if (CollectionUtils.isNotEmpty(groups)) {
                 for (String group : groups) {
                     Set<String> groupRoles = groupRoleMapping.get(group);
+
                     if (CollectionUtils.isNotEmpty(groupRoles)) {
                         allRoles.addAll(groupRoles);
                     }
                 }
             }
+
             Set<String> publicGroupRoles = groupRoleMapping.get(RangerPolicyEngine.GROUP_PUBLIC);
+
             if (CollectionUtils.isNotEmpty(publicGroupRoles)) {
                 allRoles.addAll(publicGroupRoles);
             }
@@ -101,8 +108,10 @@
     public RangerResourceACLs getResourceACLs(RangerAccessRequest request) {
         // Invoke getResourceACLs on the first service in this plugin
         Collection<RangerBasePlugin> plugins = RangerBasePlugin.getServicePluginMap().values();
+
         if (plugins.size() > 0) {
             RangerBasePlugin[] array = plugins.toArray(new RangerBasePlugin[0]);
+
             return array[0].getResourceACLs(request);
         } else {
             return null;
diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/service/RangerBasePlugin.java b/agents-common/src/main/java/org/apache/ranger/plugin/service/RangerBasePlugin.java
index a0808f9..186cf19 100644
--- a/agents-common/src/main/java/org/apache/ranger/plugin/service/RangerBasePlugin.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/service/RangerBasePlugin.java
@@ -65,30 +65,28 @@
 
 	private static Map<String, RangerBasePlugin> servicePluginMap = new ConcurrentHashMap<>();
 
-	private final String              serviceType;
-	private final String              appId;
-	private final RangerPluginConfig  config;
-	private String                    serviceName;
-	private String                    clusterName;
-	private PolicyRefresher           refresher;
-	private RangerPolicyEngine        policyEngine;
-	private RangerPolicyEngineOptions policyEngineOptions = new RangerPolicyEngineOptions();
-	private RangerPluginContext       rangerPluginContext;
-	private RangerAuthContext         currentAuthContext;
-	private RangerAccessResultProcessor resultProcessor;
-	private boolean                   useForwardedIPAddress;
-	private String[]                  trustedProxyAddresses;
-	private Timer                     policyDownloadTimer;
-	private Timer                     policyEngineRefreshTimer;
-	private RangerAuthContextListener authContextListener;
-	private AuditProviderFactory      auditProviderFactory;
-	private RangerRoles               rangerRoles;
-
+	private final String                         serviceType;
+	private final String                         appId;
+	private final RangerPluginConfig             config;
+	private final RangerPolicyEngineOptions      policyEngineOptions = new RangerPolicyEngineOptions();
 	private final BlockingQueue<DownloadTrigger> policyDownloadQueue = new LinkedBlockingQueue<>();
 	private final DownloadTrigger                accessTrigger       = new DownloadTrigger();
-
-	Map<String, LogHistory> logHistoryList = new Hashtable<String, RangerBasePlugin.LogHistory>();
-	int                     logInterval    = 30000; // 30 seconds
+	private final Map<String, LogHistory>        logHistoryList      = new Hashtable<String, RangerBasePlugin.LogHistory>();
+	private final int                            logInterval         = 30000; // 30 seconds
+	private       String                         serviceName;
+	private       String                         clusterName;
+	private       PolicyRefresher                refresher;
+	private       RangerPolicyEngine             policyEngine;
+	private       RangerPluginContext            rangerPluginContext;
+	private       RangerAuthContext              currentAuthContext;
+	private       RangerAccessResultProcessor    resultProcessor;
+	private       boolean                        useForwardedIPAddress;
+	private       String[]                       trustedProxyAddresses;
+	private       Timer                          policyDownloadTimer;
+	private       Timer                          policyEngineRefreshTimer;
+	private       RangerAuthContextListener      authContextListener;
+	private       AuditProviderFactory           auditProviderFactory;
+	private       RangerRoles                    rangerRoles;
 
 	public static Map<String, RangerBasePlugin> getServicePluginMap() {
 		return servicePluginMap;
diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/util/RangerRolesUtil.java b/agents-common/src/main/java/org/apache/ranger/plugin/util/RangerRolesUtil.java
index 81c278a..aa2cda6 100644
--- a/agents-common/src/main/java/org/apache/ranger/plugin/util/RangerRolesUtil.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/util/RangerRolesUtil.java
@@ -30,26 +30,18 @@
 import java.util.Set;
 
 public class RangerRolesUtil {
-
-    private final long               roleVersion;
-    private Map<String, Set<String>> userRoleMapping = new HashMap<>();
-    private Map<String, Set<String>> groupRoleMapping = new HashMap<>();
-
-    public long                     getRoleVersion() { return roleVersion; }
-    public Map<String, Set<String>> getUserRoleMapping() {
-        return this.userRoleMapping;
-    }
-
-    public Map<String, Set<String>> getGroupRoleMapping() {
-        return this.groupRoleMapping;
-    }
+    private final long                     roleVersion;
+    private final Map<String, Set<String>> userRoleMapping = new HashMap<>();
+    private final Map<String, Set<String>> groupRoleMapping = new HashMap<>();
 
     public RangerRolesUtil(RangerRoles rangerRoles) {
         if (rangerRoles != null) {
             roleVersion = rangerRoles.getRoleVersion();
+
             if (CollectionUtils.isNotEmpty(rangerRoles.getRangerRoles())) {
                 for (RangerRole role : rangerRoles.getRangerRoles()) {
                     Set<RangerRole> containedRoles = getAllContainedRoles(rangerRoles.getRangerRoles(), role);
+
                     buildMap(userRoleMapping, role, containedRoles, true);
                     buildMap(groupRoleMapping, role, containedRoles, false);
                 }
@@ -59,17 +51,31 @@
         }
     }
 
+    public long getRoleVersion() { return roleVersion; }
+
+    public Map<String, Set<String>> getUserRoleMapping() {
+        return this.userRoleMapping;
+    }
+
+    public Map<String, Set<String>> getGroupRoleMapping() {
+        return this.groupRoleMapping;
+    }
+
     private Set<RangerRole> getAllContainedRoles(Set<RangerRole> rangerRoles, RangerRole role) {
         Set<RangerRole> allRoles = new HashSet<>();
+
         allRoles.add(role);
         addContainedRoles(allRoles, rangerRoles, role);
+
         return allRoles;
     }
 
     private void addContainedRoles(Set<RangerRole> allRoles, Set<RangerRole> rangerRoles, RangerRole role) {
         List<RangerRole.RoleMember> roleMembers = role.getRoles();
+
         for (RangerRole.RoleMember roleMember : roleMembers) {
             RangerRole containedRole = getContainedRole(rangerRoles, roleMember.getName());
+
             if (containedRole!= null && !allRoles.contains(containedRole)) {
                 allRoles.add(containedRole);
                 addContainedRoles(allRoles, rangerRoles, containedRole);
@@ -79,6 +85,7 @@
 
     private void buildMap(Map<String, Set<String>> map, RangerRole role, Set<RangerRole> containedRoles, boolean isUser) {
         buildMap(map, role, role.getName(), isUser);
+
         for (RangerRole containedRole : containedRoles) {
             buildMap(map, containedRole, role.getName(), isUser);
         }
@@ -88,10 +95,13 @@
         for (RangerRole.RoleMember userOrGroup : isUser ? role.getUsers() : role.getGroups()) {
             if (StringUtils.isNotEmpty(userOrGroup.getName())) {
                 Set<String> roleNames = map.get(userOrGroup.getName());
+
                 if (roleNames == null) {
                     roleNames = new HashSet<>();
+
                     map.put(userOrGroup.getName(), roleNames);
                 }
+
                 roleNames.add(roleName);
             }
         }
diff --git a/agents-common/src/test/java/org/apache/ranger/plugin/policyengine/TestPolicyACLs.java b/agents-common/src/test/java/org/apache/ranger/plugin/policyengine/TestPolicyACLs.java
index bfe767e..1109bdd 100644
--- a/agents-common/src/test/java/org/apache/ranger/plugin/policyengine/TestPolicyACLs.java
+++ b/agents-common/src/test/java/org/apache/ranger/plugin/policyengine/TestPolicyACLs.java
@@ -91,8 +91,8 @@
 
 		for(PolicyACLsTests.TestCase testCase : testCases.testCases) {
 			RangerPolicyEngineOptions policyEngineOptions = new RangerPolicyEngineOptions();
-			RangerPluginContext pluginContext = new RangerPluginContext("hive", "cl1", "on-prem");
-			RangerPolicyEngine policyEngine = new RangerPolicyEngineImpl("test-policy-acls", testCase.servicePolicies, policyEngineOptions, pluginContext, null);
+			RangerPluginContext       pluginContext       = new RangerPluginContext("hive", "cl1", "on-prem");
+			RangerPolicyEngine        policyEngine        = new RangerPolicyEngineImpl("test-policy-acls", testCase.servicePolicies, policyEngineOptions, pluginContext, null);
 
 			for(PolicyACLsTests.TestCase.OneTest oneTest : testCase.tests) {
 				if(oneTest == null) {
diff --git a/security-admin/src/main/java/org/apache/ranger/biz/RangerPolicyEngineCache.java b/security-admin/src/main/java/org/apache/ranger/biz/RangerPolicyAdminCache.java
similarity index 74%
rename from security-admin/src/main/java/org/apache/ranger/biz/RangerPolicyEngineCache.java
rename to security-admin/src/main/java/org/apache/ranger/biz/RangerPolicyAdminCache.java
index a86f003..5cbb1b2 100644
--- a/security-admin/src/main/java/org/apache/ranger/biz/RangerPolicyEngineCache.java
+++ b/security-admin/src/main/java/org/apache/ranger/biz/RangerPolicyAdminCache.java
@@ -42,31 +42,32 @@
 import org.apache.ranger.plugin.util.RangerRoles;
 import org.apache.ranger.plugin.util.ServicePolicies;
 
-public class RangerPolicyEngineCache {
-	private static final Log LOG = LogFactory.getLog(RangerPolicyEngineCache.class);
+public class RangerPolicyAdminCache {
+	private static final Log LOG = LogFactory.getLog(RangerPolicyAdminCache.class);
 
-	private final Map<String, RangerPolicyAdmin> policyEngineCache = Collections.synchronizedMap(new HashMap<>());
+	private final Map<String, RangerPolicyAdmin> policyAdminCache = Collections.synchronizedMap(new HashMap<>());
 
 	final RangerPolicyAdmin getServicePoliciesAdmin(String serviceName, ServiceStore svcStore, RoleStore roleStore, SecurityZoneStore zoneStore, RangerPolicyEngineOptions options) {
 		RangerPolicyAdmin ret = null;
 
 		if (serviceName == null || svcStore == null || roleStore == null || zoneStore == null) {
-			LOG.warn("Cannot get policy-engine for null serviceName or serviceStore or roleStore or zoneStore");
+			LOG.warn("Cannot get policy-admin for null serviceName or serviceStore or roleStore or zoneStore");
+
 			return ret;
 		}
 
-		ret = policyEngineCache.get(serviceName);
+		ret = policyAdminCache.get(serviceName);
 
-		long policyVersion;
-		long roleVersion;
+		long        policyVersion;
+		long        roleVersion;
 		RangerRoles rangerRoles;
-		boolean isRolesUpdated = true;
+		boolean     isRolesUpdated = true;
 
 		try {
 			if (ret == null) {
 				policyVersion = -1L;
-				roleVersion = -1L;
-				rangerRoles = roleStore.getRangerRoles(serviceName, roleVersion);
+				roleVersion   = -1L;
+				rangerRoles   = roleStore.getRangerRoles(serviceName, roleVersion);
 
 				if (rangerRoles == null) {
 					if (LOG.isDebugEnabled()) {
@@ -75,102 +76,105 @@
 				}
 			} else {
 				policyVersion = ret.getPolicyVersion();
-				roleVersion = ret.getRoleVersion();
-				rangerRoles = roleStore.getRangerRoles(serviceName, roleVersion);
+				roleVersion   = ret.getRoleVersion();
+				rangerRoles   = roleStore.getRangerRoles(serviceName, roleVersion);
 
 				if (rangerRoles == null) { // No changes to roles
-					rangerRoles = roleStore.getRangerRoles(serviceName, -1L);
+					rangerRoles    = roleStore.getRangerRoles(serviceName, -1L);
 					isRolesUpdated = false;
 				}
 			}
+
 			ServicePolicies policies = svcStore.getServicePoliciesIfUpdated(serviceName, policyVersion, false);
 
 			if (policies != null) {
 				if (policies.getPolicyVersion() != null && !policies.getPolicyVersion().equals(policyVersion)) {
 					ServicePolicies updatedServicePolicies = getUpdatedServicePolicies(serviceName, policies, svcStore, zoneStore);
 
-					ret = addOrUpdatePolicyEngine(ret, updatedServicePolicies, rangerRoles, options);
+					ret = addOrUpdatePolicyAdmin(ret, updatedServicePolicies, rangerRoles, options);
 				} else {
-					LOG.error("policies object is null or its version is null for getPolicyEngine(" + serviceName + ") !!");
-					LOG.error("Returning old policy engine");
+					LOG.error("policies object is null or its version is null for getPolicyAdmin(" + serviceName + ") !!");
+					LOG.error("Returning old policy admin");
 				}
 			} else {
 				if (ret == null) {
-					LOG.error("getPolicyEngine(" + serviceName + "): failed to get any policies from service-store");
+					LOG.error("getPolicyAdmin(" + serviceName + "): failed to get any policies from service-store");
 				} else {
 					if (isRolesUpdated) {
 						ret.setRangerRoles(rangerRoles);
 					}
 				}
 			}
-
 		} catch (Exception excp) {
-			LOG.error("getPolicyEngine(" + serviceName + "): failed to get latest policies from service-store", excp);
+			LOG.error("getPolicyAdmin(" + serviceName + "): failed to get latest policies from service-store", excp);
 		}
 
 		return ret;
 	}
 
-	private RangerPolicyAdmin addOrUpdatePolicyEngine(RangerPolicyAdmin policyEngine, ServicePolicies policies, RangerRoles rangerRoles, RangerPolicyEngineOptions options) {
+	private RangerPolicyAdmin addOrUpdatePolicyAdmin(RangerPolicyAdmin policyAdmin, ServicePolicies policies, RangerRoles rangerRoles, RangerPolicyEngineOptions options) {
 		final RangerPolicyAdmin ret;
-
-		RangerPolicyAdminImpl oldPolicyEngine = (RangerPolicyAdminImpl) policyEngine;
+		RangerPolicyAdminImpl   oldPolicyAdmin = (RangerPolicyAdminImpl) policyAdmin;
 
 		synchronized(this) {
-			if (oldPolicyEngine == null || CollectionUtils.isEmpty(policies.getPolicyDeltas())) {
-				ret = addPolicyEngine(policies, rangerRoles, options);
+			if (oldPolicyAdmin == null || CollectionUtils.isEmpty(policies.getPolicyDeltas())) {
+				ret = addPolicyAdmin(policies, rangerRoles, options);
 			} else {
-				RangerPolicyAdmin updatedEngine = RangerPolicyAdminImpl.getPolicyEngine(oldPolicyEngine, policies);
+				RangerPolicyAdmin updatedPolicyAdmin = RangerPolicyAdminImpl.getPolicyAdmin(oldPolicyAdmin, policies);
 
-				if (updatedEngine != null) {
-					updatedEngine.setRangerRoles(rangerRoles);
-					policyEngineCache.put(policies.getServiceName(), updatedEngine);
+				if (updatedPolicyAdmin != null) {
+					updatedPolicyAdmin.setRangerRoles(rangerRoles);
+					policyAdminCache.put(policies.getServiceName(), updatedPolicyAdmin);
 
-					ret = updatedEngine;
+					ret = updatedPolicyAdmin;
 				} else {
-					ret = addPolicyEngine(policies, rangerRoles, options);
+					ret = addPolicyAdmin(policies, rangerRoles, options);
 				}
 			}
-			if (oldPolicyEngine != null) {
-				oldPolicyEngine.releaseResources();
+
+			if (oldPolicyAdmin != null) {
+				oldPolicyAdmin.releaseResources();
 			}
 		}
 
 		return ret;
 	}
 
-	private RangerPolicyAdmin addPolicyEngine(ServicePolicies policies, RangerRoles rangerRoles, RangerPolicyEngineOptions options) {
-		RangerServiceDef serviceDef = policies.getServiceDef();
-		String serviceType = (serviceDef != null) ? serviceDef.getName() : "";
-
+	private RangerPolicyAdmin addPolicyAdmin(ServicePolicies policies, RangerRoles rangerRoles, RangerPolicyEngineOptions options) {
+		RangerServiceDef    serviceDef          = policies.getServiceDef();
+		String              serviceType         = (serviceDef != null) ? serviceDef.getName() : "";
 		RangerPluginContext rangerPluginContext = new RangerPluginContext(serviceType);
-		RangerPolicyAdmin ret = new RangerPolicyAdminImpl("ranger-admin", policies, options, rangerPluginContext, rangerRoles);
+		RangerPolicyAdmin   ret                 = new RangerPolicyAdminImpl("ranger-admin", policies, options, rangerPluginContext, rangerRoles);
 
-		policyEngineCache.put(policies.getServiceName(), ret);
+		policyAdminCache.put(policies.getServiceName(), ret);
 
 		return ret;
 	}
 
 	private ServicePolicies getUpdatedServicePolicies(String serviceName, ServicePolicies policies, ServiceStore svcStore, SecurityZoneStore zoneStore) throws  Exception{
 		ServicePolicies ret = policies;
+
 		if (ret == null) {
 			ret = svcStore.getServicePoliciesIfUpdated(serviceName, -1L, false);
 		}
+
 		if (zoneStore != null) {
 			Map<String, RangerSecurityZone.RangerSecurityZoneService> securityZones = zoneStore.getSecurityZonesForService(serviceName);
+
 			if (MapUtils.isNotEmpty(securityZones)) {
 				ret = getUpdatedServicePoliciesForZones(ret, securityZones);
 			}
 		}
+
 		return ret;
 	}
 
 	public static ServicePolicies getUpdatedServicePoliciesForZones(ServicePolicies servicePolicies, Map<String, RangerSecurityZone.RangerSecurityZoneService> securityZones) {
-
 		final ServicePolicies ret;
 
 		if (MapUtils.isNotEmpty(securityZones)) {
 			ret = new ServicePolicies();
+
 			ret.setServiceDef(servicePolicies.getServiceDef());
 			ret.setServiceId(servicePolicies.getServiceId());
 			ret.setServiceName(servicePolicies.getServiceName());
@@ -181,11 +185,9 @@
 			Map<String, ServicePolicies.SecurityZoneInfo> securityZonesInfo = new HashMap<>();
 
 			if (CollectionUtils.isEmpty(servicePolicies.getPolicyDeltas())) {
-
 				List<RangerPolicy> allPolicies = new ArrayList<>(servicePolicies.getPolicies());
 
 				for (Map.Entry<String, RangerSecurityZone.RangerSecurityZoneService> entry : securityZones.entrySet()) {
-
 					List<RangerPolicy> zonePolicies = extractZonePolicies(allPolicies, entry.getKey());
 
 					if (CollectionUtils.isNotEmpty(zonePolicies)) {
@@ -193,12 +195,11 @@
 					}
 
 					ServicePolicies.SecurityZoneInfo securityZoneInfo = new ServicePolicies.SecurityZoneInfo();
+
 					securityZoneInfo.setZoneName(entry.getKey());
 					securityZoneInfo.setPolicies(zonePolicies);
 					securityZoneInfo.setResources(entry.getValue().getResources());
-
 					securityZoneInfo.setContainsAssociatedTagService(false);
-
 					securityZonesInfo.put(entry.getKey(), securityZoneInfo);
 				}
 
@@ -208,7 +209,6 @@
 				List<RangerPolicyDelta> allPolicyDeltas = new ArrayList<>(servicePolicies.getPolicyDeltas());
 
 				for (Map.Entry<String, RangerSecurityZone.RangerSecurityZoneService> entry : securityZones.entrySet()) {
-
 					List<RangerPolicyDelta> zonePolicyDeltas = extractZonePolicyDeltas(allPolicyDeltas, entry.getKey());
 
 					if (CollectionUtils.isNotEmpty(zonePolicyDeltas)) {
@@ -216,17 +216,17 @@
 					}
 
 					ServicePolicies.SecurityZoneInfo securityZoneInfo = new ServicePolicies.SecurityZoneInfo();
+
 					securityZoneInfo.setZoneName(entry.getKey());
 					securityZoneInfo.setPolicyDeltas(zonePolicyDeltas);
 					securityZoneInfo.setResources(entry.getValue().getResources());
-
 					securityZoneInfo.setContainsAssociatedTagService(false);
-
 					securityZonesInfo.put(entry.getKey(), securityZoneInfo);
 				}
 
 				ret.setPolicyDeltas(allPolicyDeltas);
 			}
+
 			ret.setSecurityZones(securityZonesInfo);
 		} else {
 			ret = servicePolicies;
@@ -236,7 +236,6 @@
 	}
 
 	private static List<RangerPolicy> extractZonePolicies(final List<RangerPolicy> allPolicies, final String zoneName) {
-
 		final List<RangerPolicy> ret = new ArrayList<>();
 
 		for (RangerPolicy policy : allPolicies) {
@@ -249,7 +248,6 @@
 	}
 
 	private static List<RangerPolicyDelta> extractZonePolicyDeltas(final List<RangerPolicyDelta> allPolicyDeltas, final String zoneName) {
-
 		final List<RangerPolicyDelta> ret = new ArrayList<>();
 
 		for (RangerPolicyDelta delta : allPolicyDeltas) {
diff --git a/security-admin/src/main/java/org/apache/ranger/biz/RangerPolicyEngineCacheForEngineOptions.java b/security-admin/src/main/java/org/apache/ranger/biz/RangerPolicyAdminCacheForEngineOptions.java
similarity index 63%
rename from security-admin/src/main/java/org/apache/ranger/biz/RangerPolicyEngineCacheForEngineOptions.java
rename to security-admin/src/main/java/org/apache/ranger/biz/RangerPolicyAdminCacheForEngineOptions.java
index 151143a..b6a1862 100644
--- a/security-admin/src/main/java/org/apache/ranger/biz/RangerPolicyEngineCacheForEngineOptions.java
+++ b/security-admin/src/main/java/org/apache/ranger/biz/RangerPolicyAdminCacheForEngineOptions.java
@@ -28,23 +28,25 @@
 import java.util.HashMap;
 import java.util.Map;
 
-public class RangerPolicyEngineCacheForEngineOptions {
+public class RangerPolicyAdminCacheForEngineOptions {
+    private static volatile RangerPolicyAdminCacheForEngineOptions sInstance = null;
 
-    private static volatile RangerPolicyEngineCacheForEngineOptions sInstance = null;
+    private final Map<RangerPolicyEngineOptions, RangerPolicyAdminCache> policyAdminCacheForEngineOptions = Collections.synchronizedMap(new HashMap<>());
 
-    private final Map<RangerPolicyEngineOptions, RangerPolicyEngineCache> policyEngineCacheForEngineOptions = Collections.synchronizedMap(new HashMap<>());
+    public static RangerPolicyAdminCacheForEngineOptions getInstance() {
+        RangerPolicyAdminCacheForEngineOptions ret = sInstance;
 
-    public static RangerPolicyEngineCacheForEngineOptions getInstance() {
-        RangerPolicyEngineCacheForEngineOptions ret = sInstance;
         if (ret == null) {
-            synchronized (RangerPolicyEngineCacheForEngineOptions.class) {
+            synchronized (RangerPolicyAdminCacheForEngineOptions.class) {
                 ret = sInstance;
+
                 if (ret == null) {
-                    sInstance = new RangerPolicyEngineCacheForEngineOptions();
-                    ret = sInstance;
+                    sInstance = new RangerPolicyAdminCacheForEngineOptions();
+                    ret       = sInstance;
                 }
             }
         }
+
         return ret;
     }
 
@@ -53,16 +55,19 @@
     }
 
     public final RangerPolicyAdmin getServicePoliciesAdmin(String serviceName, ServiceStore svcStore, RoleStore roleStore, SecurityZoneStore zoneStore, RangerPolicyEngineOptions options) {
-        RangerPolicyEngineCache policyEngineCache;
+        RangerPolicyAdminCache policyAdminCache;
 
         synchronized (this) {
-            policyEngineCache = policyEngineCacheForEngineOptions.get(options);
-            if (policyEngineCache == null) {
-                policyEngineCache = new RangerPolicyEngineCache();
-                policyEngineCacheForEngineOptions.put(options, policyEngineCache);
+            policyAdminCache = policyAdminCacheForEngineOptions.get(options);
+
+            if (policyAdminCache == null) {
+                policyAdminCache = new RangerPolicyAdminCache();
+
+                policyAdminCacheForEngineOptions.put(options, policyAdminCache);
             }
         }
-        return policyEngineCache.getServicePoliciesAdmin(serviceName, svcStore, roleStore, zoneStore, options);
+
+        return policyAdminCache.getServicePoliciesAdmin(serviceName, svcStore, roleStore, zoneStore, options);
     }
 }
 
diff --git a/security-admin/src/main/java/org/apache/ranger/biz/RangerPolicyAdminImpl.java b/security-admin/src/main/java/org/apache/ranger/biz/RangerPolicyAdminImpl.java
index ac1d961..390187b 100644
--- a/security-admin/src/main/java/org/apache/ranger/biz/RangerPolicyAdminImpl.java
+++ b/security-admin/src/main/java/org/apache/ranger/biz/RangerPolicyAdminImpl.java
@@ -56,7 +56,7 @@
     private final PolicyEngine policyEngine;
     private final RangerAccessRequestProcessor requestProcessor;
 
-    static public RangerPolicyAdmin getPolicyEngine(final RangerPolicyAdminImpl other, final ServicePolicies servicePolicies) {
+    static public RangerPolicyAdmin getPolicyAdmin(final RangerPolicyAdminImpl other, final ServicePolicies servicePolicies) {
         RangerPolicyAdmin ret = null;
 
         if (other != null && servicePolicies != null) {
diff --git a/security-admin/src/main/java/org/apache/ranger/rest/ServiceREST.java b/security-admin/src/main/java/org/apache/ranger/rest/ServiceREST.java
index 43c109d..2a2aa22 100644
--- a/security-admin/src/main/java/org/apache/ranger/rest/ServiceREST.java
+++ b/security-admin/src/main/java/org/apache/ranger/rest/ServiceREST.java
@@ -108,8 +108,8 @@
 import org.apache.ranger.plugin.policyengine.RangerAccessResource;
 import org.apache.ranger.plugin.policyengine.RangerAccessResourceImpl;
 import org.apache.ranger.plugin.policyengine.RangerPolicyEngine;
-import org.apache.ranger.biz.RangerPolicyEngineCache;
-import org.apache.ranger.biz.RangerPolicyEngineCacheForEngineOptions;
+import org.apache.ranger.biz.RangerPolicyAdminCache;
+import org.apache.ranger.biz.RangerPolicyAdminCacheForEngineOptions;
 import org.apache.ranger.plugin.policyengine.RangerPolicyEngineOptions;
 import org.apache.ranger.plugin.service.ResourceLookupContext;
 import org.apache.ranger.plugin.store.EmbeddedServiceDefsUtil;
@@ -593,18 +593,18 @@
 				LOG.debug("getServicePolicies with service-name=" + service.getName());
 			}
 
-			RangerPolicyAdmin engine = null;
+			RangerPolicyAdmin policyAdmin = null;
 
 			try {
-				engine = getPolicySearchPolicyEngine(service.getName());
+				policyAdmin = getPolicyAdminForSearch(service.getName());
 			} catch (Exception e) {
 				LOG.error("Cannot initialize Policy-Engine", e);
 				throw restErrorUtil.createRESTException("Cannot initialize Policy Engine",
 						MessageEnums.ERROR_SYSTEM);
 			}
 
-			if (engine != null) {
-				ret = engine.getMatchingPolicies(new RangerAccessResourceImpl(resource));
+			if (policyAdmin != null) {
+				ret = policyAdmin.getMatchingPolicies(new RangerAccessResourceImpl(resource));
 			}
 
 		}
@@ -3086,7 +3086,7 @@
 					Map<String, RangerSecurityZone.RangerSecurityZoneService> securityZones = zoneStore.getSecurityZonesForService(serviceName);
 					ServicePolicies updatedServicePolicies = servicePolicies;
 					if (MapUtils.isNotEmpty(securityZones)) {
-						updatedServicePolicies = RangerPolicyEngineCache.getUpdatedServicePoliciesForZones(servicePolicies, securityZones);
+						updatedServicePolicies = RangerPolicyAdminCache.getUpdatedServicePoliciesForZones(servicePolicies, securityZones);
 						patchAssociatedTagServiceInSecurityZoneInfos(updatedServicePolicies);
 					}
 					downloadedVersion = updatedServicePolicies.getPolicyVersion();
@@ -3208,7 +3208,7 @@
 						Map<String, RangerSecurityZone.RangerSecurityZoneService> securityZones = zoneStore.getSecurityZonesForService(serviceName);
 						ServicePolicies updatedServicePolicies = servicePolicies;
 						if (MapUtils.isNotEmpty(securityZones)) {
-							updatedServicePolicies = RangerPolicyEngineCache.getUpdatedServicePoliciesForZones(servicePolicies, securityZones);
+							updatedServicePolicies = RangerPolicyAdminCache.getUpdatedServicePoliciesForZones(servicePolicies, securityZones);
 							patchAssociatedTagServiceInSecurityZoneInfos(updatedServicePolicies);
 						}
 						downloadedVersion = updatedServicePolicies.getPolicyVersion();
@@ -3290,10 +3290,9 @@
 			LOG.debug("==> ServiceREST.getExactMatchPolicyForResource(" + resource + ", " + user + ")");
 		}
 
-		RangerPolicy       ret          = null;
-		RangerPolicyAdmin policyEngine = getPolicyEngine(serviceName);
-
-		List<RangerPolicy> policies     = policyEngine != null ? policyEngine.getExactMatchPolicies(resource, null) : null;
+		RangerPolicy       ret         = null;
+		RangerPolicyAdmin  policyAdmin = getPolicyAdmin(serviceName);
+		List<RangerPolicy> policies    = policyAdmin != null ? policyAdmin.getExactMatchPolicies(resource, null) : null;
 
 		if(CollectionUtils.isNotEmpty(policies)) {
 			// at this point, ret is a policy in policy-engine; the caller might update the policy (for grant/revoke); so get a copy from the store
@@ -3312,10 +3311,9 @@
 			LOG.debug("==> ServiceREST.getExactMatchPolicyForResource(" + policy + ", " + user + ")");
 		}
 
-		RangerPolicy       ret          = null;
-		RangerPolicyAdmin policyEngine = getPolicyEngine(policy.getService());
-
-		List<RangerPolicy> policies     = policyEngine != null ? policyEngine.getExactMatchPolicies(policy, null) : null;
+		RangerPolicy       ret         = null;
+		RangerPolicyAdmin  policyAdmin = getPolicyAdmin(policy.getService());
+		List<RangerPolicy> policies    = policyAdmin != null ? policyAdmin.getExactMatchPolicies(policy, null) : null;
 
 		if(CollectionUtils.isNotEmpty(policies)) {
 			// at this point, ret is a policy in policy-engine; the caller might update the policy (for grant/revoke); so get a copy from the store
@@ -3599,16 +3597,16 @@
 						continue;
 					}
 
-					RangerPolicyAdmin policyEngine = getDelegatedAdminPolicyEngine(serviceName);
+					RangerPolicyAdmin policyAdmin = getPolicyAdminForDelegatedAdmin(serviceName);
 
-					if (policyEngine != null) {
+					if (policyAdmin != null) {
 						if(userGroups == null) {
 							userGroups = daoManager.getXXGroupUser().findGroupNamesByUserName(userName);
 						}
-						Set<String> roles = policyEngine.getRolesFromUserAndGroups(userName, userGroups);
+						Set<String> roles = policyAdmin.getRolesFromUserAndGroups(userName, userGroups);
 
 						for (RangerPolicy policy : listToFilter) {
-							if (policyEngine.isAccessAllowed(policy, userName, userGroups, roles, RangerPolicyEngine.ADMIN_ACCESS)
+							if (policyAdmin.isAccessAllowed(policy, userName, userGroups, roles, RangerPolicyEngine.ADMIN_ACCESS)
 									|| (!StringUtils.isEmpty(policy.getZoneName()) && (serviceMgr.isZoneAdmin(policy.getZoneName()) || serviceMgr.isZoneAuditor(policy.getZoneName())))
 									|| isServiceAdminUser) {
 								ret.add(policy);
@@ -3699,13 +3697,13 @@
 	}
 
 	private boolean hasAdminAccess(RangerPolicy policy, String userName, Set<String> userGroups) {
-		boolean isAllowed = false;
+		boolean           isAllowed   = false;
+		RangerPolicyAdmin policyAdmin = getPolicyAdminForDelegatedAdmin(policy.getService());
 
-		RangerPolicyAdmin policyEngine = getDelegatedAdminPolicyEngine(policy.getService());
+		if(policyAdmin != null) {
+			Set<String> roles = policyAdmin.getRolesFromUserAndGroups(userName, userGroups);
 
-		if(policyEngine != null) {
-			Set<String> roles = policyEngine.getRolesFromUserAndGroups(userName, userGroups);
-			isAllowed = policyEngine.isAccessAllowed(policy, userName, userGroups, roles, RangerPolicyEngine.ADMIN_ACCESS);
+			isAllowed = policyAdmin.isAccessAllowed(policy, userName, userGroups, roles, RangerPolicyEngine.ADMIN_ACCESS);
 		}
 
 		return isAllowed;
@@ -3713,25 +3711,25 @@
 	private boolean hasAdminAccess(String serviceName, String userName, Set<String> userGroups, RangerAccessResource resource) {
 		boolean isAllowed = false;
 
-		RangerPolicyAdmin policyEngine = getDelegatedAdminPolicyEngine(serviceName);
+		RangerPolicyAdmin policyAdmin = getPolicyAdminForDelegatedAdmin(serviceName);
 
-		if(policyEngine != null) {
-			isAllowed = policyEngine.isAccessAllowed(resource, userName, userGroups, RangerPolicyEngine.ADMIN_ACCESS);
+		if(policyAdmin != null) {
+			isAllowed = policyAdmin.isAccessAllowed(resource, userName, userGroups, RangerPolicyEngine.ADMIN_ACCESS);
 		}
 
 		return isAllowed;
 	}
 
-	public RangerPolicyAdmin getDelegatedAdminPolicyEngine(String serviceName) {
-		return RangerPolicyEngineCacheForEngineOptions.getInstance().getServicePoliciesAdmin(serviceName, svcStore, roleDBStore, delegateAdminOptions);
+	public RangerPolicyAdmin getPolicyAdminForDelegatedAdmin(String serviceName) {
+		return RangerPolicyAdminCacheForEngineOptions.getInstance().getServicePoliciesAdmin(serviceName, svcStore, roleDBStore, delegateAdminOptions);
 	}
 
-	private RangerPolicyAdmin getPolicySearchPolicyEngine(String serviceName) throws Exception {
-		return RangerPolicyEngineCacheForEngineOptions.getInstance().getServicePoliciesAdmin(serviceName, svcStore, roleDBStore, policySearchAdminOptions);
+	private RangerPolicyAdmin getPolicyAdminForSearch(String serviceName) {
+		return RangerPolicyAdminCacheForEngineOptions.getInstance().getServicePoliciesAdmin(serviceName, svcStore, roleDBStore, policySearchAdminOptions);
 	}
 
-	private RangerPolicyAdmin getPolicyEngine(String serviceName) throws Exception {
-		return RangerPolicyEngineCacheForEngineOptions.getInstance().getServicePoliciesAdmin(serviceName, svcStore, roleDBStore, defaultAdminOptions);
+	private RangerPolicyAdmin getPolicyAdmin(String serviceName) {
+		return RangerPolicyAdminCacheForEngineOptions.getInstance().getServicePoliciesAdmin(serviceName, svcStore, roleDBStore, defaultAdminOptions);
 	}
 
 	@GET
diff --git a/security-admin/src/test/java/org/apache/ranger/biz/TestPolicyDb.java b/security-admin/src/test/java/org/apache/ranger/biz/TestPolicyDb.java
index 5118322..9ac7f24 100644
--- a/security-admin/src/test/java/org/apache/ranger/biz/TestPolicyDb.java
+++ b/security-admin/src/test/java/org/apache/ranger/biz/TestPolicyDb.java
@@ -117,14 +117,15 @@
 		policyEngineOptions.cacheAuditResults       = false;
 		policyEngineOptions.disableContextEnrichers = true;
 		policyEngineOptions.disableCustomConditions = true;
+
 		RangerPluginContext pluginContext = new RangerPluginContext("hive", "cl1", "on-prem");
-		RangerPolicyAdmin policyEngine = new RangerPolicyAdminImpl("test-policydb", testCase.servicePolicies, policyEngineOptions, pluginContext, null);
+		RangerPolicyAdmin   policyAdmin   = new RangerPolicyAdminImpl("test-policydb", testCase.servicePolicies, policyEngineOptions, pluginContext, null);
 
 		for(TestData test : testCase.tests) {
 			boolean expected = test.result;
 
 			if(test.allowedPolicies != null) {
-				List<RangerPolicy> allowedPolicies = policyEngine.getAllowedUnzonedPolicies(test.user, test.userGroups, test.accessType);
+				List<RangerPolicy> allowedPolicies = policyAdmin.getAllowedUnzonedPolicies(test.user, test.userGroups, test.accessType);
 
 				assertEquals("allowed-policy count mismatch!", test.allowedPolicies.size(), allowedPolicies.size());
 				
@@ -134,7 +135,7 @@
 				}
 				assertEquals("allowed-policy list mismatch!", test.allowedPolicies, allowedPolicyIds);
 			} else {
-				boolean result = policyEngine.isAccessAllowedByUnzonedPolicies(test.resources, test.user, test.userGroups, test.accessType);
+				boolean result = policyAdmin.isAccessAllowedByUnzonedPolicies(test.resources, test.user, test.userGroups, test.accessType);
 
 				assertEquals("isAccessAllowed mismatched! - " + test.name, expected, result);
 			}
diff --git a/security-admin/src/test/java/org/apache/ranger/rest/TestServiceREST.java b/security-admin/src/test/java/org/apache/ranger/rest/TestServiceREST.java
index 75e93d9..b67656e 100644
--- a/security-admin/src/test/java/org/apache/ranger/rest/TestServiceREST.java
+++ b/security-admin/src/test/java/org/apache/ranger/rest/TestServiceREST.java
@@ -230,7 +230,7 @@
 	RangerPolicyEngineImpl rpImpl;
 	
 	@Mock
-    RangerPolicyAdmin policyEngine;
+    RangerPolicyAdmin policyAdmin;
 
 	@Mock
 	RangerTransactionService rangerTransactionService;
@@ -1093,7 +1093,7 @@
 		/*here we are setting serviceAdminRole, so we will get the required policy with serviceAdmi role*/
 		Mockito.when(daoManager.getXXGroupUser()).thenReturn(xGroupDao);
 		Mockito.when(svcStore.isServiceAdminUser(rPol.getService(), null)).thenReturn(true);
-		Mockito.doReturn(policyEngine).when(spySVCRest).getDelegatedAdminPolicyEngine("HDFS_1-1-20150316062453");
+		Mockito.doReturn(policyAdmin).when(spySVCRest).getPolicyAdminForDelegatedAdmin("HDFS_1-1-20150316062453");
 		RangerPolicyList dbRangerPolicy = spySVCRest.getPolicies(request);
 		Assert.assertNotNull(dbRangerPolicy);
 		Assert.assertEquals(dbRangerPolicy.getListSize(), 1);