On Mon, 29 Jun 2026 13:59:14 GMT, Jaikiran Pai <[email protected]> wrote:
>> src/java.base/share/classes/java/io/InvalidClassException.java line 38:
>>
>>> 36: * <li>The ObjectStreamClass of an enum constant does not represent
>>> 37: * an enum type
>>> 38: * <li>A {@linkplain Class#isValue value class} cannot be serialized
>>
>> I think this might have to be a bit more precise. In its current form this
>> seems to imply that an instance of a value class cannot be serialized, which
>> isn't accurate because the primitive wrapper classes (for example
>> `java.lang.Integer`) which are value classes when preview is enabled can be
>> serialized/deserialized. So can instances of value classes like
>> `java.time.Instant` which implement the `writeReplace()` method to write out
>> a replacement object to facilitate serialization.
>
> If it gets too wordy, then maybe we can just drop the mention of value
> classes, since there's already a "Other conditions given in the Java Object
> Serialization Specification" on the next line?
I think saying something like "the class is a value class" works - the no-arg
scenario doesn't mean no classes without no-arg constructor could be serialized.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/31123#discussion_r3492336245