Repository: incubator-eagle
Updated Branches:
  refs/heads/master 74c3cbb5b -> 4dfb528c4


[EAGLE-614]: NPE in DynamicPolicyLoader

Author: Zeng, Bryant
Reviewer: ralphsu

This closes #498


Project: http://git-wip-us.apache.org/repos/asf/incubator-eagle/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-eagle/commit/4dfb528c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-eagle/tree/4dfb528c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-eagle/diff/4dfb528c

Branch: refs/heads/master
Commit: 4dfb528c4bf2d8935bac78b10a82b6bc15f0be59
Parents: 74c3cbb
Author: mizeng <miz...@ebaysf.com>
Authored: Thu Oct 13 09:41:15 2016 +0800
Committer: Ralph, Su <suliang...@gmail.com>
Committed: Thu Oct 13 15:49:03 2016 +0800

----------------------------------------------------------------------
 .../apache/eagle/alert/engine/coordinator/PolicyDefinition.java | 5 ++++-
 .../eagle/alert/coordinator/trigger/DynamicPolicyLoader.java    | 3 ++-
 2 files changed, 6 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/4dfb528c/eagle-core/eagle-alert-parent/eagle-alert/alert-common/src/main/java/org/apache/eagle/alert/engine/coordinator/PolicyDefinition.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-alert-parent/eagle-alert/alert-common/src/main/java/org/apache/eagle/alert/engine/coordinator/PolicyDefinition.java
 
b/eagle-core/eagle-alert-parent/eagle-alert/alert-common/src/main/java/org/apache/eagle/alert/engine/coordinator/PolicyDefinition.java
index 680b21a..6df682a 100644
--- 
a/eagle-core/eagle-alert-parent/eagle-alert/alert-common/src/main/java/org/apache/eagle/alert/engine/coordinator/PolicyDefinition.java
+++ 
b/eagle-core/eagle-alert-parent/eagle-alert/alert-common/src/main/java/org/apache/eagle/alert/engine/coordinator/PolicyDefinition.java
@@ -139,15 +139,18 @@ public class PolicyDefinition implements Serializable {
         if (that == this) {
             return true;
         }
+
         if (!(that instanceof PolicyDefinition)) {
             return false;
         }
+
         PolicyDefinition another = (PolicyDefinition) that;
+
         if (Objects.equals(another.name, this.name)
             && Objects.equals(another.description, this.description)
             && CollectionUtils.isEqualCollection(another.inputStreams, 
this.inputStreams)
             && CollectionUtils.isEqualCollection(another.outputStreams, 
this.outputStreams)
-            && another.definition.equals(this.definition)
+            && (another.definition != null && 
another.definition.equals(this.definition))
             && Objects.equals(this.definition, another.definition)
             && CollectionUtils.isEqualCollection(another.partitionSpec, 
this.partitionSpec)
             // && another.parallelismHint == this.parallelismHint

http://git-wip-us.apache.org/repos/asf/incubator-eagle/blob/4dfb528c/eagle-core/eagle-alert-parent/eagle-alert/alert-coordinator/src/main/java/org/apache/eagle/alert/coordinator/trigger/DynamicPolicyLoader.java
----------------------------------------------------------------------
diff --git 
a/eagle-core/eagle-alert-parent/eagle-alert/alert-coordinator/src/main/java/org/apache/eagle/alert/coordinator/trigger/DynamicPolicyLoader.java
 
b/eagle-core/eagle-alert-parent/eagle-alert/alert-coordinator/src/main/java/org/apache/eagle/alert/coordinator/trigger/DynamicPolicyLoader.java
index a60c959..07ae966 100644
--- 
a/eagle-core/eagle-alert-parent/eagle-alert/alert-coordinator/src/main/java/org/apache/eagle/alert/coordinator/trigger/DynamicPolicyLoader.java
+++ 
b/eagle-core/eagle-alert-parent/eagle-alert/alert-coordinator/src/main/java/org/apache/eagle/alert/coordinator/trigger/DynamicPolicyLoader.java
@@ -66,7 +66,8 @@ public class DynamicPolicyLoader implements Runnable {
 
             List<String> reallyModifiedPolicies = new ArrayList<>();
             for (String updatedPolicy : potentiallyModifiedPolicies) {
-                if 
(!currPolicies.get(updatedPolicy).equals(cachedPolicies.get(updatedPolicy))) {
+                if (currPolicies.get(updatedPolicy) != null
+                        && 
!currPolicies.get(updatedPolicy).equals(cachedPolicies.get(updatedPolicy))) {
                     reallyModifiedPolicies.add(updatedPolicy);
                 }
             }

Reply via email to