JDK 9 RFR of JDK-8035452: Fix serial lint warnings in core libs
Joe Darcy
joe.darcy at oracle.com
Tue Feb 25 04:22:31 UTC 2014
Hi Paul,
On 02/20/2014 12:49 PM, Paul Benedict wrote:
> Joe, I find it interesting that you suppressed the serial warning on
> an abstract class. I'd like to know more about that. Is this a
> universal rule? Are serial uids not important for abstract classes?
I wouldn't generalize that way from this example.
The serial hash of NavigableSubMap has differed in different JDK
releases, but its subclasses do define serialVersionUID fields. I assume
the set of non-transient fields in NavigableSubMap has stayed unchanged,
but I haven't verified that.
If I hadn't found the change in the hash value, I would have added the
serialVersionUID to NavigableSubMap too.
HTH,
-Joe
>
>
> On Thu, Feb 20, 2014 at 2:33 PM, Joe Darcy <joe.darcy at oracle.com
> <mailto:joe.darcy at oracle.com>> wrote:
>
> Hello,
>
> Please review the patch below which will address the handful of
> remaining serial lint warning in the core libraries.
>
> Thanks,
>
> -Joe
>
> diff -r e5a09bc70308 src/share/classes/java/util/EnumSet.java
> --- a/src/share/classes/java/util/EnumSet.java Thu Feb 20
> 13:03:36 2014 +0000
> +++ b/src/share/classes/java/util/EnumSet.java Thu Feb 20
> 12:32:52 2014 -0800
> @@ -80,6 +80,8 @@
> public abstract class EnumSet<E extends Enum<E>> extends
> AbstractSet<E>
> implements Cloneable, java.io.Serializable
> {
> + private static final long serialVersionUID =
> 1009687484059888093L;
> +
> /**
> * The class of all the elements of this set.
> */
> diff -r e5a09bc70308 src/share/classes/java/util/TreeMap.java
> --- a/src/share/classes/java/util/TreeMap.java Thu Feb 20
> 13:03:36 2014 +0000
> +++ b/src/share/classes/java/util/TreeMap.java Thu Feb 20
> 12:32:52 2014 -0800
> @@ -1333,6 +1333,7 @@
> /**
> * @serial include
> */
> + @SuppressWarnings("serial") // Abstract class
> abstract static class NavigableSubMap<K,V> extends
> AbstractMap<K,V>
> implements NavigableMap<K,V>, java.io.Serializable {
> /**
> diff -r e5a09bc70308
> src/share/classes/sun/reflect/annotation/ExceptionProxy.java
> --- a/src/share/classes/sun/reflect/annotation/ExceptionProxy.java
> Thu Feb 20 13:03:36 2014 +0000
> +++ b/src/share/classes/sun/reflect/annotation/ExceptionProxy.java
> Thu Feb 20 12:33:21 2014 -0800
> @@ -37,5 +37,6 @@
> * @since 1.5
> */
> public abstract class ExceptionProxy implements
> java.io.Serializable {
> + private static final long serialVersionUID =
> 7241930048386631401L;
> protected abstract RuntimeException generateException();
> }
>
>
>
>
> --
> Cheers,
> Paul
More information about the core-libs-dev
mailing list