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;
+ }
}
}
}