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 <npelt...@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;
     }
 
     /**

Reply via email to