You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by ab...@apache.org on 2017/06/02 18:27:50 UTC

ranger git commit: RANGER-1628: Good coding practice suggested by static code analysis

Repository: ranger
Updated Branches:
  refs/heads/master dae46059b -> f26bac88f


RANGER-1628: Good coding practice suggested by static code analysis


Project: http://git-wip-us.apache.org/repos/asf/ranger/repo
Commit: http://git-wip-us.apache.org/repos/asf/ranger/commit/f26bac88
Tree: http://git-wip-us.apache.org/repos/asf/ranger/tree/f26bac88
Diff: http://git-wip-us.apache.org/repos/asf/ranger/diff/f26bac88

Branch: refs/heads/master
Commit: f26bac88fdce0faa0309a7b13e93990af3838a47
Parents: dae4605
Author: Abhay Kulkarni <ak...@hortonworks.com>
Authored: Fri Jun 2 11:27:39 2017 -0700
Committer: Abhay Kulkarni <ak...@hortonworks.com>
Committed: Fri Jun 2 11:27:39 2017 -0700

----------------------------------------------------------------------
 .../RangerServiceResourceMatcher.java           |  5 +--
 .../policyengine/PolicyEvaluatorForTag.java     | 12 ++++---
 .../policyengine/RangerPolicyRepository.java    | 11 ++++---
 .../RangerAbstractPolicyEvaluator.java          | 33 --------------------
 .../RangerAbstractPolicyItemEvaluator.java      | 18 -----------
 .../RangerDefaultPolicyEvaluator.java           |  9 +++---
 .../policyevaluator/RangerPolicyEvaluator.java  | 19 +++++++++++
 .../RangerPolicyItemEvaluator.java              | 10 +++++-
 .../RangerPolicyResourceEvaluator.java          | 10 +++++-
 .../RangerAbstractResourceMatcher.java          |  2 +-
 .../RangerPathResourceMatcher.java              |  2 +-
 .../plugin/resourcematcher/ResourceMatcher.java | 13 +++++---
 .../ranger/plugin/util/RangerResourceTrie.java  |  7 +++--
 13 files changed, 72 insertions(+), 79 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ranger/blob/f26bac88/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerServiceResourceMatcher.java
----------------------------------------------------------------------
diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerServiceResourceMatcher.java b/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerServiceResourceMatcher.java
index 23dfe23..ecddf75 100644
--- a/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerServiceResourceMatcher.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/contextenricher/RangerServiceResourceMatcher.java
@@ -66,10 +66,7 @@ public class RangerServiceResourceMatcher implements RangerPolicyResourceEvaluat
 		return leafResourceLevel;
 	}
 
-	@Override
-	public int compareTo(RangerPolicyResourceEvaluator other) {
-		return Long.compare(getId(), other.getId());
-	}
+
 
 	public RangerPolicyResourceMatcher.MatchType getMatchType(RangerAccessResource requestedResource, Map<String, Object> evalContext) {
 		return policyResourceMatcher != null ?  policyResourceMatcher.getMatchType(requestedResource, evalContext) : RangerPolicyResourceMatcher.MatchType.NONE;

http://git-wip-us.apache.org/repos/asf/ranger/blob/f26bac88/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/PolicyEvaluatorForTag.java
----------------------------------------------------------------------
diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/PolicyEvaluatorForTag.java b/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/PolicyEvaluatorForTag.java
index 46f8cb0..b5f5146 100644
--- a/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/PolicyEvaluatorForTag.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/PolicyEvaluatorForTag.java
@@ -22,7 +22,9 @@ package org.apache.ranger.plugin.policyengine;
 import org.apache.ranger.plugin.contextenricher.RangerTagForEval;
 import org.apache.ranger.plugin.policyevaluator.RangerPolicyEvaluator;
 
-public class PolicyEvaluatorForTag implements Comparable<PolicyEvaluatorForTag> {
+import java.util.Comparator;
+
+public class PolicyEvaluatorForTag {
     private final RangerPolicyEvaluator evaluator;
     private final RangerTagForEval      tag;
 
@@ -39,8 +41,10 @@ public class PolicyEvaluatorForTag implements Comparable<PolicyEvaluatorForTag>
         return tag;
     }
 
-    @Override
-    public int compareTo(PolicyEvaluatorForTag other) {
-        return evaluator.getPolicy().getName().compareTo(other.evaluator.getPolicy().getName());
+    public static class PolicyNameComparator implements Comparator<PolicyEvaluatorForTag> {
+        @Override
+        public int compare(PolicyEvaluatorForTag me, PolicyEvaluatorForTag other) {
+            return me.getEvaluator().getPolicy().getName().compareTo(other.getEvaluator().getPolicy().getName());
+        }
     }
 }

http://git-wip-us.apache.org/repos/asf/ranger/blob/f26bac88/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/RangerPolicyRepository.java
----------------------------------------------------------------------
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 fc34da0..ded15fa 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
@@ -336,7 +336,7 @@ class RangerPolicyRepository {
             }
         }
         if (CollectionUtils.isNotEmpty(ret)) {
-            Collections.sort(ret);
+            Collections.sort(ret, new PolicyEvaluatorForTag.PolicyNameComparator());
         }
         return ret;
     }
