From 9a74b24c2148c32faff0b01c08f40e507d0a6e68 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 8 May 2026 16:08:07 +0000 Subject: [PATCH 1/2] Fix NPE in XMLConnector.dispose() when init() did not complete Agent-Logs-Url: https://github.com/vharseko/OpenICF/sessions/05ed7868-f12a-4c24-a0c0-539a7b14c9d4 Co-authored-by: vharseko <6818498+vharseko@users.noreply.github.com> --- .../openicf/connectors/xml/XMLConnector.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/OpenICF-xml-connector/src/main/java/org/forgerock/openicf/connectors/xml/XMLConnector.java b/OpenICF-xml-connector/src/main/java/org/forgerock/openicf/connectors/xml/XMLConnector.java index 4b2d6260..a18741ba 100644 --- a/OpenICF-xml-connector/src/main/java/org/forgerock/openicf/connectors/xml/XMLConnector.java +++ b/OpenICF-xml-connector/src/main/java/org/forgerock/openicf/connectors/xml/XMLConnector.java @@ -99,8 +99,19 @@ public void init(Configuration configuration) { * @see org.identityconnectors.framework.spi.Connector#dispose() */ public void dispose() { - xmlInstanceHandler.dispose(); - log.ok("Dispose {0}", config.getXmlFilePath()); + if (xmlInstanceHandler == null) { + // init() never completed successfully (e.g. invalid XML/XSD path), + // nothing to release. Avoid throwing NPE so the original failure + // from init()/operation is not masked. + log.ok("Dispose called but XML handler was not initialized; nothing to release"); + return; + } + try { + xmlInstanceHandler.dispose(); + } finally { + xmlInstanceHandler = null; + } + log.ok("Dispose {0}", config != null ? config.getXmlFilePath() : null); } private synchronized Object getLock() { From 54da65d1b5a2feaf8a212322a0fa8187145783c1 Mon Sep 17 00:00:00 2001 From: Maxim Thomas Date: Wed, 13 May 2026 13:48:24 +0300 Subject: [PATCH 2/2] Apply suggestion from @maximthomas --- .../java/org/forgerock/openicf/connectors/xml/XMLConnector.java | 1 + 1 file changed, 1 insertion(+) diff --git a/OpenICF-xml-connector/src/main/java/org/forgerock/openicf/connectors/xml/XMLConnector.java b/OpenICF-xml-connector/src/main/java/org/forgerock/openicf/connectors/xml/XMLConnector.java index a18741ba..f8350def 100644 --- a/OpenICF-xml-connector/src/main/java/org/forgerock/openicf/connectors/xml/XMLConnector.java +++ b/OpenICF-xml-connector/src/main/java/org/forgerock/openicf/connectors/xml/XMLConnector.java @@ -21,6 +21,7 @@ * your own identifying information: * "Portions Copyrighted 2010 [name of copyright owner]" * + * Portions Copyrighted 2026 3A Systems LLC * $Id$ */ package org.forgerock.openicf.connectors.xml;