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