@@ -563,13 +563,14 @@ class RangerPolicyRepository {
                 }
             }
         }
-        Collections.sort(policyEvaluators);
+        RangerPolicyEvaluator.PolicyEvalOrderComparator comparator = new RangerPolicyEvaluator.PolicyEvalOrderComparator();
+        Collections.sort(policyEvaluators, comparator);
         this.policyEvaluators = Collections.unmodifiableList(policyEvaluators);
 
-        Collections.sort(dataMaskPolicyEvaluators);
+        Collections.sort(dataMaskPolicyEvaluators, comparator);
         this.dataMaskPolicyEvaluators = Collections.unmodifiableList(dataMaskPolicyEvaluators);
 
-        Collections.sort(rowFilterPolicyEvaluators);
+        Collections.sort(rowFilterPolicyEvaluators, comparator);
         this.rowFilterPolicyEvaluators = Collections.unmodifiableList(rowFilterPolicyEvaluators);
 
         List<RangerContextEnricher> contextEnrichers = new ArrayList<RangerContextEnricher>();
@@ -823,7 +824,7 @@ class RangerPolicyRepository {
 
         if (CollectionUtils.isNotEmpty(evaluators)) {
             ret = new ArrayList<>(evaluators);
-            Collections.sort(ret);
+            Collections.sort(ret, new RangerPolicyEvaluator.PolicyEvalOrderComparator());
 
             ret = Collections.unmodifiableList(ret);
         }

http://git-wip-us.apache.org/repos/asf/ranger/blob/f26bac88/agents-common/src/main/java/org/apache/ranger/plugin/policyevaluator/RangerAbstractPolicyEvaluator.java
----------------------------------------------------------------------
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 80d0fd4..d218c73 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
@@ -28,7 +28,6 @@ import org.apache.ranger.plugin.model.RangerPolicy;
 import org.apache.ranger.plugin.model.RangerServiceDef;
 import org.apache.ranger.plugin.policyengine.RangerAccessRequest;
 import org.apache.ranger.plugin.policyengine.RangerPolicyEngineOptions;
-import org.apache.ranger.plugin.policyresourcematcher.RangerPolicyResourceEvaluator;
 import org.apache.ranger.plugin.util.ServiceDefUtil;
 
 import java.util.Map;
@@ -110,38 +109,6 @@ public abstract class RangerAbstractPolicyEvaluator implements RangerPolicyEvalu
 		return policy != null && policy.getIsAuditEnabled();
 	}
 
