[ 
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)

Reply via email to