JDK 8 code review request for 6226715: (ann) java.lang.annotation.AnnotationTypeMismatchException could not be serialized (original) (raw)

Rémi Forax forax at univ-mlv.fr
Thu Jun 16 18🔞00 UTC 2011


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



More information about the core-libs-dev mailing list