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.");
                }
        }
 

Reply via email to