From JDK12 it is not possible to drop 'final' modifier

Enrico Olivelli eolivelli at
Wed Nov 7 16:42:26 UTC 2018

I am investigating this case about PowerMock, which is not able to
remove the 'final' modifier from a Field

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

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.

Enrico Olivelli

More information about the core-libs-dev mailing list