On 06/16/2011 05:17 PM, Joe Darcy wrote:
Rémi Forax wrote:
 Le 16/06/2011 02:35, Joe Darcy a écrit :
Hello.

Please review my JDK 8 fix for

6226715: (ann) java.lang.annotation.AnnotationTypeMismatchException could not be serialized
   http://cr.openjdk.java.net/~darcy/6226715.0/

This fix includes the unusual step of marking a non-transient field transient in a serialiable class, but the class can't meaningfully be serialized today anyway so this change should have no adverse effect in practice.

For good code hygiene, the new readObject method explicitly sets the now transient field in question.

Not sure it's good to drop 'final' just for code hygiene.
A code that relies on the fact that this exception is non-mutable can now fail.

There is no setter for the field other than through the constructor (and now readObject).

Because the field is not final a thread can see this field null even if the exception was created
with a value.


I don't really want to dip into sun.misc.Unsafe to set a final transient field in the readObject method.

why do you want to set the field to null knowing that null is the default value ?


-Joe

Rémi

Reply via email to