JDK 12 RFR of JDK-8209024: Use SuppressWarnings on serialVersionUID fields in interfaces

Lance Andersen lance.andersen at oracle.com
Mon Aug 6 22:11:35 UTC 2018


+1
> On Aug 6, 2018, at 3:11 PM, joe darcy <joe.darcy at oracle.com> wrote:
> 
> Hello,
> 
> Various interfaces in the JDK extend Serializable and declare serialVersionUID fields. Such fields are ineffectual and @SuppressWarnings("serial") should be applied to such fields to suppress future planned serial lint checks (JDK-8202056).
> 
> Most of the affected files are in the security-libs area with a handful in RMI and JNDI:
> 
>     http://cr.openjdk.java.net/~darcy/8209024.0/
> 
> Patch below. I'll fix-up the copyright years before any push.
> 
> Thanks,
> 
> -Joe
> 
> --- old/src/java.base/share/classes/java/security/Key.java 2018-08-06 12:04:46.666000999 -0700
> +++ new/src/java.base/share/classes/java/security/Key.java 2018-08-06 12:04:46.510000999 -0700
> @@ -109,6 +109,7 @@
>      * serialization compatibility with a previous
>      * version of the class.
>      */
> +    @SuppressWarnings("serial") // serialVersionUID in an interface is ineffectual
>      static final long serialVersionUID = 6603384152749567654L;
> 
>      /**
> --- old/src/java.base/share/classes/java/security/PrivateKey.java 2018-08-06 12:04:47.062000999 -0700
> +++ new/src/java.base/share/classes/java/security/PrivateKey.java 2018-08-06 12:04:46.914000999 -0700
> @@ -64,5 +64,6 @@
>       * The class fingerprint that is set to indicate serialization
>       * compatibility with a previous version of the class.
>       */
> +    @SuppressWarnings("serial") // serialVersionUID in an interface is ineffectual
>      static final long serialVersionUID = 6034044314589513430L;
>  }
> --- old/src/java.base/share/classes/java/security/PublicKey.java 2018-08-06 12:04:47.454000999 -0700
> +++ new/src/java.base/share/classes/java/security/PublicKey.java 2018-08-06 12:04:47.306000999 -0700
> @@ -50,5 +50,6 @@
>       * The class fingerprint that is set to indicate serialization
>       * compatibility with a previous version of the class.
>       */
> +    @SuppressWarnings("serial") // serialVersionUID in an interface is ineffectual
>      static final long serialVersionUID = 7187392471159151072L;
>  }
> --- old/src/java.base/share/classes/java/security/interfaces/DSAPrivateKey.java 2018-08-06 12:04:47.858000999 -0700
> +++ new/src/java.base/share/classes/java/security/interfaces/DSAPrivateKey.java 2018-08-06 12:04:47.706000999 -0700
> @@ -48,6 +48,7 @@
>      * serialization compatibility with a previous
>      * version of the class.
>      */
> +    @SuppressWarnings("serial") // serialVersionUID in an interface is ineffectual
>      static final long serialVersionUID = 7776497482533790279L;
> 
>      /**
> --- old/src/java.base/share/classes/java/security/interfaces/DSAPublicKey.java 2018-08-06 12:04:48.270000999 -0700
> +++ new/src/java.base/share/classes/java/security/interfaces/DSAPublicKey.java 2018-08-06 12:04:48.114000999 -0700
> @@ -48,6 +48,7 @@
>      * serialization compatibility with a previous
>      * version of the class.
>      */
> +    @SuppressWarnings("serial") // serialVersionUID in an interface is ineffectual
>      static final long serialVersionUID = 1234526332779022332L;
> 
>      /**
> --- old/src/java.base/share/classes/java/security/interfaces/ECPrivateKey.java 2018-08-06 12:04:48.674000999 -0700
> +++ new/src/java.base/share/classes/java/security/interfaces/ECPrivateKey.java 2018-08-06 12:04:48.522000999 -0700
> @@ -43,6 +43,7 @@
>      * The class fingerprint that is set to indicate
>      * serialization compatibility.
>      */
> +    @SuppressWarnings("serial") // serialVersionUID in an interface is ineffectual
>      static final long serialVersionUID = -7896394956925609184L;
> 
>      /**
> --- old/src/java.base/share/classes/java/security/interfaces/ECPublicKey.java 2018-08-06 12:04:49.078000999 -0700
> +++ new/src/java.base/share/classes/java/security/interfaces/ECPublicKey.java 2018-08-06 12:04:48.926000999 -0700
> @@ -45,6 +45,7 @@
>      * The class fingerprint that is set to indicate
>      * serialization compatibility.
>      */
> +    @SuppressWarnings("serial") // serialVersionUID in an interface is ineffectual
>      static final long serialVersionUID = -3314988629879632826L;
> 
>      /**
> --- old/src/java.base/share/classes/java/security/interfaces/RSAMultiPrimePrivateCrtKey.java 2018-08-06 12:04:49.470000999 -0700
> +++ new/src/java.base/share/classes/java/security/interfaces/RSAMultiPrimePrivateCrtKey.java 2018-08-06 12:04:49.318000999 -0700
> @@ -51,6 +51,7 @@
>       * serialization compatibility with a previous
>       * version of the type.
>       */
> +    @SuppressWarnings("serial") // serialVersionUID in an interface is ineffectual
>      static final long serialVersionUID = 618058533534628008L;
> 
>      /**
> --- old/src/java.base/share/classes/java/security/interfaces/RSAPrivateCrtKey.java 2018-08-06 12:04:49.890000999 -0700
> +++ new/src/java.base/share/classes/java/security/interfaces/RSAPrivateCrtKey.java 2018-08-06 12:04:49.726000999 -0700
> @@ -46,6 +46,7 @@
>       * serialization compatibility with a previous
>       * version of the type.
>       */
> +    @SuppressWarnings("serial") // serialVersionUID in an interface is ineffectual
>      static final long serialVersionUID = -5682214253527700368L;
> 
>      /**
> --- old/src/java.base/share/classes/java/security/interfaces/RSAPrivateKey.java 2018-08-06 12:04:50.290000999 -0700
> +++ new/src/java.base/share/classes/java/security/interfaces/RSAPrivateKey.java 2018-08-06 12:04:50.146000999 -0700
> @@ -45,6 +45,7 @@
>       * serialization compatibility with a previous
>       * version of the type.
>       */
> +    @SuppressWarnings("serial") // serialVersionUID in an interface is ineffectual
>      static final long serialVersionUID = 5187144804936595022L;
> 
>      /**
> --- old/src/java.base/share/classes/java/security/interfaces/RSAPublicKey.java 2018-08-06 12:04:50.706000999 -0700
> +++ new/src/java.base/share/classes/java/security/interfaces/RSAPublicKey.java 2018-08-06 12:04:50.554000999 -0700
> @@ -42,6 +42,7 @@
>       * serialization compatibility with a previous
>       * version of the type.
>       */
> +    @SuppressWarnings("serial") // serialVersionUID in an interface is ineffectual
>      static final long serialVersionUID = -8727434096241101194L;
> 
>      /**
> --- old/src/java.base/share/classes/javax/crypto/SecretKey.java 2018-08-06 12:04:51.142000999 -0700
> +++ new/src/java.base/share/classes/javax/crypto/SecretKey.java 2018-08-06 12:04:50.986000999 -0700
> @@ -64,5 +64,6 @@
>       * The class fingerprint that is set to indicate serialization
>       * compatibility since J2SE 1.4.
>       */
> +    @SuppressWarnings("serial") // serialVersionUID in an interface is ineffectual
>      static final long serialVersionUID = -4795878709595146952L;
>  }
> --- old/src/java.base/share/classes/javax/crypto/interfaces/DHPrivateKey.java 2018-08-06 12:04:51.550000999 -0700
> +++ new/src/java.base/share/classes/javax/crypto/interfaces/DHPrivateKey.java 2018-08-06 12:04:51.398000999 -0700
> @@ -42,6 +42,7 @@
>       * The class fingerprint that is set to indicate serialization
>       * compatibility since J2SE 1.4.
>       */
> +    @SuppressWarnings("serial") // serialVersionUID in an interface is ineffectual
>      static final long serialVersionUID = 2211791113380396553L;
> 
>      /**
> --- old/src/java.base/share/classes/javax/crypto/interfaces/DHPublicKey.java 2018-08-06 12:04:51.966000999 -0700
> +++ new/src/java.base/share/classes/javax/crypto/interfaces/DHPublicKey.java 2018-08-06 12:04:51.810000999 -0700
> @@ -42,6 +42,7 @@
>       * The class fingerprint that is set to indicate serialization
>       * compatibility since J2SE 1.4.
>       */
> +    @SuppressWarnings("serial") // serialVersionUID in an interface is ineffectual
>      static final long serialVersionUID = -6628103563352519193L;
> 
>      /**
> --- old/src/java.base/share/classes/javax/crypto/interfaces/PBEKey.java 2018-08-06 12:04:52.390000999 -0700
> +++ new/src/java.base/share/classes/javax/crypto/interfaces/PBEKey.java 2018-08-06 12:04:52.238000999 -0700
> @@ -42,6 +42,7 @@
>       * The class fingerprint that is set to indicate serialization
>       * compatibility since J2SE 1.4.
>       */
> +    @SuppressWarnings("serial") // serialVersionUID in an interface is ineffectual
>      static final long serialVersionUID = -1430015993304333921L;
> 
>      /**
> --- old/src/java.base/share/classes/sun/security/internal/interfaces/TlsMasterSecret.java 2018-08-06 12:04:52.814000999 -0700
> +++ new/src/java.base/share/classes/sun/security/internal/interfaces/TlsMasterSecret.java 2018-08-06 12:04:52.658000999 -0700
> @@ -44,6 +44,7 @@
>  @Deprecated
>  public interface TlsMasterSecret extends SecretKey {
> 
> +    @SuppressWarnings("serial") // serialVersionUID in an interface is ineffectual
>      public static final long serialVersionUID = -461748105810469773L;
> 
>      /**
> --- old/src/java.naming/share/classes/javax/naming/Name.java 2018-08-06 12:04:53.294000999 -0700
> +++ new/src/java.naming/share/classes/javax/naming/Name.java 2018-08-06 12:04:53.126000999 -0700
> @@ -64,6 +64,7 @@
>      * serialization compatibility with a previous
>      * version of the class.
>      */
> +    @SuppressWarnings("serial") // serialVersionUID in an interface is ineffectual
>      static final long serialVersionUID = -3617482732056931635L;
> 
>      /**
> --- old/src/java.naming/share/classes/javax/naming/directory/Attribute.java 2018-08-06 12:04:53.702000999 -0700
> +++ new/src/java.naming/share/classes/javax/naming/directory/Attribute.java 2018-08-06 12:04:53.550000999 -0700
> @@ -336,5 +336,6 @@
>      /**
>       * Use serialVersionUID from JNDI 1.1.1 for interoperability.
>       */
> +    @SuppressWarnings("serial") // serialVersionUID in an interface is ineffectual
>      static final long serialVersionUID = 8707690322213556804L;
>  }
> --- old/src/java.rmi/share/classes/java/rmi/server/RemoteRef.java 2018-08-06 12:04:54.098000999 -0700
> +++ new/src/java.rmi/share/classes/java/rmi/server/RemoteRef.java 2018-08-06 12:04:53.942000999 -0700
> @@ -39,6 +39,7 @@
>  public interface RemoteRef extends java.io.Externalizable {
> 
>      /** indicate compatibility with JDK 1.1.x version of class. */
> +    @SuppressWarnings("serial") // serialVersionUID in an interface is ineffectual
>      static final long serialVersionUID = 3632638527362204081L;
> 
>      /**
> --- old/src/java.rmi/share/classes/java/rmi/server/ServerRef.java 2018-08-06 12:04:54.494000999 -0700
> +++ new/src/java.rmi/share/classes/java/rmi/server/ServerRef.java 2018-08-06 12:04:54.338000999 -0700
> @@ -39,6 +39,7 @@
>  public interface ServerRef extends RemoteRef {
> 
>      /** indicate compatibility with JDK 1.1.x version of class. */
> +    @SuppressWarnings("serial") // serialVersionUID in an interface is ineffectual
>      static final long serialVersionUID = -4557750989390278438L;
> 
>      /**
> 
> 
> 

 <http://oracle.com/us/design/oracle-email-sig-198324.gif>
 <http://oracle.com/us/design/oracle-email-sig-198324.gif> <http://oracle.com/us/design/oracle-email-sig-198324.gif>
 <http://oracle.com/us/design/oracle-email-sig-198324.gif>Lance Andersen| Principal Member of Technical Staff | +1.781.442.2037
Oracle Java Engineering 
1 Network Drive 
Burlington, MA 01803
Lance.Andersen at oracle.com <mailto:Lance.Andersen at oracle.com>





More information about the core-libs-dev mailing list