You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@unomi.apache.org by dr...@apache.org on 2017/11/08 10:25:55 UTC

incubator-unomi git commit: UNOMI-134 : Avoid NPE when no filter is set on personalization

Repository: incubator-unomi
Updated Branches:
  refs/heads/master 150010a28 -> 35330b452


UNOMI-134 : Avoid NPE when no filter is set on personalization


Project: http://git-wip-us.apache.org/repos/asf/incubator-unomi/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-unomi/commit/35330b45
Tree: http://git-wip-us.apache.org/repos/asf/incubator-unomi/tree/35330b45
Diff: http://git-wip-us.apache.org/repos/asf/incubator-unomi/diff/35330b45

Branch: refs/heads/master
Commit: 35330b452641f0ce15090486c838c04e7961f686
Parents: 150010a
Author: Thomas Draier <dr...@apache.org>
Authored: Wed Nov 8 11:25:45 2017 +0100
Committer: Thomas Draier <dr...@apache.org>
Committed: Wed Nov 8 11:25:53 2017 +0100

----------------------------------------------------------------------
 .../services/PersonalizationServiceImpl.java      | 10 ++++++----
 .../sorts/FilterPersonalizationStrategy.java      |  8 +++++---
 .../sorts/ScorePersonalizationStrategy.java       | 18 ++++++++++--------
 3 files changed, 21 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/35330b45/services/src/main/java/org/apache/unomi/services/services/PersonalizationServiceImpl.java
----------------------------------------------------------------------
diff --git a/services/src/main/java/org/apache/unomi/services/services/PersonalizationServiceImpl.java b/services/src/main/java/org/apache/unomi/services/services/PersonalizationServiceImpl.java
index 199b529..6ce7610 100644
--- a/services/src/main/java/org/apache/unomi/services/services/PersonalizationServiceImpl.java
+++ b/services/src/main/java/org/apache/unomi/services/services/PersonalizationServiceImpl.java
@@ -60,10 +60,12 @@ public class PersonalizationServiceImpl implements PersonalizationService {
     @Override
     public boolean filter(Profile profile, Session session, PersonalizedContent personalizedContent) {
         boolean result = true;
-        for (Filter filter : personalizedContent.getFilters()) {
-            Condition condition = filter.getCondition();
-            if (condition != null && condition.getConditionTypeId() != null) {
-                result &= profileService.matchCondition(condition, profile, session);
+        if (personalizedContent.getFilters() != null) {
+            for (Filter filter : personalizedContent.getFilters()) {
+                Condition condition = filter.getCondition();
+                if (condition != null && condition.getConditionTypeId() != null) {
+                    result &= profileService.matchCondition(condition, profile, session);
+                }
             }
         }
         return result;

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/35330b45/services/src/main/java/org/apache/unomi/services/sorts/FilterPersonalizationStrategy.java
----------------------------------------------------------------------
diff --git a/services/src/main/java/org/apache/unomi/services/sorts/FilterPersonalizationStrategy.java b/services/src/main/java/org/apache/unomi/services/sorts/FilterPersonalizationStrategy.java
index b3e6bb4..41ac9b5 100644
--- a/services/src/main/java/org/apache/unomi/services/sorts/FilterPersonalizationStrategy.java
+++ b/services/src/main/java/org/apache/unomi/services/sorts/FilterPersonalizationStrategy.java
@@ -40,9 +40,11 @@ public class FilterPersonalizationStrategy implements PersonalizationStrategy {
         List<String> sortedContent = new ArrayList<>();
         for (PersonalizationService.PersonalizedContent personalizedContent : personalizationRequest.getContents()) {
             boolean result = true;
-            for (PersonalizationService.Filter filter : personalizedContent.getFilters()) {
-                Condition condition = filter.getCondition();
-                result &= profileService.matchCondition(condition, profile, session);
+            if (personalizedContent.getFilters() != null) {
+                for (PersonalizationService.Filter filter : personalizedContent.getFilters()) {
+                    Condition condition = filter.getCondition();
+                    result &= profileService.matchCondition(condition, profile, session);
+                }
             }
             if (result) {
                 sortedContent.add(personalizedContent.getId());

http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/35330b45/services/src/main/java/org/apache/unomi/services/sorts/ScorePersonalizationStrategy.java
----------------------------------------------------------------------
diff --git a/services/src/main/java/org/apache/unomi/services/sorts/ScorePersonalizationStrategy.java b/services/src/main/java/org/apache/unomi/services/sorts/ScorePersonalizationStrategy.java
index c8d391b..f22d951 100644
--- a/services/src/main/java/org/apache/unomi/services/sorts/ScorePersonalizationStrategy.java
+++ b/services/src/main/java/org/apache/unomi/services/sorts/ScorePersonalizationStrategy.java
@@ -67,14 +67,16 @@ public class ScorePersonalizationStrategy implements PersonalizationStrategy {
                 }
             }
 
-            for (PersonalizationService.Filter filter : personalizedContent.getFilters()) {
-                Condition condition = filter.getCondition();
-                if (condition != null && condition.getConditionTypeId() != null) {
-                    if (profileService.matchCondition(condition, profile, session)) {
-                        if (filter.getProperties().get("score") != null) {
-                            score += (int) filter.getProperties().get("score");
-                        } else {
-                            score += 1;
+            if (personalizedContent.getFilters() != null) {
+                for (PersonalizationService.Filter filter : personalizedContent.getFilters()) {
+                    Condition condition = filter.getCondition();
+                    if (condition != null && condition.getConditionTypeId() != null) {
+                        if (profileService.matchCondition(condition, profile, session)) {
+                            if (filter.getProperties().get("score") != null) {
+                                score += (int) filter.getProperties().get("score");
+                            } else {
+                                score += 1;
+                            }
                         }
                     }
                 }