-	@Override
-	public int compareTo(RangerPolicyResourceEvaluator obj) {
-		if(LOG.isDebugEnabled()) {
-			LOG.debug("==> RangerAbstractPolicyEvaluator.compareTo()");
-		}
-
-		int result;
-
-		if(obj instanceof RangerPolicyEvaluator) {
-			RangerPolicyEvaluator other = (RangerPolicyEvaluator)obj;
-
-			if (hasDeny() && !other.hasDeny()) {
-				result = -1;
-			} else if (!hasDeny() && other.hasDeny()) {
-				result = 1;
-			} else {
-				result = Long.compare(other.getUsageCount(), this.usageCount);
-				if (result == 0) {
-					result = Integer.compare(this.evalOrder, other.getEvalOrder());
-				}
-			}
-		} else {
-			result = Long.compare(getId(), obj.getId());
-		}
-
-		if(LOG.isDebugEnabled()) {
-			LOG.debug("<== RangerAbstractPolicyEvaluator.compareTo(), result:" + result);
-		}
-
-		return result;
-	}
-
 	public void setEvalOrder(int evalOrder) {
 		this.evalOrder = evalOrder;
 	}

http://git-wip-us.apache.org/repos/asf/ranger/blob/f26bac88/agents-common/src/main/java/org/apache/ranger/plugin/policyevaluator/RangerAbstractPolicyItemEvaluator.java
----------------------------------------------------------------------
diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/policyevaluator/RangerAbstractPolicyItemEvaluator.java b/agents-common/src/main/java/org/apache/ranger/plugin/policyevaluator/RangerAbstractPolicyItemEvaluator.java
index 103c057..cd7c3c1 100644
--- a/agents-common/src/main/java/org/apache/ranger/plugin/policyevaluator/RangerAbstractPolicyItemEvaluator.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/policyevaluator/RangerAbstractPolicyItemEvaluator.java
@@ -23,8 +23,6 @@ import java.util.Collections;
 import java.util.List;
 
 import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 import org.apache.ranger.plugin.conditionevaluator.RangerConditionEvaluator;
 import org.apache.ranger.plugin.model.RangerPolicy;
 import org.apache.ranger.plugin.model.RangerPolicy.RangerPolicyItem;
@@ -34,7 +32,6 @@ import org.apache.ranger.plugin.policyengine.RangerPolicyEngineOptions;
 
 
 public abstract class RangerAbstractPolicyItemEvaluator implements RangerPolicyItemEvaluator {
-	private static final Log LOG = LogFactory.getLog(RangerAbstractPolicyItemEvaluator.class);
 
 	private static final int RANGER_POLICY_ITEM_EVAL_ORDER_DEFAULT = 1000;
 
@@ -93,21 +90,6 @@ public abstract class RangerAbstractPolicyItemEvaluator implements RangerPolicyI
 		return null;
 	}
 
-	@Override
-	public int compareTo(RangerPolicyItemEvaluator other) {
-		if(LOG.isDebugEnabled()) {
-			LOG.debug("==> RangerAbstractPolicyItemEvaluator.compareTo()");
-		}
-
-		int result = Integer.compare(getEvalOrder(), other.getEvalOrder());
-
-		if(LOG.isDebugEnabled()) {
-			LOG.debug("<== RangerAbstractPolicyItemEvaluator.compareTo(), result:" + result);
-		}
-
-		return result;
-	}
-
 	protected String getServiceType() {
 		return serviceDef != null ? serviceDef.getName() : null;
 	}

http://git-wip-us.apache.org/repos/asf/ranger/blob/f26bac88/agents-common/src/main/java/org/apache/ranger/plugin/policyevaluator/RangerDefaultPolicyEvaluator.java
----------------------------------------------------------------------
diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/policyevaluator/RangerDefaultPolicyEvaluator.java b/agents-common/src/main/java/org/apache/ranger/plugin/policyevaluator/RangerDefaultPolicyEvaluator.java
index 1340007..f5d7ad3 100644
--- a/agents-common/src/main/java/org/apache/ranger/plugin/policyevaluator/RangerDefaultPolicyEvaluator.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/policyevaluator/RangerDefaultPolicyEvaluator.java
@@ -135,10 +135,11 @@ public class RangerDefaultPolicyEvaluator extends RangerAbstractPolicyEvaluator
 			rowFilterEvaluators      = Collections.<RangerRowFilterPolicyItemEvaluator>emptyList();
 		}
 
