[ 
https://issues.apache.org/jira/browse/LANG-959?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15305898#comment-15305898
 ] 

Sebb commented on LANG-959:
---------------------------

It looks like the patch unconditionally removes the final modifer.
There does not seem to be any attempt to restore the modifier after the write 
has completed.
Also the Javadoc for any methods that call removeFinal() should document that 
the modifier may be removed.

AFAIK the throws clause does not affect BC == binary compatibility.
However throwing a new Exception could affect callers, so it is reasonable to 
convert the Exception.
I think the comment should make it clear that the conversion is to conform to 
existing behaviour.

> FieldUtils write methods do not write to final fields.
> ------------------------------------------------------
>
>                 Key: LANG-959
>                 URL: https://issues.apache.org/jira/browse/LANG-959
>             Project: Commons Lang
>          Issue Type: Improvement
>          Components: lang.reflect.*
>    Affects Versions: 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: Gary Gregory
>             Fix For: Review Patch
>
>         Attachments: LANG-959.diff
>
>
> I have a use case where I need to use reflection to set a public static final 
> Object.
> This does not work with our FieldUtils class because the "forceAccess" 
> argument is only used to deal with field visibility by calling 
> Field#setAccessible(boolean)
> Q1: Should "forceAccess" be expanded to remove the final modifier? Or:
> Q2: Should we add another boolean parameter "forceWrite" to remove the FINAL 
> modifier?
> I like Q1.
> Q3: The Accessible flag is NOT reset if changed after a write! I think it 
> should be. Thoughts?
> The attached patch implements this BUT does not fix failing tests that expect 
> writes to fail on final fields. I left the tests failing to show clearly 
> which ones fail so we can discuss if:
> - this fixes a bug, 
> - is an improvement acceptable for the next release
> - or breaks too much for the next release
> Discuss here or on the ML.
> Thank you.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to