[
https://issues.apache.org/jira/browse/UNOMI-414?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Serge Huber updated UNOMI-414:
------------------------------
Fix Version/s: 1.5.5
> in ScorePersonalizationStrategy, nullpointer if visitor has no interest
> -----------------------------------------------------------------------
>
> Key: UNOMI-414
> URL: https://issues.apache.org/jira/browse/UNOMI-414
> Project: Apache Unomi
> Issue Type: Bug
> Affects Versions: 1.5.4
> Reporter: romain.gauthier
> Priority: Major
> Fix For: 1.5.5
>
>
> When executing a personalization with sorted by score strategy, I get a
> nullpointer if the current visitor doesnt have any interest set on his
> profile.
>
> I tested only with 1.5.4 but it can easily be reproduced.
>
> Nullpointer is Ligne 54 in the file
> [https://github.com/apache/unomi/blob/unomi-root-1.5.4/services/src/main/java/org/apache/unomi/services/sorts/ScorePersonalizationStrategy.java]
> A null check on interestValues (the interests frome the profile) should be
> added.
>
> {code:java}
> if (interestList != null) {
> Map<String,Integer> interestValues = (Map<String, Integer>)
> profile.getProperties().get("interests");
> for (String interest : interestList.split(" ")) {
> if (interestValues.get(interest) != null) {
> score += interestValues.get(interest);
> }
> }
> }
> {code}
>
> java.lang.NullPointerException: nulljava.lang.NullPointerException: null at
> org.apache.unomi.services.sorts.ScorePersonalizationStrategy.personalizeList(ScorePersonalizationStrategy.java:54)
> ~[?:?]
>
> Request to test with (using context.json):
> {code:java}
> {
> "source": {
> "itemId": "JahiaDXServer",
> "itemType": "custom",
> "scope": "digit",
> "version": null,
> "properties": {}
> },
> "requireSegments": true,
> "requiredProfileProperties": [
> "interests"
> ],
> "requiredSessionProperties": [
> "*"
> ],
> "events": null,
> "filters": null,
> "personalizations": [
> {
> "id": "jexperience-recommendations-by-interest",
> "strategy": "score-sorted",
> "strategyOptions": {
> "threshold": -1
> },
> "contents": [
> {
> "id": "ac02dbe3-2445-4727-acea-50cfed001996",
> "filters": [
> {
> "appliesOn": null,
> "condition": {
> "parameterValues": {
> "minimumEventCount": 1,
> "eventCondition": {
> "type": "pageViewEventCondition",
> "parameterValues": {
> "pageID": "ac02dbe3-2445-4727-acea-50cfed001996"
> }
> },
> "numberOfDays": 30
> },
> "type": "pastEventCondition"
> },
> "properties": {
> "score": -1000
> }
> }
> ],
> "properties": {
> "interests": "health food"
> }
> },
> {
> "id": "62194fdd-2a1c-46ce-8f9b-19dc168f3454",
> "filters": [
> {
> "appliesOn": null,
> "condition": {
> "parameterValues": {
> "minimumEventCount": 1,
> "eventCondition": {
> "type": "pageViewEventCondition",
> "parameterValues": {
> "pageID": "62194fdd-2a1c-46ce-8f9b-19dc168f3454"
> }
> },
> "numberOfDays": 30
> },
> "type": "pastEventCondition"
> },
> "properties": {
> "score": -1000
> }
> }
> ],
> "properties": null
> },
> {
> "id": "dbb3a797-d24e-4701-97ad-dc0a708fa06f",
> "filters": [
> {
> "appliesOn": null,
> "condition": {
> "parameterValues": {
> "minimumEventCount": 1,
> "eventCondition": {
> "type": "pageViewEventCondition",
> "parameterValues": {
> "pageID": "dbb3a797-d24e-4701-97ad-dc0a708fa06f"
> }
> },
> "numberOfDays": 30
> },
> "type": "pastEventCondition"
> },
> "properties": {
> "score": -1000
> }
> }
> ],
> "properties": null
> },
> {
> "id": "90664d1d-6558-4239-a024-8212f2652673",
> "filters": [
> {
> "appliesOn": null,
> "condition": {
> "parameterValues": {
> "minimumEventCount": 1,
> "eventCondition": {
> "type": "pageViewEventCondition",
> "parameterValues": {
> "pageID": "90664d1d-6558-4239-a024-8212f2652673"
> }
> },
> "numberOfDays": 30
> },
> "type": "pastEventCondition"
> },
> "properties": {
> "score": -1000
> }
> }
> ],
> "properties": null
> },
> {
> "id": "f13af275-2002-4200-bd58-96847c74dafb",
> "filters": [
> {
> "appliesOn": null,
> "condition": {
> "parameterValues": {
> "minimumEventCount": 1,
> "eventCondition": {
> "type": "pageViewEventCondition",
> "parameterValues": {
> "pageID": "f13af275-2002-4200-bd58-96847c74dafb"
> }
> },
> "numberOfDays": 30
> },
> "type": "pastEventCondition"
> },
> "properties": {
> "score": -1000
> }
> }
> ],
> "properties": null
> },
> {
> "id": "2305ab1a-f6b1-47c1-bc46-a8c69c553d87",
> "filters": [
> {
> "appliesOn": null,
> "condition": {
> "parameterValues": {
> "minimumEventCount": 1,
> "eventCondition": {
> "type": "pageViewEventCondition",
> "parameterValues": {
> "pageID": "2305ab1a-f6b1-47c1-bc46-a8c69c553d87"
> }
> },
> "numberOfDays": 30
> },
> "type": "pastEventCondition"
> },
> "properties": {
> "score": -1000
> }
> }
> ],
> "properties": null
> },
> {
> "id": "50c4064c-ef6e-4afe-adcf-f876111f50bc",
> "filters": [
> {
> "appliesOn": null,
> "condition": {
> "parameterValues": {
> "minimumEventCount": 1,
> "eventCondition": {
> "type": "pageViewEventCondition",
> "parameterValues": {
> "pageID": "50c4064c-ef6e-4afe-adcf-f876111f50bc"
> }
> },
> "numberOfDays": 30
> },
> "type": "pastEventCondition"
> },
> "properties": {
> "score": -1000
> }
> }
> ],
> "properties": null
> },
> {
> "id": "55371bb0-c516-4038-ab6d-0acab57b4790",
> "filters": [
> {
> "appliesOn": null,
> "condition": {
> "parameterValues": {
> "minimumEventCount": 1,
> "eventCondition": {
> "type": "pageViewEventCondition",
> "parameterValues": {
> "pageID": "55371bb0-c516-4038-ab6d-0acab57b4790"
> }
> },
> "numberOfDays": 30
> },
> "type": "pastEventCondition"
> },
> "properties": {
> "score": -1000
> }
> }
> ],
> "properties": null
> },
> {
> "id": "eaaa15eb-e2c2-49cf-bb99-20ea90bd3fdb",
> "filters": [
> {
> "appliesOn": null,
> "condition": {
> "parameterValues": {
> "minimumEventCount": 1,
> "eventCondition": {
> "type": "pageViewEventCondition",
> "parameterValues": {
> "pageID": "eaaa15eb-e2c2-49cf-bb99-20ea90bd3fdb"
> }
> },
> "numberOfDays": 30
> },
> "type": "pastEventCondition"
> },
> "properties": {
> "score": -1000
> }
> }
> ],
> "properties": null
> },
> {
> "id": "15cdd5dd-909d-4d91-8f79-62226b96843a",
> "filters": [
> {
> "appliesOn": null,
> "condition": {
> "parameterValues": {
> "minimumEventCount": 1,
> "eventCondition": {
> "type": "pageViewEventCondition",
> "parameterValues": {
> "pageID": "15cdd5dd-909d-4d91-8f79-62226b96843a"
> }
> },
> "numberOfDays": 30
> },
> "type": "pastEventCondition"
> },
> "properties": {
> "score": -1000
> }
> }
> ],
> "properties": null
> }
> ]
> }
> ],
> "profileOverrides": null,
> "sessionPropertiesOverrides": null,
> "sessionId": "21bf6d3d-ba5d-4b8c-98bb-af4dcf506c03"
> }
> {code}
>
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)