Repository: incubator-ranger Updated Branches: refs/heads/master 3abd4be25 -> 0ecac71fd
RANGER-882 Add a catch all policy engine initialization to ensure that plugin will continue to pull policies periodically Project: http://git-wip-us.apache.org/repos/asf/incubator-ranger/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ranger/commit/0ecac71f Tree: http://git-wip-us.apache.org/repos/asf/incubator-ranger/tree/0ecac71f Diff: http://git-wip-us.apache.org/repos/asf/incubator-ranger/diff/0ecac71f Branch: refs/heads/master Commit: 0ecac71fd5fc61642fef9b25fb2e12ea69052187 Parents: 3abd4be Author: Alok Lal <[email protected]> Authored: Thu Mar 17 12:19:42 2016 -0700 Committer: Alok Lal <[email protected]> Committed: Thu Mar 17 12:36:33 2016 -0700 ---------------------------------------------------------------------- .../ranger/plugin/service/RangerBasePlugin.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/0ecac71f/agents-common/src/main/java/org/apache/ranger/plugin/service/RangerBasePlugin.java ---------------------------------------------------------------------- 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 b864e61..be54d36 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 @@ -106,14 +106,20 @@ public class RangerBasePlugin { } public void setPolicies(ServicePolicies policies) { - RangerPolicyEngine oldPolicyEngine = this.policyEngine; - RangerPolicyEngine policyEngine = new RangerPolicyEngineImpl(appId, policies, policyEngineOptions); + // guard against catastrophic failure during policy engine Initialization or + try { + RangerPolicyEngine oldPolicyEngine = this.policyEngine; + + RangerPolicyEngine policyEngine = new RangerPolicyEngineImpl(appId, policies, policyEngineOptions); - this.policyEngine = policyEngine; + this.policyEngine = policyEngine; - if (oldPolicyEngine != null && !oldPolicyEngine.preCleanup()) { - LOG.error("preCleanup() failed on the previous policy engine instance !!"); + if (oldPolicyEngine != null && !oldPolicyEngine.preCleanup()) { + LOG.error("preCleanup() failed on the previous policy engine instance !!"); + } + } catch (Exception e) { + LOG.error("setPolicies: policy engine initialization failed! Leaving current policy engine as-is."); } }
