From e92c6fc68c7f7cec45b5ea38f3b00b3f7d9dc5b4 Mon Sep 17 00:00:00 2001 From: Kai Huang Date: Tue, 5 May 2026 20:24:40 -0700 Subject: [PATCH] Exclude jsr305 from SQL bundle to fix jar hell with arrow-flight-rpc MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The arrow-flight-rpc plugin (a transitive parent of analytics-engine via extendedPlugins) bundles jsr305-3.0.2.jar, and the SQL plugin pulls in the same artifact via Calcite's transitive findbugs:jsr305 dependency. With both plugins shipping the same jar, OpenSearch's PluginsService.checkBundleJarHell fails at install time with: IllegalStateException: jar hell! class: javax.annotation.CheckForNull jar1: .../installing-.../jsr305-3.0.2.jar jar2: .../plugins/arrow-flight-rpc/jsr305-3.0.2.jar Same pattern as #5400 — exclude the jar from the SQL bundle and rely on the copy already provided by arrow-flight-rpc through the shared classloader. Signed-off-by: Kai Huang --- plugin/build.gradle | 3 +++ 1 file changed, 3 insertions(+) diff --git a/plugin/build.gradle b/plugin/build.gradle index 4306235b13d..04cdc36c943 100644 --- a/plugin/build.gradle +++ b/plugin/build.gradle @@ -101,6 +101,9 @@ bundlePlugin { exclude 'json-smart-*.jar' exclude 'accessors-smart-*.jar' exclude 'asm-9*.jar' + // jsr305 is also bundled by arrow-flight-rpc (an extendedPlugins parent of analytics-engine, + // which we extend); both shipping it caused jar hell at plugin install time. + exclude 'jsr305-*.jar' } publishing {