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;
}