On 17/03/2015 12:21, Peter Levart wrote:

Hi Alan,

I agree that not calling defaultReadObject() from readObject() and having a final field is potentially a bug. But need not be in case some other means of setting final fields was used (Unsafe or reflection). Some readObject() implementations in base module that Chris changed to use new API fall into this category. We can't track those usages, so to keep backwards compatibility, this checking has to be opt-in. Is there a more elegant way to opt-in? A @CheckFinalsAssignment annotation on the readObject() method?
I'm not sure that an annotation is right here. Instead then it might work as a method on FieldSetter to enable strict checking.

-Alan

Reply via email to