From 0b1c00110ee0c5e6e837c200f3980c6893b7523b Mon Sep 17 00:00:00 2001 From: Jonathan Mendez Date: Wed, 15 Jul 2026 13:12:21 -0600 Subject: [PATCH] Close opensearch instance on destroy --- .../utils/opensearch/AbstractOpenSearchFactory.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/craftercms/deployer/utils/opensearch/AbstractOpenSearchFactory.java b/src/main/java/org/craftercms/deployer/utils/opensearch/AbstractOpenSearchFactory.java index 09da2735..61c9ea68 100644 --- a/src/main/java/org/craftercms/deployer/utils/opensearch/AbstractOpenSearchFactory.java +++ b/src/main/java/org/craftercms/deployer/utils/opensearch/AbstractOpenSearchFactory.java @@ -17,6 +17,8 @@ package org.craftercms.deployer.utils.opensearch; +import java.util.ArrayList; + import org.craftercms.commons.config.ConfigurationException; import org.opensearch.client.opensearch.OpenSearchClient; import org.slf4j.Logger; @@ -24,8 +26,6 @@ import org.springframework.beans.factory.BeanNameAware; import org.springframework.beans.factory.config.AbstractFactoryBean; -import java.util.ArrayList; - /** * Base implementation for factories capable of build single or multi-cluster OpenSearch services * @@ -56,6 +56,14 @@ public void setBeanName(final String name) { this.name = name; } + @Override + protected void destroyInstance(T instance) throws Exception { + logger.debug("Closing OpenSearch service for '{}'", name); + if (instance instanceof AutoCloseable closeable) { + closeable.close(); + } + } + @Override protected T createInstance() throws ConfigurationException { logger.debug("Creating instance for '{}'", name);