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

Reply via email to