-		Collections.sort(allowEvaluators);
-		Collections.sort(denyEvaluators);
-		Collections.sort(allowExceptionEvaluators);
-		Collections.sort(denyExceptionEvaluators);
+		RangerPolicyItemEvaluator.EvalOrderComparator comparator = new RangerPolicyItemEvaluator.EvalOrderComparator();
+		Collections.sort(allowEvaluators, comparator);
+		Collections.sort(denyEvaluators, comparator);
+		Collections.sort(allowExceptionEvaluators, comparator);
+		Collections.sort(denyExceptionEvaluators, comparator);
 
 		/* dataMask, rowFilter policyItems must be evaulated in the order given in the policy; hence no sort
 		Collections.sort(dataMaskEvaluators);

http://git-wip-us.apache.org/repos/asf/ranger/blob/f26bac88/agents-common/src/main/java/org/apache/ranger/plugin/policyevaluator/RangerPolicyEvaluator.java
----------------------------------------------------------------------
diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/policyevaluator/RangerPolicyEvaluator.java b/agents-common/src/main/java/org/apache/ranger/plugin/policyevaluator/RangerPolicyEvaluator.java
index 38072e1..3d000cc 100644
--- a/agents-common/src/main/java/org/apache/ranger/plugin/policyevaluator/RangerPolicyEvaluator.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/policyevaluator/RangerPolicyEvaluator.java
@@ -20,6 +20,7 @@
 package org.apache.ranger.plugin.policyevaluator;
 
 
+import java.util.Comparator;
 import java.util.Map;
 import java.util.Set;
 
@@ -83,4 +84,22 @@ public interface RangerPolicyEvaluator extends RangerPolicyResourceEvaluator {
 
 	void getResourceAccessInfo(RangerAccessRequest request, RangerResourceAccessInfo result);
 
+	class PolicyEvalOrderComparator implements Comparator<RangerPolicyEvaluator> {
+		@Override
+		public int compare(RangerPolicyEvaluator me, RangerPolicyEvaluator other) {
+			int result;
+
+			if (me.hasDeny() && !other.hasDeny()) {
+				result = -1;
+			} else if (!me.hasDeny() && other.hasDeny()) {
+				result = 1;
+			} else {
+				result = Long.compare(other.getUsageCount(), me.getUsageCount());
+				if (result == 0) {
+					result = Integer.compare(me.getEvalOrder(), other.getEvalOrder());
+				}
+			}
+			return result;
+		}
+	}
 }

http://git-wip-us.apache.org/repos/asf/ranger/blob/f26bac88/agents-common/src/main/java/org/apache/ranger/plugin/policyevaluator/RangerPolicyItemEvaluator.java
----------------------------------------------------------------------
diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/policyevaluator/RangerPolicyItemEvaluator.java b/agents-common/src/main/java/org/apache/ranger/plugin/policyevaluator/RangerPolicyItemEvaluator.java
index 2458e9d..492b3a2 100644
--- a/agents-common/src/main/java/org/apache/ranger/plugin/policyevaluator/RangerPolicyItemEvaluator.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/policyevaluator/RangerPolicyItemEvaluator.java
@@ -18,6 +18,7 @@
  */
 package org.apache.ranger.plugin.policyevaluator;
 
+import java.util.Comparator;
 import java.util.List;
 import java.util.Set;
 
@@ -25,7 +26,7 @@ import org.apache.ranger.plugin.conditionevaluator.RangerConditionEvaluator;
 import org.apache.ranger.plugin.model.RangerPolicy.RangerPolicyItem;
 import org.apache.ranger.plugin.policyengine.RangerAccessRequest;
 
