From 5fccabff15ae8bcc3d03156fa331bbc0fefb0cbe Mon Sep 17 00:00:00 2001 From: Erik Gahlin Date: Thu, 2 Oct 2025 15:51:46 +0000 Subject: [PATCH] 8368670: Deadlock in JFR on event register + class load Reviewed-by: mgronlun --- .../share/classes/jdk/jfr/internal/MetadataRepository.java | 2 +- src/jdk.jfr/share/classes/jdk/jfr/internal/SettingsManager.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/jdk.jfr/share/classes/jdk/jfr/internal/MetadataRepository.java b/src/jdk.jfr/share/classes/jdk/jfr/internal/MetadataRepository.java index e574ab47992..22d55e6e99f 100644 --- a/src/jdk.jfr/share/classes/jdk/jfr/internal/MetadataRepository.java +++ b/src/jdk.jfr/share/classes/jdk/jfr/internal/MetadataRepository.java @@ -291,7 +291,7 @@ public final class MetadataRepository { } } - synchronized boolean isEnabled(String eventName) { + boolean isEnabled(String eventName) { return settingsManager.isEnabled(eventName); } diff --git a/src/jdk.jfr/share/classes/jdk/jfr/internal/SettingsManager.java b/src/jdk.jfr/share/classes/jdk/jfr/internal/SettingsManager.java index 84caf7cb460..bd8fa078dc8 100644 --- a/src/jdk.jfr/share/classes/jdk/jfr/internal/SettingsManager.java +++ b/src/jdk.jfr/share/classes/jdk/jfr/internal/SettingsManager.java @@ -129,7 +129,7 @@ final class SettingsManager { } } - private Map availableSettings = new LinkedHashMap<>(); + private volatile Map availableSettings = new LinkedHashMap<>(); void setSettings(List> activeSettings, boolean writeSettingEvents) { // store settings so they are available if a new event class is loaded