From 4b9bf9903dd71b0f34da89ebc3397ff180881c5a Mon Sep 17 00:00:00 2001 From: Stuart Marks Date: Fri, 25 Mar 2022 17:59:51 -0700 Subject: [PATCH 1/3] Make ObjectStreamClass final. --- src/java.base/share/classes/java/io/ObjectStreamClass.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/java.base/share/classes/java/io/ObjectStreamClass.java b/src/java.base/share/classes/java/io/ObjectStreamClass.java index c41e8b1744a08..9a3f96d07852c 100644 --- a/src/java.base/share/classes/java/io/ObjectStreamClass.java +++ b/src/java.base/share/classes/java/io/ObjectStreamClass.java @@ -80,7 +80,7 @@ * Java Object Serialization Specification, Section 4, "Class Descriptors" * @since 1.1 */ -public class ObjectStreamClass implements Serializable { +public final class ObjectStreamClass implements Serializable { /** serialPersistentFields value indicating no serializable fields */ public static final ObjectStreamField[] NO_FIELDS = From 77b6d79f70038a41686e497b8d2aada57ed35b40 Mon Sep 17 00:00:00 2001 From: Stuart Marks Date: Mon, 28 Mar 2022 22:53:59 -0700 Subject: [PATCH 2/3] Adjust nonfinal CSMs and rework error reporting in CheckCSMs.java test --- .../internal/reflect/CallerSensitive/CheckCSMs.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/test/jdk/jdk/internal/reflect/CallerSensitive/CheckCSMs.java b/test/jdk/jdk/internal/reflect/CallerSensitive/CheckCSMs.java index 35dfb8d19c373..35135a5e3bc82 100644 --- a/test/jdk/jdk/internal/reflect/CallerSensitive/CheckCSMs.java +++ b/test/jdk/jdk/internal/reflect/CallerSensitive/CheckCSMs.java @@ -68,7 +68,6 @@ public class CheckCSMs { // over time. Do not add any new one to this list. private static Set KNOWN_NON_FINAL_CSMS = Set.of("java/io/ObjectStreamField#getType ()Ljava/lang/Class;", - "java/io/ObjectStreamClass#forClass ()Ljava/lang/Class;", "java/lang/Runtime#load (Ljava/lang/String;)V", "java/lang/Runtime#loadLibrary (Ljava/lang/String;)V", "java/lang/Thread#getContextClassLoader ()Ljava/lang/ClassLoader;", @@ -91,11 +90,13 @@ public static void main(String[] args) throws Exception { CheckCSMs checkCSMs = new CheckCSMs(); Set result = checkCSMs.run(getPlatformClasses()); if (!KNOWN_NON_FINAL_CSMS.equals(result)) { - Set diff = new HashSet<>(result); - diff.removeAll(KNOWN_NON_FINAL_CSMS); - throw new RuntimeException("Unexpected non-final instance method: " + - result.stream().sorted() - .collect(Collectors.joining("\n", "\n", ""))); + Set extras = new HashSet<>(result); + extras.removeAll(KNOWN_NON_FINAL_CSMS); + Set missing = new HashSet<>(KNOWN_NON_FINAL_CSMS); + missing.removeAll(result); + throw new RuntimeException("Mismatch in non-final instance methods.\n" + + "Extra methods:\n" + String.join("\n", extras) + "\n" + + "Missing methods:\n" + String.join("\n", missing) + "\n"); } // check if all csm methods with a trailing Class parameter are supported From 7ca24f1d8c2354ef47fc421dd56d106023aa0d26 Mon Sep 17 00:00:00 2001 From: Stuart Marks Date: Tue, 29 Mar 2022 23:12:40 -0700 Subject: [PATCH 3/3] Update copyright year. --- test/jdk/jdk/internal/reflect/CallerSensitive/CheckCSMs.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/jdk/jdk/internal/reflect/CallerSensitive/CheckCSMs.java b/test/jdk/jdk/internal/reflect/CallerSensitive/CheckCSMs.java index 35135a5e3bc82..0a9d75e27a87c 100644 --- a/test/jdk/jdk/internal/reflect/CallerSensitive/CheckCSMs.java +++ b/test/jdk/jdk/internal/reflect/CallerSensitive/CheckCSMs.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017, 2021, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2017, 2022, 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