Repository: incubator-ranger
Updated Branches:
  refs/heads/master 66e5cfd96 -> 878e2ac3f


RANGER-328: fix for NPE in Ranger policy engine


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

Branch: refs/heads/master
Commit: 878e2ac3f656502bd9aba150579de28b657845a1
Parents: 66e5cfd
Author: Madhan Neethiraj <[email protected]>
Authored: Mon Mar 23 17:35:40 2015 -0700
Committer: Madhan Neethiraj <[email protected]>
Committed: Mon Mar 23 17:35:40 2015 -0700

----------------------------------------------------------------------
 .../policyengine/RangerPolicyEngineImpl.java    | 23 ++++++++++++++++++--
 1 file changed, 21 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/878e2ac3/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/RangerPolicyEngineImpl.java
----------------------------------------------------------------------
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 7227e9e..5e9ca0c 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
@@ -56,11 +56,14 @@ public class RangerPolicyEngineImpl implements 
RangerPolicyEngine {
 
        @Override
        public RangerServiceDef getServiceDef() {
+               RangerPolicyRepository policyRepository = getPolicyRepository();
+
                return policyRepository == null ? null : 
policyRepository.getServiceDef();
        }
 
        @Override
        public List<RangerContextEnricher> getContextEnrichers() {
+               RangerPolicyRepository policyRepository = getPolicyRepository();
 
                return policyRepository == null ? null : 
policyRepository.getContextEnrichers();
        }
@@ -72,9 +75,11 @@ public class RangerPolicyEngineImpl implements 
RangerPolicyEngine {
                }
 
                if (serviceName != null && serviceDef != null && policies != 
null) {
-                       policyRepository = new 
RangerPolicyRepository(serviceName);
+                       RangerPolicyRepository policyRepository = new 
RangerPolicyRepository(serviceName);
                        policyRepository.init(serviceDef, policies);
+
                        this.serviceName = serviceName;
+                       setPolicyRepository(policyRepository);
                } else {
                        LOG.error("RangerPolicyEngineImpl.setPolicies ->Invalid 
arguments: serviceName, serviceDef, or policies is null");
                }
@@ -96,7 +101,9 @@ public class RangerPolicyEngineImpl implements 
RangerPolicyEngine {
 
        @Override
        public RangerAccessResult createAccessResult(RangerAccessRequest 
request) {
-               return policyRepository == null ? null : new 
RangerAccessResult(serviceName, policyRepository.getServiceDef(), request);
+               RangerPolicyRepository policyRepository = getPolicyRepository();
+
+               return new RangerAccessResult(serviceName, policyRepository == 
null ? null : policyRepository.getServiceDef(), request);
        }
 
        @Override
@@ -160,6 +167,8 @@ public class RangerPolicyEngineImpl implements 
RangerPolicyEngine {
                        LOG.debug("==> 
RangerPolicyEngineImpl.isAccessAllowedNoAudit(" + request + ")");
                }
 
+               RangerPolicyRepository policyRepository = getPolicyRepository();
+
                RangerAccessResult ret = createAccessResult(request);
 
                if(policyRepository != null && ret != null && request != null) {
@@ -191,6 +200,14 @@ public class RangerPolicyEngineImpl implements 
RangerPolicyEngine {
                return ret;
        }
 
+       private RangerPolicyRepository getPolicyRepository() {
+               return this.policyRepository;
+       }
+
+       private void setPolicyRepository(RangerPolicyRepository 
policyRepository) {
+               this.policyRepository = policyRepository;
+       }
+
        @Override
        public String toString( ) {
                StringBuilder sb = new StringBuilder();
@@ -201,6 +218,8 @@ public class RangerPolicyEngineImpl implements 
RangerPolicyEngine {
        }
 
        public StringBuilder toString(StringBuilder sb) {
+               RangerPolicyRepository policyRepository = getPolicyRepository();
+
                sb.append("RangerPolicyEngineImpl={");
 
                sb.append("serviceName={").append(serviceName).append("} ");

Reply via email to