mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-27 06:45:07 +02:00
8283715: Update ObjectStreamClass to be final
Reviewed-by: darcy, jpai, mchung, dfuchs
This commit is contained in:
parent
d9d19e96b1
commit
ae57258b46
2 changed files with 9 additions and 8 deletions
|
@ -80,7 +80,7 @@ import static java.io.ObjectStreamField.*;
|
|||
* <cite>Java Object Serialization Specification,</cite> Section 4, "Class Descriptors"</a>
|
||||
* @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 =
|
||||
|
|
|
@ -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
|
||||
|
@ -68,7 +68,6 @@ public class CheckCSMs {
|
|||
// over time. Do not add any new one to this list.
|
||||
private static Set<String> 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 class CheckCSMs {
|
|||
CheckCSMs checkCSMs = new CheckCSMs();
|
||||
Set<String> result = checkCSMs.run(getPlatformClasses());
|
||||
if (!KNOWN_NON_FINAL_CSMS.equals(result)) {
|
||||
Set<String> 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<String> extras = new HashSet<>(result);
|
||||
extras.removeAll(KNOWN_NON_FINAL_CSMS);
|
||||
Set<String> 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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue