From 1e758e22ded5b674021ddd102d31f65b48168d9a Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 30 Mar 2026 08:20:21 +0000 Subject: [PATCH 1/3] Initial plan 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 2/3] Fix server crash when File-Based Debug Logger is enabled When the debug logger is enabled, LoggerConfigManager sets root JUL level to FINEST which makes Grizzly's DefaultFilterChain.executeFilter() check isLoggable(FINEST)=true and log the FilterChainContext object. In Grizzly 3.0.1, FilterChainContext.toString() has a bytecode bug where it does a checkcast to char[] on the message field. When the message is a LdapResponseMessage, the cast fails with ClassCastException that propagates through the RxJava pipeline causing a server crash. Fix: Limit org.glassfish.grizzly JUL logging to FINE level so that isLoggable(FINEST) returns false, preventing the broken code path. Also add toString() to LdapResponseMessage for better diagnostics. Agent-Logs-Url: https://github.com/OpenIdentityPlatform/OpenDJ/sessions/73a4bf17-653a-4ea6-b379-6a220c9059db Co-authored-by: vharseko <6818498+vharseko@users.noreply.github.com> --- .../java/org/forgerock/opendj/ldap/spi/LdapMessages.java | 7 +++++++ .../java/org/opends/server/core/LoggerConfigManager.java | 7 ++++++- 2 files changed, 13 insertions(+), 1 deletion(-) 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 b4603a23bf..23fe1c6f71 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 @@ public static final class LdapResponseMessage extends LdapMessageEnvelope { 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 7bfe1ef053..af77296639 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 @@ private void changeJulLogLevel(final Level newLevel) { 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; } From 33581dbe53ce78fcbe74029b37370970c54c76e9 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 30 Mar 2026 13:29:52 +0000 Subject: [PATCH 3/3] Add Portions Copyright 2026 3A Systems, LLC to modified files Agent-Logs-Url: https://github.com/OpenIdentityPlatform/OpenDJ/sessions/00a339dc-75ea-4855-ac2f-94334e8cbaf3 Co-authored-by: vharseko <6818498+vharseko@users.noreply.github.com> --- .../main/java/org/forgerock/opendj/ldap/spi/LdapMessages.java | 1 + .../main/java/org/opends/server/core/LoggerConfigManager.java | 1 + 2 files changed, 2 insertions(+) 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 23fe1c6f71..9dfab41277 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 @@ -12,6 +12,7 @@ * information: "Portions Copyright [year] [name of copyright owner]". * * Copyright 2016 ForgeRock AS. + * Portions Copyright 2026 3A Systems, LLC. */ package org.forgerock.opendj.ldap.spi; 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 af77296639..66b0be2b28 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 @@ -13,6 +13,7 @@ * * Copyright 2006-2008 Sun Microsystems, Inc. * Portions Copyright 2013-2016 ForgeRock AS. + * Portions Copyright 2026 3A Systems, LLC. */ package org.opends.server.core;