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