From 71c9c1c8da7614b43328fb2faff835e0233950ec Mon Sep 17 00:00:00 2001 From: Sergey Bylokhov Date: Tue, 21 Oct 2025 17:05:11 -0700 Subject: [PATCH 1/2] 8370368: Apply java.io.Serial annotations in java.security.jgss --- .../share/classes/sun/security/jgss/krb5/Krb5Context.java | 4 +++- .../share/classes/sun/security/krb5/Asn1Exception.java | 3 +++ .../classes/sun/security/krb5/KrbCryptoException.java | 3 +++ .../share/classes/sun/security/krb5/KrbException.java | 4 +++- .../share/classes/sun/security/krb5/RealmException.java | 5 ++++- .../share/classes/sun/security/krb5/internal/KRBError.java | 7 +++++-- .../sun/security/krb5/internal/KdcErrException.java | 5 ++++- .../sun/security/krb5/internal/KrbApErrException.java | 5 ++++- .../sun/security/krb5/internal/KrbErrException.java | 3 +++ .../classes/sun/security/krb5/internal/tools/Ktab.java | 2 +- 10 files changed, 33 insertions(+), 8 deletions(-) diff --git a/src/java.security.jgss/share/classes/sun/security/jgss/krb5/Krb5Context.java b/src/java.security.jgss/share/classes/sun/security/jgss/krb5/Krb5Context.java index 7df3d8d2de094..044000d5fda3c 100644 --- a/src/java.security.jgss/share/classes/sun/security/jgss/krb5/Krb5Context.java +++ b/src/java.security.jgss/share/classes/sun/security/jgss/krb5/Krb5Context.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2024, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2025, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -37,6 +37,7 @@ import java.io.IOException; import java.io.ObjectInputStream; import java.io.OutputStream; +import java.io.Serial; import java.security.*; import javax.security.auth.Subject; import javax.security.auth.kerberos.KerberosCredMessage; @@ -1332,6 +1333,7 @@ GSSCaller getCaller() { * The session key returned by inquireSecContext(KRB5_INQ_SSPI_SESSION_KEY) */ static class KerberosSessionKey implements Key { + @Serial private static final long serialVersionUID = 699307378954123869L; @SuppressWarnings("serial") // Not statically typed as Serializable diff --git a/src/java.security.jgss/share/classes/sun/security/krb5/Asn1Exception.java b/src/java.security.jgss/share/classes/sun/security/krb5/Asn1Exception.java index 7899a57158953..8fe5591ffbc4d 100644 --- a/src/java.security.jgss/share/classes/sun/security/krb5/Asn1Exception.java +++ b/src/java.security.jgss/share/classes/sun/security/krb5/Asn1Exception.java @@ -30,8 +30,11 @@ package sun.security.krb5; +import java.io.Serial; + public class Asn1Exception extends KrbException { + @Serial private static final long serialVersionUID = 8291288984575084132L; public Asn1Exception(int i) { diff --git a/src/java.security.jgss/share/classes/sun/security/krb5/KrbCryptoException.java b/src/java.security.jgss/share/classes/sun/security/krb5/KrbCryptoException.java index eda5fcec397fc..24cda1849ffcb 100644 --- a/src/java.security.jgss/share/classes/sun/security/krb5/KrbCryptoException.java +++ b/src/java.security.jgss/share/classes/sun/security/krb5/KrbCryptoException.java @@ -30,6 +30,8 @@ package sun.security.krb5; +import java.io.Serial; + /** * KrbCryptoException is a wrapper exception for exceptions thrown by JCE. * @@ -37,6 +39,7 @@ */ public class KrbCryptoException extends KrbException { + @Serial private static final long serialVersionUID = -1657367919979982250L; public KrbCryptoException(String s) { diff --git a/src/java.security.jgss/share/classes/sun/security/krb5/KrbException.java b/src/java.security.jgss/share/classes/sun/security/krb5/KrbException.java index 3fae5c7c2c5b1..434a0b401dd14 100644 --- a/src/java.security.jgss/share/classes/sun/security/krb5/KrbException.java +++ b/src/java.security.jgss/share/classes/sun/security/krb5/KrbException.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2025, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -31,6 +31,7 @@ package sun.security.krb5; +import java.io.Serial; import java.util.Objects; import sun.security.krb5.internal.Krb5; @@ -38,6 +39,7 @@ public class KrbException extends Exception { + @Serial private static final long serialVersionUID = -4993302876451928596L; private int returnCode; diff --git a/src/java.security.jgss/share/classes/sun/security/krb5/RealmException.java b/src/java.security.jgss/share/classes/sun/security/krb5/RealmException.java index 124d1b63ed4a2..461da49c7572b 100644 --- a/src/java.security.jgss/share/classes/sun/security/krb5/RealmException.java +++ b/src/java.security.jgss/share/classes/sun/security/krb5/RealmException.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2025, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -31,8 +31,11 @@ package sun.security.krb5; +import java.io.Serial; + public class RealmException extends KrbException { + @Serial private static final long serialVersionUID = -9100385213693792864L; public RealmException(int i) { diff --git a/src/java.security.jgss/share/classes/sun/security/krb5/internal/KRBError.java b/src/java.security.jgss/share/classes/sun/security/krb5/internal/KRBError.java index db6192ce9ee2c..a764ad468dc73 100644 --- a/src/java.security.jgss/share/classes/sun/security/krb5/internal/KRBError.java +++ b/src/java.security.jgss/share/classes/sun/security/krb5/internal/KRBError.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2024, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2025, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -40,6 +40,7 @@ import sun.security.util.*; import java.io.IOException; import java.io.ObjectInputStream; +import java.io.Serial; import java.math.BigInteger; import java.util.ArrayList; import java.util.Arrays; @@ -85,7 +86,8 @@ */ public class KRBError implements java.io.Serializable { - static final long serialVersionUID = 3643809337475284503L; + @Serial + private static final long serialVersionUID = 3643809337475284503L; private transient int pvno; private transient int msgType; @@ -123,6 +125,7 @@ private void readObject(ObjectInputStream is) } } + @Serial private void writeObject(ObjectOutputStream os) throws IOException { try { diff --git a/src/java.security.jgss/share/classes/sun/security/krb5/internal/KdcErrException.java b/src/java.security.jgss/share/classes/sun/security/krb5/internal/KdcErrException.java index c55670f4b234f..744ba9ba2ac31 100644 --- a/src/java.security.jgss/share/classes/sun/security/krb5/internal/KdcErrException.java +++ b/src/java.security.jgss/share/classes/sun/security/krb5/internal/KdcErrException.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2025, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -31,8 +31,11 @@ package sun.security.krb5.internal; +import java.io.Serial; + public class KdcErrException extends sun.security.krb5.KrbException { + @Serial private static final long serialVersionUID = -8788186031117310306L; public KdcErrException(int i) { diff --git a/src/java.security.jgss/share/classes/sun/security/krb5/internal/KrbApErrException.java b/src/java.security.jgss/share/classes/sun/security/krb5/internal/KrbApErrException.java index 04048cb73bb12..4fd0aec5fa831 100644 --- a/src/java.security.jgss/share/classes/sun/security/krb5/internal/KrbApErrException.java +++ b/src/java.security.jgss/share/classes/sun/security/krb5/internal/KrbApErrException.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2025, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -31,8 +31,11 @@ package sun.security.krb5.internal; +import java.io.Serial; + public class KrbApErrException extends sun.security.krb5.KrbException { + @Serial private static final long serialVersionUID = 7545264413323118315L; public KrbApErrException(int i) { diff --git a/src/java.security.jgss/share/classes/sun/security/krb5/internal/KrbErrException.java b/src/java.security.jgss/share/classes/sun/security/krb5/internal/KrbErrException.java index 62e84959ca9bb..8e5a49dd80277 100644 --- a/src/java.security.jgss/share/classes/sun/security/krb5/internal/KrbErrException.java +++ b/src/java.security.jgss/share/classes/sun/security/krb5/internal/KrbErrException.java @@ -30,8 +30,11 @@ package sun.security.krb5.internal; +import java.io.Serial; + public class KrbErrException extends sun.security.krb5.KrbException { + @Serial private static final long serialVersionUID = 2186533836785448317L; public KrbErrException(int i) { diff --git a/src/java.security.jgss/windows/classes/sun/security/krb5/internal/tools/Ktab.java b/src/java.security.jgss/windows/classes/sun/security/krb5/internal/tools/Ktab.java index ffe2e3196c1ad..dc523210afdd8 100644 --- a/src/java.security.jgss/windows/classes/sun/security/krb5/internal/tools/Ktab.java +++ b/src/java.security.jgss/windows/classes/sun/security/krb5/internal/tools/Ktab.java @@ -83,7 +83,7 @@ public static void main(String[] args) { private static class ExitException extends RuntimeException { @java.io.Serial - static final long serialVersionUID = 0L; + private static final long serialVersionUID = 0L; private final int errorCode; public ExitException(int errorCode) { this.errorCode = errorCode; From 89b4abe21c85d389225712018a13262d9cc08dc6 Mon Sep 17 00:00:00 2001 From: Sergey Bylokhov Date: Thu, 23 Oct 2025 15:29:31 -0700 Subject: [PATCH 2/2] Replace java.io.Serial annotations with @Serial --- .../share/classes/sun/security/jgss/krb5/Krb5Context.java | 2 +- .../classes/sun/security/jgss/krb5/Krb5InitCredential.java | 2 +- .../share/classes/sun/security/krb5/internal/KRBError.java | 2 +- .../windows/classes/sun/security/krb5/internal/tools/Ktab.java | 3 ++- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/java.security.jgss/share/classes/sun/security/jgss/krb5/Krb5Context.java b/src/java.security.jgss/share/classes/sun/security/jgss/krb5/Krb5Context.java index 044000d5fda3c..b118c9ee21573 100644 --- a/src/java.security.jgss/share/classes/sun/security/jgss/krb5/Krb5Context.java +++ b/src/java.security.jgss/share/classes/sun/security/jgss/krb5/Krb5Context.java @@ -1371,7 +1371,7 @@ public String toString() { * @throws IOException if an I/O error occurs * @throws ClassNotFoundException if a serialized class cannot be loaded */ - @java.io.Serial + @Serial private void readObject(ObjectInputStream stream) throws IOException, ClassNotFoundException { throw new InvalidObjectException diff --git a/src/java.security.jgss/share/classes/sun/security/jgss/krb5/Krb5InitCredential.java b/src/java.security.jgss/share/classes/sun/security/jgss/krb5/Krb5InitCredential.java index 29176ba3c2be6..7aaa8975185f1 100644 --- a/src/java.security.jgss/share/classes/sun/security/jgss/krb5/Krb5InitCredential.java +++ b/src/java.security.jgss/share/classes/sun/security/jgss/krb5/Krb5InitCredential.java @@ -402,7 +402,7 @@ public GSSCredentialSpi impersonate(GSSNameSpi name) throws GSSException { * @throws IOException if an I/O error occurs * @throws ClassNotFoundException if a serialized class cannot be loaded */ - @java.io.Serial + @Serial private void readObject(ObjectInputStream stream) throws IOException, ClassNotFoundException { throw new InvalidObjectException("Krb5InitCredential not deserializable"); diff --git a/src/java.security.jgss/share/classes/sun/security/krb5/internal/KRBError.java b/src/java.security.jgss/share/classes/sun/security/krb5/internal/KRBError.java index a764ad468dc73..46c733824c50e 100644 --- a/src/java.security.jgss/share/classes/sun/security/krb5/internal/KRBError.java +++ b/src/java.security.jgss/share/classes/sun/security/krb5/internal/KRBError.java @@ -114,7 +114,7 @@ public class KRBError implements java.io.Serializable { * @throws IOException if an I/O error occurs * @throws ClassNotFoundException if a serialized class cannot be loaded */ - @java.io.Serial + @Serial private void readObject(ObjectInputStream is) throws IOException, ClassNotFoundException { try { diff --git a/src/java.security.jgss/windows/classes/sun/security/krb5/internal/tools/Ktab.java b/src/java.security.jgss/windows/classes/sun/security/krb5/internal/tools/Ktab.java index dc523210afdd8..bf1ceed8d22ae 100644 --- a/src/java.security.jgss/windows/classes/sun/security/krb5/internal/tools/Ktab.java +++ b/src/java.security.jgss/windows/classes/sun/security/krb5/internal/tools/Ktab.java @@ -36,6 +36,7 @@ import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.Reader; +import java.io.Serial; import java.nio.charset.Charset; import java.text.DateFormat; import java.util.Arrays; @@ -82,7 +83,7 @@ public static void main(String[] args) { } private static class ExitException extends RuntimeException { - @java.io.Serial + @Serial private static final long serialVersionUID = 0L; private final int errorCode; public ExitException(int errorCode) {