[crac] RFR: Merge jdk:jdk-24+27

Dmitry Cherepanov dcherepanov at openjdk.org
Mon Feb 10 12:05:21 UTC 2025


On Wed, 22 Jan 2025 11:13:13 GMT, Dmitry Cherepanov <dcherepanov at openjdk.org> wrote:

> Merge jdk:jdk-24+27
> 
> Attached output of `git log -1 --remerge-diff`
> 
> [remerge-diff.txt](https://github.com/user-attachments/files/18504606/remerge-diff.txt)

<details>

<summary>Conflicts</summary>


commit 7ff0479664927d6c68a7be604dd277558069f18d (HEAD -> merge-jdk, dmitry-crac/merge-jdk)
Merge: e1f8f3534b1 85fedbf6680
Author: Dmitry Cherepanov <dcherepanov at azul.com>
Date:   Wed Jan 22 15:02:16 2025 +0400

    Merge jdk:jdk-24+27

diff --git a/src/hotspot/share/classfile/vmSymbols.hpp b/src/hotspot/share/classfile/vmSymbols.hpp
remerge CONFLICT (content): Merge conflict in src/hotspot/share/classfile/vmSymbols.hpp
index 272b3c84a64..1456138b4f2 100644
--- a/src/hotspot/share/classfile/vmSymbols.hpp
+++ b/src/hotspot/share/classfile/vmSymbols.hpp
@@ -739,17 +739,11 @@ class SerializeClosure;
   template(toFileURL_signature,                             "(Ljava/lang/String;)Ljava/net/URL;")                 \
   template(url_array_classloader_void_signature,            "([Ljava/net/URL;Ljava/lang/ClassLoader;)V")          \
                                                                                                                   \
-<<<<<<< e1f8f3534b1 (Merge jdk:jdk-24+26)
   template(jdk_internal_crac_mirror_Core,          "jdk/internal/crac/mirror/Core")                               \
   template(checkpointRestoreInternal_name,         "checkpointRestoreInternal")                                   \
   template(checkpointRestoreInternal_signature,    "(J)Ljava/lang/String;")                                       \
                                                                                                                   \
-  /* Thread.dump_to_file jcmd */                                                                                  \
-||||||| 8485cb1ca1f
-  /* Thread.dump_to_file jcmd */                                                                                  \
-=======
   /* jcmd Thread.dump_to_file */                                                                                  \
->>>>>>> 85fedbf6680 (8344607: Link Time Optimization - basic support for clang)
   template(jdk_internal_vm_ThreadDumper,           "jdk/internal/vm/ThreadDumper")                                \
   template(dumpThreads_name,                       "dumpThreads")                                                 \
   template(dumpThreadsToJson_name,                 "dumpThreadsToJson")                                           \
diff --git a/src/hotspot/share/runtime/arguments.cpp b/src/hotspot/share/runtime/arguments.cpp
remerge CONFLICT (content): Merge conflict in src/hotspot/share/runtime/arguments.cpp
index 1967de217ba..86ea6a63106 100644
--- a/src/hotspot/share/runtime/arguments.cpp
+++ b/src/hotspot/share/runtime/arguments.cpp
@@ -2183,7 +2183,6 @@ jint Arguments::parse_xss(const JavaVMOption* option, const char* tail, intx* ou
   return JNI_OK;
 }
 
-<<<<<<< e1f8f3534b1 (Merge jdk:jdk-24+26)
 bool Arguments::is_restore_option_set(const JavaVMInitArgs* args) {
   const char* tail;
   // iterate over arguments
@@ -2249,12 +2248,7 @@ bool Arguments::parse_options_for_restore(const JavaVMInitArgs* args) {
   return true;
 }
 
-jint Arguments::parse_each_vm_init_arg(const JavaVMInitArgs* args, bool* patch_mod_javabase, JVMFlagOrigin origin) {
-||||||| 8485cb1ca1f
-jint Arguments::parse_each_vm_init_arg(const JavaVMInitArgs* args, bool* patch_mod_javabase, JVMFlagOrigin origin) {
-=======
 jint Arguments::parse_each_vm_init_arg(const JavaVMInitArgs* args, JVMFlagOrigin origin) {
->>>>>>> 85fedbf6680 (8344607: Link Time Optimization - basic support for clang)
   // For match_option to return remaining or value part of option string
   const char* tail;
 
diff --git a/src/java.base/share/classes/jdk/internal/crac/JDKContext.java b/src/java.base/share/classes/jdk/internal/crac/JDKContext.java
index fb6715d0246..8bb13f7bc68 100644
--- a/src/java.base/share/classes/jdk/internal/crac/JDKContext.java
+++ b/src/java.base/share/classes/jdk/internal/crac/JDKContext.java
@@ -32,7 +32,6 @@
 import jdk.internal.crac.mirror.RestoreException;
 import jdk.internal.access.JavaIOFileDescriptorAccess;
 import jdk.internal.access.SharedSecrets;
-import sun.security.action.GetBooleanAction;
 
 import java.io.File;
 import java.io.FileDescriptor;
@@ -50,7 +49,7 @@ public class JDKContext implements JDKResource {
     // JDKContext by itself is initialized too early when system properties are not set yet
     public static class Properties {
         public static final boolean COLLECT_FD_STACKTRACES =
-                GetBooleanAction.privilegedGetProperty(JDKContext.COLLECT_FD_STACKTRACES_PROPERTY);
+                Boolean.getBoolean(JDKContext.COLLECT_FD_STACKTRACES_PROPERTY);
     }
 
     private WeakHashMap<FileDescriptor, Object> claimedFds;
diff --git a/src/java.base/share/classes/jdk/internal/crac/JDKFdResource.java b/src/java.base/share/classes/jdk/internal/crac/JDKFdResource.java
index a07e22189f6..f7c3f08131f 100644
--- a/src/java.base/share/classes/jdk/internal/crac/JDKFdResource.java
+++ b/src/java.base/share/classes/jdk/internal/crac/JDKFdResource.java
@@ -2,7 +2,6 @@
 
 import jdk.internal.crac.mirror.Context;
 import jdk.internal.crac.mirror.Resource;
-import sun.security.action.GetBooleanAction;
 
 import java.util.function.Supplier;
 
@@ -12,7 +11,7 @@ public abstract class JDKFdResource implements JDKResource {
         "Use -D" + COLLECT_FD_STACKTRACES_PROPERTY + "=true to find the source.";
 
     private static final boolean COLLECT_FD_STACKTRACES =
-        GetBooleanAction.privilegedGetProperty(COLLECT_FD_STACKTRACES_PROPERTY);
+        Boolean.getBoolean(COLLECT_FD_STACKTRACES_PROPERTY);
 
     // No lambdas during clinit...
     protected static Supplier<Exception> NO_EXCEPTION = new Supplier<Exception>() {
diff --git a/src/java.base/share/classes/jdk/internal/crac/JDKFileResource.java b/src/java.base/share/classes/jdk/internal/crac/JDKFileResource.java
index 498f7e40f98..1ce70af6399 100644
--- a/src/java.base/share/classes/jdk/internal/crac/JDKFileResource.java
+++ b/src/java.base/share/classes/jdk/internal/crac/JDKFileResource.java
@@ -4,7 +4,6 @@
 import jdk.internal.crac.mirror.Resource;
 import jdk.internal.crac.mirror.impl.CheckpointOpenFileException;
 import jdk.internal.crac.mirror.impl.CheckpointOpenResourceException;
-import sun.security.action.GetPropertyAction;
 
 import java.io.File;
 import java.io.FileDescriptor;
@@ -21,7 +20,7 @@ public abstract class JDKFileResource extends JDKFdResource {
     private static final Path[] CLASSPATH_ENTRIES;
 
     static {
-        String[] items = GetPropertyAction.privilegedGetProperty("java.class.path")
+        String[] items = System.getProperty("java.class.path")
                 .split(File.pathSeparator);
         CLASSPATH_ENTRIES = new Path[items.length];
         for (int i = 0; i < items.length; i++) {
diff --git a/src/java.base/share/classes/jdk/internal/crac/OpenResourcePolicies.java b/src/java.base/share/classes/jdk/internal/crac/OpenResourcePolicies.java
index 2aae17c4315..f9de647d4cc 100644
--- a/src/java.base/share/classes/jdk/internal/crac/OpenResourcePolicies.java
+++ b/src/java.base/share/classes/jdk/internal/crac/OpenResourcePolicies.java
@@ -2,7 +2,6 @@
 
 import jdk.internal.crac.mirror.Context;
 import jdk.internal.crac.mirror.Resource;
-import sun.security.action.GetPropertyAction;
 
 import java.io.File;
 import java.io.IOException;
@@ -55,7 +54,7 @@ private static synchronized void loadPolicies(boolean isRestore) {
         // prevent loading recursively
         state = isRestore ? State.LOADED_FOR_RESTORE : State.LOADED_FOR_CHECKPOINT;
 
-        String file = GetPropertyAction.privilegedGetProperty(PROPERTY);
+        String file = System.getProperty(PROPERTY);
         if (file == null) {
             return;
         }
diff --git a/src/java.base/share/classes/jdk/internal/crac/mirror/Core.java b/src/java.base/share/classes/jdk/internal/crac/mirror/Core.java
index ef6068af077..c64b9e51af7 100644
--- a/src/java.base/share/classes/jdk/internal/crac/mirror/Core.java
+++ b/src/java.base/share/classes/jdk/internal/crac/mirror/Core.java
@@ -31,7 +31,6 @@
 import jdk.internal.crac.JDKResource;
 import jdk.internal.crac.LoggerContainer;
 import jdk.internal.crac.mirror.impl.*;
-import sun.security.action.GetBooleanAction;
 
 import java.io.PrintWriter;
 import java.io.StringWriter;
@@ -68,7 +67,7 @@ public class Core {
     private static class FlagsHolder {
         private FlagsHolder() {}
         public static final boolean TRACE_STARTUP_TIME =
-            GetBooleanAction.privilegedGetProperty("jdk.crac.trace-startup-time");
+            Boolean.getBoolean("jdk.crac.trace-startup-time");
     }
 
     private static final Context<Resource> globalContext = GlobalContext.createGlobalContextImpl();
diff --git a/src/java.base/share/classes/jdk/internal/crac/mirror/impl/GlobalContext.java b/src/java.base/share/classes/jdk/internal/crac/mirror/impl/GlobalContext.java
index 456872b61a0..034c7051423 100644
--- a/src/java.base/share/classes/jdk/internal/crac/mirror/impl/GlobalContext.java
+++ b/src/java.base/share/classes/jdk/internal/crac/mirror/impl/GlobalContext.java
@@ -2,13 +2,12 @@
 
 import jdk.internal.crac.mirror.Context;
 import jdk.internal.crac.mirror.Resource;
-import sun.security.action.GetPropertyAction;
 
 public class GlobalContext {
     private static final String GLOBAL_CONTEXT_IMPL_PROP = "jdk.crac.globalContext.impl";
 
     public static Context<Resource> createGlobalContextImpl() {
-        String implName = GetPropertyAction.privilegedGetProperty(GLOBAL_CONTEXT_IMPL_PROP, "");
+        String implName = System.getProperty(GLOBAL_CONTEXT_IMPL_PROP, "");
         return switch (implName) {
             case "BlockingOrderedContext" -> new BlockingOrderedContext<>();
             case "OrderedContext" -> new OrderedContext<>();
diff --git a/src/java.base/share/classes/jdk/internal/ref/CleanerImpl.java b/src/java.base/share/classes/jdk/internal/ref/CleanerImpl.java
index bacf824fd0a..5b4016fb2b6 100644
--- a/src/java.base/share/classes/jdk/internal/ref/CleanerImpl.java
+++ b/src/java.base/share/classes/jdk/internal/ref/CleanerImpl.java
@@ -145,10 +145,12 @@ public void run() {
             }
             if (forceCleanup) {
                 ArrayList<PhantomCleanable<?>> refArr = new ArrayList<>();
-                synchronized (phantomCleanableList) {
-                    for (var ref = phantomCleanableList.next; ref != phantomCleanableList; ref = ref.next) {
-                        if (ref.refersTo(null)) {
-                            refArr.add(ref);
+                synchronized (activeList) {
+                    for (var node = activeList.head; node != null; node = node.next) {
+                        for (int i = node.size - 1; i >= 0; --i) {
+                            if (node.arr[i].refersTo(null)) {
+                                refArr.add(node.arr[i]);
+                            }
                         }
                     }
                     for (var ref : refArr) {
@@ -186,7 +188,7 @@ public void run() {
 
     @Override
     public synchronized void beforeCheckpoint(Context<? extends Resource> context) throws Exception {
-        if (phantomCleanableList.isListEmpty()) {
+        if (activeList.isEmpty()) {
             // The thread is already terminated; don't wait for anything
             return;
         }
diff --git a/src/java.base/share/classes/module-info.java b/src/java.base/share/classes/module-info.java
remerge CONFLICT (content): Merge conflict in src/java.base/share/classes/module-info.java
index 29e3d443905..130a560e29b 100644
--- a/src/java.base/share/classes/module-info.java
+++ b/src/java.base/share/classes/module-info.java
@@ -175,16 +175,12 @@
         jdk.net,
         jdk.sctp,
         jdk.crypto.cryptoki;
-<<<<<<< e1f8f3534b1 (Merge jdk:jdk-24+26)
     exports jdk.internal.crac to
         java.rmi,
         jdk.management.agent,
         jdk.sctp;
-||||||| 8485cb1ca1f
-=======
     exports jdk.internal.classfile.components to
         jdk.jfr;
->>>>>>> 85fedbf6680 (8344607: Link Time Optimization - basic support for clang)
     exports jdk.internal.foreign to
         jdk.incubator.vector;
     exports jdk.internal.event to


</details>

-------------

PR Comment: https://git.openjdk.org/crac/pull/188#issuecomment-2647319594


More information about the crac-dev mailing list