On 07/11/2018 16:42, Enrico Olivelli wrote:
Hi,
I am investigating this case about PowerMock, which is not able to
remove the 'final' modifier from a Field
https://github.com/powermock/powermock/issues/939
Is there any suggested alternate way to remove such modifier ?
I understand clearly that it is against how the JVM works and I really
appreciate this "change", but this is blocking tests of several
projects.
The only work-around I see is to not use "final" modifier for things
that aren't really "final", but for instance my case is that "in
production" I want the field to be treaded as "final" (in particular
"final static" initialized with System Properties) but in unit tests I
would like to be able to change the value without spawning a new JVM.
I did not find any JIRA about this behavioral change, do you have any pointer ?
If this is the direction (and I totally support it) I will be fine and
adapt to the new rules.
Right, there's no supported way to change static final fields. Have you
looked into the java agent dropping the final modifier at class load time?
-Alan.