Repository: incubator-ranger
Updated Branches:
  refs/heads/master cd234cd61 -> 87d97cd14


RANGER-753: Fixed a potential NPE introduced in Optimize Tag Download 
Performance

Signed-off-by: Madhan Neethiraj <[email protected]>


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

Branch: refs/heads/master
Commit: 87d97cd14903b1bada33225081ec67d0ea6079da
Parents: cd234cd
Author: Abhay Kulkarni <[email protected]>
Authored: Thu Dec 3 14:33:13 2015 -0800
Committer: Madhan Neethiraj <[email protected]>
Committed: Thu Dec 3 16:36:38 2015 -0800

----------------------------------------------------------------------
 .../RangerDefaultPolicyEvaluator.java           |  4 ++-
 .../ranger/plugin/store/AbstractTagStore.java   | 37 +++++++++++---------
 2 files changed, 23 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/87d97cd1/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 77fdb90..93fbcd4 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
@@ -71,7 +71,9 @@ public class RangerDefaultPolicyEvaluator extends 
RangerAbstractPolicyEvaluator
                }
 
                StringBuffer perfTagBuffer = new StringBuffer();
-               
perfTagBuffer.append("policyId=").append(policy.getId()).append(", 
policyName=").append(policy.getName());
+               if (policy != null) {
+                       
perfTagBuffer.append("policyId=").append(policy.getId()).append(", 
policyName=").append(policy.getName());
+               }
 
                perfTag = perfTagBuffer.toString();
 

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/87d97cd1/agents-common/src/main/java/org/apache/ranger/plugin/store/AbstractTagStore.java
----------------------------------------------------------------------
diff --git 
a/agents-common/src/main/java/org/apache/ranger/plugin/store/AbstractTagStore.java
 
b/agents-common/src/main/java/org/apache/ranger/plugin/store/AbstractTagStore.java
index f22a87a..43d2254 100644
--- 
a/agents-common/src/main/java/org/apache/ranger/plugin/store/AbstractTagStore.java
+++ 
b/agents-common/src/main/java/org/apache/ranger/plugin/store/AbstractTagStore.java
@@ -113,32 +113,35 @@ public abstract class AbstractTagStore implements 
TagStore {
 
                List<RangerServiceResource> serviceResources = 
getServiceResourcesByService(serviceName);
 
-               Set<Long> tagsToDelete = new HashSet<Long>();
+               if (serviceResources != null) {
 
+                       Set<Long> tagsToDelete = new HashSet<Long>();
 
-               for (RangerServiceResource serviceResource : serviceResources) {
-                       Long resourceId = serviceResource.getId();
 
-                       List<RangerTagResourceMap> tagResourceMapsForService = 
getTagResourceMapsForResourceId(resourceId);
+                       for (RangerServiceResource serviceResource : 
serviceResources) {
+                               Long resourceId = serviceResource.getId();
 
-                       if (isResourePrivateTag) {
+                               List<RangerTagResourceMap> 
tagResourceMapsForService = getTagResourceMapsForResourceId(resourceId);
+
+                               if (isResourePrivateTag) {
+                                       for (RangerTagResourceMap 
tagResourceMap : tagResourceMapsForService) {
+                                               Long tagId = 
tagResourceMap.getTagId();
+                                               RangerTag tag = getTag(tagId);
+                                               tagsToDelete.add(tag.getId());
+                                       }
+                               }
                                for (RangerTagResourceMap tagResourceMap : 
tagResourceMapsForService) {
-                                       Long tagId = tagResourceMap.getTagId();
-                                       RangerTag tag = getTag(tagId);
-                                       tagsToDelete.add(tag.getId());
+                                       
deleteTagResourceMap(tagResourceMap.getId());
                                }
                        }
-                       for (RangerTagResourceMap tagResourceMap : 
tagResourceMapsForService) {
-                               deleteTagResourceMap(tagResourceMap.getId());
-                       }
-               }
 
-               for (RangerServiceResource serviceResource : serviceResources) {
-                       deleteServiceResource(serviceResource.getId());
-               }
+                       for (RangerServiceResource serviceResource : 
serviceResources) {
+                               deleteServiceResource(serviceResource.getId());
+                       }
 
-               for (Long tagId : tagsToDelete) {
-                       deleteTag(tagId);
+                       for (Long tagId : tagsToDelete) {
+                               deleteTag(tagId);
+                       }
                }
 
                if (LOG.isDebugEnabled()) {

Reply via email to