JDK 8 code review request for 6226715: (ann) java.lang.annotation.AnnotationTypeMismatchException could not be serialized
Rémi Forax
forax at univ-mlv.fr
Thu Jun 16 18: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