[ https://issues.apache.org/jira/browse/LANG-1711 ]


    Jeremy Tonghao Sun deleted comment on LANG-1711:
    ------------------------------------------

was (Author: jeremysun):
This change makes ReflectionDiffBuilder skip fields that cannot be accessed via 
reflection

instead of failing fast with an exception.

 

Previously, if reflective access to a field was denied (for example due to Java 
9+ module

restrictions or security constraints), the diff process would abort entirely. 
This prevented

producing a partial diff even when most fields were accessible.

 

The implementation is limited to appendFields(...), where reflection access 
failures are

caught and ignored. This covers IllegalAccessException on Java 8 as well as 
runtime reflection

failures on newer Java versions. No public APIs were changed.

 

This keeps full Java 8 compatibility while improving robustness on restricted 
environments.

> Modify ReflectionToStringBuilder to use trySetAccessible and not throw 
> exceptions
> ---------------------------------------------------------------------------------
>
>                 Key: LANG-1711
>                 URL: https://issues.apache.org/jira/browse/LANG-1711
>             Project: Commons Lang
>          Issue Type: Improvement
>            Reporter: Oksana
>            Priority: Major
>
> org.apache.commons.lang3.builder.ReflectionToStringBuilder#appendFieldsIn 
> uses following method
> _AccessibleObject.setAccessible(fields, true);_
> It will throw exception when it is not possible to perform action. I think, 
> better approach - just to skip not accessible fields and report only 
> accessible once. Since Java 9 there is a method trySetAccessible for that.
> [https://github.com/apache/commons-lang/pull/1102]



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to