-public interface RangerPolicyItemEvaluator extends Comparable<RangerPolicyItemEvaluator> {
+public interface RangerPolicyItemEvaluator {
 	int POLICY_ITEM_TYPE_ALLOW            = 0;
 	int POLICY_ITEM_TYPE_DENY             = 1;
 	int POLICY_ITEM_TYPE_ALLOW_EXCEPTIONS = 2;
@@ -54,4 +55,11 @@ public interface RangerPolicyItemEvaluator extends Comparable<RangerPolicyItemEv
 	boolean matchAccessType(String accessType);
 
 	boolean matchCustomConditions(RangerAccessRequest request);
+
+	class EvalOrderComparator implements Comparator<RangerPolicyItemEvaluator> {
+		@Override
+		public int compare(RangerPolicyItemEvaluator me, RangerPolicyItemEvaluator other) {
+			return Integer.compare(me.getEvalOrder(), other.getEvalOrder());
+		}
+	}
 }

http://git-wip-us.apache.org/repos/asf/ranger/blob/f26bac88/agents-common/src/main/java/org/apache/ranger/plugin/policyresourcematcher/RangerPolicyResourceEvaluator.java
----------------------------------------------------------------------
diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/policyresourcematcher/RangerPolicyResourceEvaluator.java b/agents-common/src/main/java/org/apache/ranger/plugin/policyresourcematcher/RangerPolicyResourceEvaluator.java
index eed58e1..900b2e7 100644
--- a/agents-common/src/main/java/org/apache/ranger/plugin/policyresourcematcher/RangerPolicyResourceEvaluator.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/policyresourcematcher/RangerPolicyResourceEvaluator.java
@@ -23,9 +23,10 @@ package org.apache.ranger.plugin.policyresourcematcher;
 import org.apache.ranger.plugin.model.RangerPolicy;
 import org.apache.ranger.plugin.resourcematcher.RangerResourceMatcher;
 
+import java.util.Comparator;
 import java.util.Map;
 
-public interface RangerPolicyResourceEvaluator extends Comparable<RangerPolicyResourceEvaluator>  {
+public interface RangerPolicyResourceEvaluator {
     long getId();
 
     RangerPolicyResourceMatcher getPolicyResourceMatcher();
@@ -35,4 +36,11 @@ public interface RangerPolicyResourceEvaluator extends Comparable<RangerPolicyRe
     RangerResourceMatcher getResourceMatcher(String resourceName);
 
     Integer getLeafResourceLevel();
+
+    class IdComparator implements Comparator<RangerPolicyResourceEvaluator> {
+        @Override
+        public int compare(RangerPolicyResourceEvaluator me, RangerPolicyResourceEvaluator other) {
+            return Long.compare(me.getId(), other.getId());
+        }
+    }
 }

http://git-wip-us.apache.org/repos/asf/ranger/blob/f26bac88/agents-common/src/main/java/org/apache/ranger/plugin/resourcematcher/RangerAbstractResourceMatcher.java
----------------------------------------------------------------------
diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/resourcematcher/RangerAbstractResourceMatcher.java b/agents-common/src/main/java/org/apache/ranger/plugin/resourcematcher/RangerAbstractResourceMatcher.java
index a53c8dc..34a8777 100644
--- a/agents-common/src/main/java/org/apache/ranger/plugin/resourcematcher/RangerAbstractResourceMatcher.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/resourcematcher/RangerAbstractResourceMatcher.java
@@ -185,7 +185,7 @@ public abstract class RangerAbstractResourceMatcher implements RangerResourceMat
 			}
 		}
 
-		Collections.sort(resourceMatchers);
+		Collections.sort(resourceMatchers, new ResourceMatcher.PriorityComparator());
 
 		return CollectionUtils.isNotEmpty(resourceMatchers) ?
 				new ResourceMatcherWrapper(needsDynamicEval, resourceMatchers) : null;

http://git-wip-us.apache.org/repos/asf/ranger/blob/f26bac88/agents-common/src/main/java/org/apache/ranger/plugin/resourcematcher/RangerPathResourceMatcher.java
----------------------------------------------------------------------
diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/resourcematcher/RangerPathResourceMatcher.java b/agents-common/src/main/java/org/apache/ranger/plugin/resourcematcher/RangerPathResourceMatcher.java
index 0a66994..2f2399c 100644
--- a/agents-common/src/main/java/org/apache/ranger/plugin/resourcematcher/RangerPathResourceMatcher.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/resourcematcher/RangerPathResourceMatcher.java
@@ -88,7 +88,7 @@ public class RangerPathResourceMatcher extends RangerDefaultResourceMatcher {
 			}
 		}
 
