You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ra...@apache.org on 2019/01/22 09:41:26 UTC

[sling-org-apache-sling-scripting-sightly-runtime] 10/11: SLING-8205 - Stop using Class.getField() in order to avoid throwing NoSuchFieldException

This is an automated email from the ASF dual-hosted git repository.

radu pushed a commit to branch issue/SLING-8228
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-scripting-sightly-runtime.git

commit 393ca79e458d9cd8172be8b6107d2474101101d1
Author: Nicolas Peltier <np...@apache.org>
AuthorDate: Wed Jan 9 11:48:47 2019 +0100

    SLING-8205 - Stop using Class.getField() in order to avoid throwing NoSuchFieldException
    
    * iterate through Class.getFields; this can still throw an IllegalAccessException,
    but less likely than the previous approach - closes #3
---
 .../sling/scripting/sightly/render/ObjectModel.java       | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

diff --git a/src/main/java/org/apache/sling/scripting/sightly/render/ObjectModel.java b/src/main/java/org/apache/sling/scripting/sightly/render/ObjectModel.java
index 6b437d7..e3ef0ad 100644
--- a/src/main/java/org/apache/sling/scripting/sightly/render/ObjectModel.java
+++ b/src/main/java/org/apache/sling/scripting/sightly/render/ObjectModel.java
@@ -367,12 +367,17 @@ public final class ObjectModel {
         if (cls.isArray() && "length".equals(fieldName)) {
             return Array.getLength(object);
         }
-        try {
-            Field field = cls.getField(fieldName);
-            return field.get(object);
-        } catch (Exception e) {
-            return null;
+        for (Field field : cls.getFields()){
+            if (field.getName().equals(fieldName)){
+                try {
+                    return field.get(object);
+                }
+                catch (IllegalAccessException e) {
+                    return null;
+                }
+            }
         }
+        return null;
     }
 
     /**