EnumSet.class serialization broken - twice - JDK-8227368
stuart.marks at oracle.com
Thu Jul 11 01:34:35 UTC 2019
On 7/10/19 9:54 AM, Peter Levart wrote:
> On 7/10/19 6:03 PM, Joe Darcy wrote:
>> I'd advise against including at least part of the comment
>> // declare serialization compatibility with JDK 8 (see JDK-8227368)
>> We generally don't include bug numbers in the text of the code and rely
>> mapping from the SCM to the bug database to provide the (sometimes large!)
>> additional context for a fix.
> Ok, Joe. I removed the reference to bug number and recreated webrev.03 in-place.
> Will that be OK?
I'm ok with this patch (i.e., without the bug id). I did a test run and it looks
good. Given that Joe approved the CSR, you're now cleared to push. Remember to
push to JDK 13!
We should probably discuss the JDK 11 backport on jdk-updates, since it'll
differ from the JDK 13 patch.
For this patch having the bug id doesn't matter very much, since there is
nothing unusual about this code as it stands, and it'll be ok for the long term.
However, there are a bunch of places in the source code where we do reference
bug reports; they're pretty easy to find. There are perhaps over 100 in
java.base alone. (Some include full URLs, which I think is unnecessary.)
I think it's easier to go directly to a bug report than to search through the
history for bug ids in changeset comments. "hg anno" works reasonably well
initially, but as time goes on the changeset associated with a particular line
of code can be obscured by incidental refactorings, file renames, etc.
For example, I expect the JDK 11 backport to assign the serialVersionUID in a
static initializer block (which will require warnings suppression as well). This
is unusual and warrants a comment. This could either be a complete explanation
(which might run to a paragraph or more) or a reference to a bug id. Sometimes
an in-line explanation is warranted, but there's enough history here that in
this case a reference to a bug id seems more appropriate.
More information about the core-libs-dev