-		Collections.sort(resourceMatchers);
+		Collections.sort(resourceMatchers, new ResourceMatcher.PriorityComparator());
 
 		return CollectionUtils.isNotEmpty(resourceMatchers) ?
 				new ResourceMatcherWrapper(needsDynamicEval, resourceMatchers) : null;

http://git-wip-us.apache.org/repos/asf/ranger/blob/f26bac88/agents-common/src/main/java/org/apache/ranger/plugin/resourcematcher/ResourceMatcher.java
----------------------------------------------------------------------
diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/resourcematcher/ResourceMatcher.java b/agents-common/src/main/java/org/apache/ranger/plugin/resourcematcher/ResourceMatcher.java
index 853c525..aad353d 100644
--- a/agents-common/src/main/java/org/apache/ranger/plugin/resourcematcher/ResourceMatcher.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/resourcematcher/ResourceMatcher.java
@@ -23,9 +23,10 @@ import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.ranger.plugin.util.StringTokenReplacer;
 
+import java.util.Comparator;
 import java.util.Map;
 
-abstract class ResourceMatcher implements Comparable<ResourceMatcher> {
+abstract class ResourceMatcher {
     private static final Log LOG = LogFactory.getLog(ResourceMatcher.class);
 
     protected final String value;
@@ -45,9 +46,6 @@ abstract class ResourceMatcher implements Comparable<ResourceMatcher> {
     }
 
     @Override
-    public int compareTo(ResourceMatcher other) { return Integer.compare(getPriority(), other.getPriority()); }
-
-    @Override
     public String toString() {
         return this.getClass().getName() + "(" + this.value + ")";
     }
@@ -79,4 +77,11 @@ abstract class ResourceMatcher implements Comparable<ResourceMatcher> {
 
         return ret;
     }
+
+    public static class PriorityComparator implements Comparator<ResourceMatcher> {
+        @Override
+        public int compare(ResourceMatcher me, ResourceMatcher other) {
+            return Integer.compare(me.getPriority(), other.getPriority());
+        }
+    }
 }

http://git-wip-us.apache.org/repos/asf/ranger/blob/f26bac88/agents-common/src/main/java/org/apache/ranger/plugin/util/RangerResourceTrie.java
----------------------------------------------------------------------
diff --git a/agents-common/src/main/java/org/apache/ranger/plugin/util/RangerResourceTrie.java b/agents-common/src/main/java/org/apache/ranger/plugin/util/RangerResourceTrie.java
index 7897f46..c22ecde 100644
--- a/agents-common/src/main/java/org/apache/ranger/plugin/util/RangerResourceTrie.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/util/RangerResourceTrie.java
@@ -380,12 +380,13 @@ class TrieNode<T extends RangerPolicyResourceEvaluator> {
             }
         }
 
+        RangerPolicyResourceEvaluator.IdComparator comparator = new RangerPolicyResourceEvaluator.IdComparator();
         if(!isSharingParentWildcardEvaluators && CollectionUtils.isNotEmpty(wildcardEvaluators)) {
-            Collections.sort(wildcardEvaluators);
+            Collections.sort(wildcardEvaluators, comparator);
         }
 
         if(evaluators != wildcardEvaluators && CollectionUtils.isNotEmpty(evaluators)) {
-            Collections.sort(evaluators);
+            Collections.sort(evaluators, comparator);
         }
 
         if(children != null) {
@@ -468,7 +469,7 @@ class TrieNode<T extends RangerPolicyResourceEvaluator> {
         if(CollectionUtils.isNotEmpty(evaluators)) {
             ret = new ArrayList<>(evaluators);
 
-            Collections.sort(ret);
+            Collections.sort(ret, new RangerPolicyResourceEvaluator.IdComparator());
         } else {
             ret = evaluators;
         }