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

joe darcy joe.darcy at oracle.com
Mon Aug 6 21:30:55 UTC 2018


Hi Roger,

Even if currently less commonly used, I think "ineffectual" better 
captures the intention of what I want to convey in the comment than 
"ineffective."

Thanks all for the reviews; cheers,

-Joe


On 8/6/2018 12:44 PM, Roger Riggs wrote:
> Hi Joe,
>
> Looks fine.  I would probably have used "ineffective" instead of 
> "ineffectual".
>
> (Googling "define ineffective" and "define ineffectual" shows an 
> interesting graph of
> the use of the term with ineffective growing and ineffectual dropping 
> in use.
> Look under the more tag)
>
> Regards, Roger
>
>
> On 8/6/2018 3:11 PM, joe darcy 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;
>>
>>      /**
>>
>>
>>
>



More information about the core-libs-dev mailing list