From 4ea22f76016a4ec21f6b46a2144629de4adeb026 Mon Sep 17 00:00:00 2001
From: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Date: Mon, 30 Mar 2026 09:32:37 +0000
Subject: [PATCH] Fix server crash when File-Based Debug Logger is enabled
---
opendj-core/src/main/java/org/forgerock/opendj/ldap/spi/LdapMessages.java | 7 +++++++
opendj-server-legacy/src/main/java/org/opends/server/core/LoggerConfigManager.java | 7 ++++++-
2 files changed, 13 insertions(+), 1 deletions(-)
diff --git a/opendj-core/src/main/java/org/forgerock/opendj/ldap/spi/LdapMessages.java b/opendj-core/src/main/java/org/forgerock/opendj/ldap/spi/LdapMessages.java
index b4603a2..23fe1c6 100644
--- a/opendj-core/src/main/java/org/forgerock/opendj/ldap/spi/LdapMessages.java
+++ b/opendj-core/src/main/java/org/forgerock/opendj/ldap/spi/LdapMessages.java
@@ -106,6 +106,13 @@
private LdapResponseMessage(final byte messageType, final int messageId, final Response content) {
super(messageType, messageId, content);
}
+
+ @Override
+ public String toString() {
+ return "LdapResponseMessage(messageType=" + getMessageType()
+ + ", messageId=" + getMessageId()
+ + ", content=" + getContent() + ")";
+ }
}
private static abstract class LdapMessageEnvelope<T> {
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/core/LoggerConfigManager.java b/opendj-server-legacy/src/main/java/org/opends/server/core/LoggerConfigManager.java
index 7bfe1ef..af77296 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/core/LoggerConfigManager.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/core/LoggerConfigManager.java
@@ -109,8 +109,13 @@
{
SLF4JBridgeHandler.removeHandlersForRootLogger();
// This is needed to avoid major performance issue. See: http://www.slf4j.org/legacy.html#jul-to-slf4j
+ // Limit Grizzly JUL logging to FINE to prevent a ClassCastException in
+ // FilterChainContext.toString() (Grizzly bug) when debug logging is enabled.
+ // Grizzly 3.0.1 DefaultFilterChain.executeFilter() checks isLoggable(FINEST) but
+ // its FilterChainContext.toString() incorrectly casts the message to char[].
LogManager.getLogManager().readConfiguration(
- new ByteArrayInputStream((".level=" + newLevel).getBytes()));
+ new ByteArrayInputStream(
+ (".level=" + newLevel + "\norg.glassfish.grizzly.level=FINE").getBytes()));
SLF4JBridgeHandler.install();
currentJulLogLevel = newLevel;
}
--
Gitblit v1.10.0