You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Gary D. Gregory (Jira)" <ji...@apache.org> on 2025/03/21 13:44:00 UTC
[jira] [Updated] (LANG-1765) Fix Javadoc for FieldUtils.read[Declared][Static]Field()
[ https://issues.apache.org/jira/browse/LANG-1765?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Gary D. Gregory updated LANG-1765:
----------------------------------
Summary: Fix Javadoc for FieldUtils.read[Declared][Static]Field() (was: Fix Javadoc for FieldUtils.readDeclaredStaticField())
> Fix Javadoc for FieldUtils.read[Declared][Static]Field()
> --------------------------------------------------------
>
> Key: LANG-1765
> URL: https://issues.apache.org/jira/browse/LANG-1765
> Project: Commons Lang
> Issue Type: Bug
> Components: lang.*
> Affects Versions: 3.17.0
> Reporter: Wang Hailong
> Priority: Major
> Fix For: 3.18.0
>
>
> The mimal test case is like that:
> {color:#cc7832}class {color}ChildClass
> {
> static String fieldName{color:#cc7832};
> }{color}
> @org.junit.jupiter.api.Test // Corrected annotation usage
> public void testReadStaticFieldAcrossInheritance() throws Exception {
> // Data Preparation
> Class<?> cls = ChildClass.class;
> Field field = cls.getDeclaredField("fieldName");
> field.setAccessible(true);
> // API Invocation
> Object value = FieldUtils.readDeclaredStaticField(cls, "fieldName"); }
> And it just throw a nullpointerException
> And I find out why it could happen:
> in the method : getDeclaredField
> try {
> Field field = cls.getDeclaredField(fieldName);
> if (!MemberUtils.isAccessible(field)) {
> if (!forceAccess) {
> return null;
> }
> field.setAccessible(true);
> }
> The method "MemberUtils.isAccessible(field)" it can not recognize that I have set the filed to be accessible by java reflection. So it just return null and the it will throw a nullPointerException
>
>
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)