You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@unomi.apache.org by ql...@apache.org on 2016/08/09 12:21:40 UTC

[2/2] incubator-unomi git commit: UNOMI-47 : Check if the nested property is present on the profile

UNOMI-47 : Check if the nested property is present on the profile


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

Branch: refs/heads/master
Commit: 1c5d74aa5c2f98af8a632eb9be603e168f6df1be
Parents: b6410c1
Author: Abdelkader Midani <am...@jahia.com>
Authored: Tue Aug 9 13:36:12 2016 +0200
Committer: Abdelkader Midani <am...@jahia.com>
Committed: Tue Aug 9 13:36:12 2016 +0200

----------------------------------------------------------------------
 .../unomi/persistence/spi/PropertyHelper.java       | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/1c5d74aa/persistence-spi/src/main/java/org/apache/unomi/persistence/spi/PropertyHelper.java
----------------------------------------------------------------------
diff --git a/persistence-spi/src/main/java/org/apache/unomi/persistence/spi/PropertyHelper.java b/persistence-spi/src/main/java/org/apache/unomi/persistence/spi/PropertyHelper.java
index 0f839db..e70a09f 100644
--- a/persistence-spi/src/main/java/org/apache/unomi/persistence/spi/PropertyHelper.java
+++ b/persistence-spi/src/main/java/org/apache/unomi/persistence/spi/PropertyHelper.java
@@ -18,6 +18,7 @@
 package org.apache.unomi.persistence.spi;
 
 import org.apache.commons.beanutils.BeanUtils;
+import org.apache.commons.beanutils.NestedNullException;
 import org.apache.commons.beanutils.PropertyUtils;
 import org.apache.commons.beanutils.expression.DefaultResolver;
 import org.slf4j.Logger;
@@ -44,12 +45,17 @@ public class PropertyHelper {
             if(setPropertyStrategy!=null && setPropertyStrategy.equals("remove")){
                 if(resolver.hasNested(propertyName)) {
                     parentPropertyName = propertyName.substring(0, propertyName.lastIndexOf('.'));
-                    Object parentPropertyValue = PropertyUtils.getNestedProperty(target, parentPropertyName);
-                    if(parentPropertyValue instanceof HashMap){
-                        ((HashMap)parentPropertyValue).remove(propertyName.substring(propertyName.lastIndexOf('.')+1));
-                        PropertyUtils.setNestedProperty(target, parentPropertyName, parentPropertyValue);
-                        return true;
+                    try{
+                        Object parentPropertyValue = PropertyUtils.getNestedProperty(target, parentPropertyName);
+                        if(parentPropertyValue instanceof HashMap){
+                            ((HashMap)parentPropertyValue).remove(propertyName.substring(propertyName.lastIndexOf('.')+1));
+                            PropertyUtils.setNestedProperty(target, parentPropertyName, parentPropertyValue);
+                            return true;
+                        }
+                    } catch(NestedNullException ex){
+                        return false;
                     }
+
                 }
                 return false;
             }