[
https://issues.apache.org/jira/browse/LANG-965?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14107998#comment-14107998
]
Andre Diermann commented on LANG-965:
-------------------------------------
Hello Benedikt,
sorry for inconvenience. Let me clarify:
- Restoring accessibility in {{readField(Object, String, boolean)}} and
{{writeField(Object, String, Object, boolean)}} is necessary, because
getField() gets called in these two methods. getField() may change the
accessibility of the field. Since getField() guarantees, according to its
javadoc, to return "an accessible {@link Field} by name" it was not an option
to restore the accessibility within this method. Therefore it needs to be
restored in the above mentioned read/write methods separately.
- The original tests failed after the "accessibility leak" has been fixed. In
the corresponding assert statement the field was filled with an expected value
for assertion although it might not be accessible. Before, they only succeeded
because of the leak. You can reproduce this by applying the patch for the
FieldUtil class and use the original tests. So the changes to the tests do not
test the restoring of the accessibility, they just guarantee, that the tests
work like before.
Let me know, if any uncertainty remains.
BR
André
> FieldUtils methods leak accessible flags
> ----------------------------------------
>
> Key: LANG-965
> URL: https://issues.apache.org/jira/browse/LANG-965
> Project: Commons Lang
> Issue Type: Bug
> Components: lang.reflect.*
> Affects Versions: 3.1, 3.2.1
> Environment: Apache Maven 3.1.1
> (0728685237757ffbf44136acec0402957f723d9a; 2013-09-17 11:22:22-0400)
> Maven home: C:\Java\apache-maven-3.1.1\bin\..
> Java version: 1.7.0_51, vendor: Oracle Corporation
> Java home: C:\Program Files\Java\jdk1.7.0_51\jre
> Default locale: en_US, platform encoding: Cp1252
> OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"
> Reporter: Gary Gregory
> Assignee: Benedikt Ritter
> Fix For: Review Patch
>
> Attachments: commons-lang-965.patch
>
>
> When various FieldUtils methods are called the accessible is set to true but
> never reset to false. This is side-effect should be cleaned up.
> This makes a mess of the object model which represents the class meta data.
--
This message was sent by Atlassian JIRA
(v6.2#6252)