[crac] RFR: Merge jdk:jdk-25+14
Dmitry Cherepanov
dcherepanov at openjdk.org
Tue Jun 3 12:33:27 UTC 2025
This PR includes merges for tags between jdk-25+11 and jdk-25+14, attaching output of --diff-merges=remerge for each merge
<details>
<summary>jdk-25+11</summary>
commit e16e79c9aa23cbb795bfe44f3562ced6261841f3
Merge: 19d203aee40 0131c1bfd8c
Author: Dmitry Cherepanov <dcherepanov at azul.com>
Date: Mon Jun 2 14:36:10 2025 +0400
Merge with jdk-25+11
diff --git a/make/test/BuildTestLib.gmk b/make/test/BuildTestLib.gmk
remerge CONFLICT (content): Merge conflict in make/test/BuildTestLib.gmk
index a37fbf7dd26..2a7ffaa525e 100644
--- a/make/test/BuildTestLib.gmk
+++ b/make/test/BuildTestLib.gmk
@@ -53,17 +53,13 @@ $(eval $(call SetupJavaCompilation, BUILD_WB_JAR, \
TARGETS += $(BUILD_WB_JAR)
ifeq ($(call isTargetOs, linux), false)
- BUILD_TEST_LIB_JAR_EXCLUDES := jdk/test/lib/containers
+ BUILD_TEST_LIB_JAR_EXCLUDES := jdk/test/lib/containers/cgroup jdk/test/lib/containers/systemd
endif
$(eval $(call SetupJavaCompilation, BUILD_TEST_LIB_JAR, \
TARGET_RELEASE := $(TARGET_RELEASE_NEWJDK_UPGRADED), \
SRC := $(TEST_LIB_SOURCE_DIR), \
-<<<<<<< 19d203aee40 (8357984: [CRaC] Improve new properties installation code)
- EXCLUDES := jdk/test/lib/containers/cgroup jdk/test/lib/containers/systemd jdk/test/lib/security, \
-=======
EXCLUDES := $(BUILD_TEST_LIB_JAR_EXCLUDES), \
->>>>>>> 0131c1bfd8c (8349953: Avoid editing AOTConfiguration file in "make test JTREG=AOT_JDK=true")
BIN := $(TEST_LIB_SUPPORT)/test-lib_classes, \
HEADERS := $(TEST_LIB_SUPPORT)/test-lib_headers, \
JAR := $(TEST_LIB_SUPPORT)/test-lib.jar, \
</details>
Resolved conflict after [JDK-8346050](https://bugs.openjdk.org/browse/JDK-8346050)
<details>
<summary>jdk-25+12</summary>
commit 5d7098526ef5333eb8002ef7611c0e2441bccef8
Merge: e16e79c9aa2 78c18cfbcee
Author: Dmitry Cherepanov <dcherepanov at azul.com>
Date: Tue Jun 3 00:05:47 2025 +0400
Merge with jdk-25+12
diff --git a/src/hotspot/share/classfile/classLoader.cpp b/src/hotspot/share/classfile/classLoader.cpp
remerge CONFLICT (content): Merge conflict in src/hotspot/share/classfile/classLoader.cpp
index 2963d66d561..2449dbc46b4 100644
--- a/src/hotspot/share/classfile/classLoader.cpp
+++ b/src/hotspot/share/classfile/classLoader.cpp
@@ -745,7 +745,6 @@ void ClassLoader::add_to_boot_append_entries(ClassPathEntry *new_entry) {
}
}
-<<<<<<< e16e79c9aa2 (Merge with jdk-25+11)
GrowableArray<int> ClassLoader::get_classpath_entry_fds() {
GrowableArray<int> fds;
assert(Thread::current()->is_VM_thread(), "should be called from VM op");
@@ -755,58 +754,9 @@ GrowableArray<int> ClassLoader::get_classpath_entry_fds() {
fds.append(((ClassPathZipEntry *) entry)->get_fd());
}
}
-#if INCLUDE_CDS
- // Probably not needed as _app_classpath_entries is filled only when dumping CDS classes
- for (ClassPathEntry *entry = _app_classpath_entries; entry != nullptr; entry = entry->next()) {
- if (entry->is_jar_file()) {
- fds.append(((ClassPathZipEntry *) entry)->get_fd());
- }
- }
-#endif // INCLUDE_CDS
return fds;
}
-// Record the path entries specified in -cp during dump time. The recorded
-// information will be used at runtime for loading the archived app classes.
-//
-// Note that at dump time, ClassLoader::_app_classpath_entries are NOT used for
-// loading app classes. Instead, the app class are loaded by the
-// jdk/internal/loader/ClassLoaders$AppClassLoader instance.
-bool ClassLoader::add_to_app_classpath_entries(JavaThread* current,
- ClassPathEntry* entry,
- bool check_for_duplicates) {
-#if INCLUDE_CDS
- assert(entry != nullptr, "ClassPathEntry should not be nullptr");
- ClassPathEntry* e = _app_classpath_entries;
- if (check_for_duplicates) {
- while (e != nullptr) {
- if (strcmp(e->name(), entry->name()) == 0 &&
- e->from_class_path_attr() == entry->from_class_path_attr()) {
- // entry already exists
- return false;
- }
- e = e->next();
- }
- }
-
- // The entry does not exist, add to the list
- if (_app_classpath_entries == nullptr) {
- assert(_last_app_classpath_entry == nullptr, "Sanity");
- _app_classpath_entries = _last_app_classpath_entry = entry;
- } else {
- _last_app_classpath_entry->set_next(entry);
- _last_app_classpath_entry = entry;
- }
-
- if (entry->is_jar_file()) {
- ClassLoaderExt::process_jar_manifest(current, entry);
- }
-#endif
- return true;
-}
-
-=======
->>>>>>> 78c18cfbcee (8349399: GHA: Add static-jdk build on linux-x64)
// Returns true IFF the file/dir exists and the entry was successfully created.
bool ClassLoader::update_class_path_entry_list(JavaThread* current, const char *path) {
struct stat st;
diff --git a/src/hotspot/share/logging/logAsyncWriter.cpp b/src/hotspot/share/logging/logAsyncWriter.cpp
remerge CONFLICT (content): Merge conflict in src/hotspot/share/logging/logAsyncWriter.cpp
index 8214650364f..b9bdf787ea8 100644
--- a/src/hotspot/share/logging/logAsyncWriter.cpp
+++ b/src/hotspot/share/logging/logAsyncWriter.cpp
@@ -211,19 +211,14 @@ bool AsyncLogWriter::enqueue(LogFileStreamOutput& output, LogMessageBuffer::Iter
}
AsyncLogWriter::AsyncLogWriter()
-<<<<<<< e16e79c9aa2 (Merge with jdk-25+11)
- : _flush_sem(0), _lock(), _block_async(), _data_available(false),
- _initialized(false),
- _stats() {
-=======
: _flush_sem(0),
_producer_lock(),
_consumer_lock(),
+ _block_async(),
_data_available(false),
_initialized(false),
_stats(),
_stalled_message(nullptr) {
->>>>>>> 78c18cfbcee (8349399: GHA: Add static-jdk build on linux-x64)
size_t size = AsyncLogBufferSize / 2;
_buffer = new Buffer(size);
@@ -295,14 +290,11 @@ void AsyncLogWriter::run() {
});
_data_available = false;
}
-<<<<<<< e16e79c9aa2 (Merge with jdk-25+11)
- write(snapshot);
+
+ bool saw_flush_token = write(snapshot);
_block_async.lock();
_block_async.unlock();
-=======
-
- bool saw_flush_token = write(snapshot);
// Any stalled message must be written *after* the buffer has been written.
// This is because we try hard to output messages in program-order.
@@ -318,7 +310,6 @@ void AsyncLogWriter::run() {
if (saw_flush_token) {
_flush_sem.signal(1);
}
->>>>>>> 78c18cfbcee (8349399: GHA: Add static-jdk build on linux-x64)
}
}
diff --git a/src/hotspot/share/logging/logAsyncWriter.hpp b/src/hotspot/share/logging/logAsyncWriter.hpp
remerge CONFLICT (content): Merge conflict in src/hotspot/share/logging/logAsyncWriter.hpp
index 72d86571ef6..7d678e8f7be 100644
--- a/src/hotspot/share/logging/logAsyncWriter.hpp
+++ b/src/hotspot/share/logging/logAsyncWriter.hpp
@@ -162,17 +162,13 @@ class AsyncLogWriter : public NonJavaThread {
static AsyncLogWriter* _instance;
Semaphore _flush_sem;
// Can't use a Monitor here as we need a low-level API that can be used without Thread::current().
-<<<<<<< e16e79c9aa2 (Merge with jdk-25+11)
- PlatformMonitor _lock;
- // for asynchronous thread run()
- PlatformMonitor _block_async;
-=======
// Producers take both locks in the order producer lock and then consumer lock.
// The consumer protects the buffers and performs all communication between producer and consumer via wait/notify.
// This allows a producer to await progress from the consumer thread (by only releasing the producer lock)), whilst preventing all other producers from progressing.
PlatformMonitor _producer_lock;
PlatformMonitor _consumer_lock;
->>>>>>> 78c18cfbcee (8349399: GHA: Add static-jdk build on linux-x64)
+ // for asynchronous thread run()
+ PlatformMonitor _block_async;
bool _data_available;
// _initialized is set to true if the constructor succeeds
volatile bool _initialized;
diff --git a/src/hotspot/share/logging/logConfiguration.cpp b/src/hotspot/share/logging/logConfiguration.cpp
remerge CONFLICT (content): Merge conflict in src/hotspot/share/logging/logConfiguration.cpp
index a217029aad3..2843ed7ac0a 100644
--- a/src/hotspot/share/logging/logConfiguration.cpp
+++ b/src/hotspot/share/logging/logConfiguration.cpp
@@ -724,9 +724,6 @@ void LogConfiguration::notify_update_listeners() {
}
}
-<<<<<<< e16e79c9aa2 (Merge with jdk-25+11)
-bool LogConfiguration::_async_mode = false;
-
bool LogConfiguration::is_fd_used(int fd) {
assert(fd != -1, "fd must be valid");
for (size_t i = 0; i < _n_outputs; i++) {
@@ -747,7 +744,8 @@ void LogConfiguration::reopen() {
for (size_t i = 0; i < _n_outputs; i++) {
_outputs[i]->reopen();
}
-=======
+}
+
LogConfiguration::AsyncMode LogConfiguration::_async_mode = AsyncMode::Off;
bool LogConfiguration::parse_async_argument(const char* async_tail) {
@@ -764,5 +762,4 @@ bool LogConfiguration::parse_async_argument(const char* async_tail) {
ret = false;
}
return ret;
->>>>>>> 78c18cfbcee (8349399: GHA: Add static-jdk build on linux-x64)
}
</details>
Resolved conflicts after [JDK-8280682](https://bugs.openjdk.org/browse/JDK-8280682) and [JDK-8323807](https://bugs.openjdk.org/browse/JDK-8323807)
<details>
<summary>jdk-25+13</summary>
commit 17e0c040f48f9aaad95f41e53936f2b1276bbee0
Merge: 5d7098526ef 11a37c829c1
Author: Dmitry Cherepanov <dcherepanov at azul.com>
Date: Tue Jun 3 00:51:26 2025 +0400
Merge with jdk-25+13
diff --git a/src/java.base/share/classes/jdk/internal/jimage/BasicImageReader.java b/src/java.base/share/classes/jdk/internal/jimage/BasicImageReader.java
remerge CONFLICT (content): Merge conflict in src/java.base/share/classes/jdk/internal/jimage/BasicImageReader.java
index 2fafade2835..1ffb125ce7a 100644
--- a/src/java.base/share/classes/jdk/internal/jimage/BasicImageReader.java
+++ b/src/java.base/share/classes/jdk/internal/jimage/BasicImageReader.java
@@ -85,11 +85,7 @@ public Boolean run() {
private final Decompressor decompressor;
private Object cracResource;
-<<<<<<< 5d7098526ef (Merge with jdk-25+12)
- @SuppressWarnings("this-escape")
-=======
- @SuppressWarnings({ "removal", "this-escape", "suppression" })
->>>>>>> 11a37c829c1 (8351165: Remove unused includes from vmStructs)
+ @SuppressWarnings({ "this-escape", "suppression" })
protected BasicImageReader(Path path, ByteOrder byteOrder)
throws IOException {
this.imagePath = Objects.requireNonNull(path);
</details>
Resolved conflict after [JDK-8343478](https://bugs.openjdk.org/browse/JDK-8343478)
<details>
<summary>jdk-25+14</summary>
commit dfd414f20be9f7b244f8d3050c648aacab7057f5 (HEAD -> merge-jdk, dmitry-crac/merge-jdk)
Merge: 17e0c040f48 a347ecdedc0
Author: Dmitry Cherepanov <dcherepanov at azul.com>
Date: Tue Jun 3 01:26:54 2025 +0400
Merge with jdk-25+14
diff --git a/src/java.base/unix/classes/sun/nio/ch/DatagramDispatcher.java b/src/java.base/unix/classes/sun/nio/ch/DatagramDispatcher.java
remerge CONFLICT (content): Merge conflict in src/java.base/unix/classes/sun/nio/ch/DatagramDispatcher.java
index 76fde4077cf..8f1692f0e4d 100644
--- a/src/java.base/unix/classes/sun/nio/ch/DatagramDispatcher.java
+++ b/src/java.base/unix/classes/sun/nio/ch/DatagramDispatcher.java
@@ -59,18 +59,7 @@ long writev(FileDescriptor fd, long address, int len) throws IOException {
return writev0(fd, address, len);
}
-<<<<<<< 17e0c040f48 (Merge with jdk-25+13)
- void close(FileDescriptor fd) throws IOException {
- closeAndMark(fd);
- }
-
- void preClose(FileDescriptor fd) throws IOException {
- preClose0(fd);
- }
-
-=======
@Override
->>>>>>> a347ecdedc0 (8350905: Shenandoah: Releasing a WeakHandle's referent may extend its lifetime)
void dup(FileDescriptor fd1, FileDescriptor fd2) throws IOException {
dup0(fd1, fd2);
}
diff --git a/src/java.base/unix/classes/sun/nio/ch/SocketDispatcher.java b/src/java.base/unix/classes/sun/nio/ch/SocketDispatcher.java
remerge CONFLICT (content): Merge conflict in src/java.base/unix/classes/sun/nio/ch/SocketDispatcher.java
index 2329ccfd66d..ebc4b2e8fbe 100644
--- a/src/java.base/unix/classes/sun/nio/ch/SocketDispatcher.java
+++ b/src/java.base/unix/classes/sun/nio/ch/SocketDispatcher.java
@@ -70,17 +70,6 @@ long writev(FileDescriptor fd, long address, int len) throws IOException {
return writev0(fd, address, len);
}
-<<<<<<< 17e0c040f48 (Merge with jdk-25+13)
- void close(FileDescriptor fd) throws IOException {
- closeAndMark(fd);
- }
-
- void preClose(FileDescriptor fd) throws IOException {
- preClose0(fd);
- }
-
-=======
->>>>>>> a347ecdedc0 (8350905: Shenandoah: Releasing a WeakHandle's referent may extend its lifetime)
// -- Native methods --
private static native int read0(FileDescriptor fd, long address, int len)
diff --git a/src/java.base/unix/classes/sun/nio/ch/UnixDispatcher.java b/src/java.base/unix/classes/sun/nio/ch/UnixDispatcher.java
remerge CONFLICT (content): Merge conflict in src/java.base/unix/classes/sun/nio/ch/UnixDispatcher.java
index 934f57bea9e..0af939d24bc 100644
--- a/src/java.base/unix/classes/sun/nio/ch/UnixDispatcher.java
+++ b/src/java.base/unix/classes/sun/nio/ch/UnixDispatcher.java
@@ -37,7 +37,6 @@
abstract class UnixDispatcher extends NativeDispatcher {
-<<<<<<< 17e0c040f48 (Merge with jdk-25+13)
static class ResourceProxy implements JDKResource {
@Override
public void beforeCheckpoint(Context<? extends Resource> context) throws Exception {
@@ -58,14 +57,11 @@ public void afterRestore(Context<? extends Resource> context)
static ResourceProxy resourceProxy = new ResourceProxy();
-=======
@Override
->>>>>>> a347ecdedc0 (8350905: Shenandoah: Releasing a WeakHandle's referent may extend its lifetime)
void close(FileDescriptor fd) throws IOException {
- close0(fd);
+ closeAndMark(fd);
}
-<<<<<<< 17e0c040f48 (Merge with jdk-25+13)
void preClose(FileDescriptor fd) throws IOException {
boolean doPreclose = true;
synchronized (closeLock) {
@@ -120,7 +116,6 @@ static void closeAndMark(FileDescriptor fd) throws IOException {
fdAccess.close(fd);
}
-=======
@Override
void implPreClose(FileDescriptor fd, long reader, long writer) throws IOException {
preClose0(fd);
@@ -130,7 +125,6 @@ void implPreClose(FileDescriptor fd, long reader, long writer) throws IOExceptio
NativeThread.signal(writer);
}
->>>>>>> a347ecdedc0 (8350905: Shenandoah: Releasing a WeakHandle's referent may extend its lifetime)
private static native void close0(FileDescriptor fd) throws IOException;
private static native void preClose0(FileDescriptor fd) throws IOException;
</details>
Resolved conflicts after [JDK-8351458](https://bugs.openjdk.org/browse/JDK-8351458)
-------------
Commit messages:
- fix whitespace error
- Merge with jdk-25+14
- 8350905: Shenandoah: Releasing a WeakHandle's referent may extend its lifetime
- 8351699: Problem list com/sun/jdi/JdbStopInNotificationThreadTest.java with ZGC
- 8351444: Shenandoah: Class Unloading may encounter recycled oops
- 8351640: Print reason for making method not entrant
- 8351142: Add JFR monitor deflation and statistics events
- 8351881: Tidy complains about missing "alt" attribute
- 8350982: -server|-client causes fatal exception on static JDK
- 8303770: Remove Baltimore root certificate expiring in May 2025
- ... and 329 more: https://git.openjdk.org/crac/compare/19d203ae...00d3d867
The webrevs contain the adjustments done while merging with regards to each parent branch:
- crac: https://webrevs.openjdk.org/?repo=crac&pr=236&range=00.0
- jdk:jdk-25+14: https://webrevs.openjdk.org/?repo=crac&pr=236&range=00.1
Changes: https://git.openjdk.org/crac/pull/236/files
Stats: 91105 lines in 2011 files changed: 44366 ins; 31941 del; 14798 mod
Patch: https://git.openjdk.org/crac/pull/236.diff
Fetch: git fetch https://git.openjdk.org/crac.git pull/236/head:pull/236
PR: https://git.openjdk.org/crac/pull/236
More information about the crac-dev
mailing list