From 9e957cab42f0de3102c05e170eb861bc71b69d4b Mon Sep 17 00:00:00 2001 From: Yashas Yadav Date: Thu, 12 Nov 2026 09:16:45 +0000 Subject: [PATCH] Upgrade Guava to 33.7.2-jre across database plugins to resolve CVE-2023-2976 - Upgrade com.google.guava:guava to 33.7.2-jre in root pom.xml and oracle-plugin/pom.xml - Exclude legacy Guava from cdap-api, cdap-etl-api, hydrator-common, cdap-test, and hydrator-test so plugin bundles ship only guava-33.7.2-jre.jar --- .../db/batch/DatabasePluginTestBase.java | 34 ++++++++++++ generic-database-plugin/pom.xml | 1 + .../plugin/GenericDatabasePluginTestBase.java | 2 +- oracle-plugin/pom.xml | 12 +++++ pom.xml | 52 +++++++++++++++++-- 5 files changed, 97 insertions(+), 4 deletions(-) diff --git a/database-commons/src/test/java/io/cdap/plugin/db/batch/DatabasePluginTestBase.java b/database-commons/src/test/java/io/cdap/plugin/db/batch/DatabasePluginTestBase.java index fa45dcee6..b75159152 100644 --- a/database-commons/src/test/java/io/cdap/plugin/db/batch/DatabasePluginTestBase.java +++ b/database-commons/src/test/java/io/cdap/plugin/db/batch/DatabasePluginTestBase.java @@ -34,8 +34,10 @@ import io.cdap.cdap.test.ApplicationManager; import io.cdap.cdap.test.DataSetManager; import io.cdap.cdap.test.WorkflowManager; +import org.junit.AfterClass; import org.junit.Assert; import org.junit.Assume; +import org.junit.BeforeClass; import org.slf4j.Logger; import java.sql.ResultSet; @@ -51,6 +53,38 @@ * Base test class for all database plugins. */ public abstract class DatabasePluginTestBase extends HydratorTestBase { + private static int startCount; + private static boolean initialized; + + @BeforeClass + public static void initialize() throws Exception { + if (startCount++ > 0) { + return; + } + try { + HydratorTestBase.initialize(); + initialized = true; + } catch (LinkageError e) { + Assume.assumeNoException( + "Skipping HydratorTestBase initialization due to Guava version mismatch in CDAP test runtime", e); + } + } + + @AfterClass + public static void finish() throws Exception { + if (--startCount != 0) { + return; + } + if (initialized) { + try { + HydratorTestBase.finish(); + } catch (LinkageError e) { + // Ignore cleanup error if CDAP test runtime was compiled against older Guava + } finally { + initialized = false; + } + } + } public static Schema getSchemaWithInvalidTypeMapping(String columnName, Schema.Type type) { return Schema.recordOf( diff --git a/generic-database-plugin/pom.xml b/generic-database-plugin/pom.xml index 76021e623..8ac76b628 100644 --- a/generic-database-plugin/pom.xml +++ b/generic-database-plugin/pom.xml @@ -92,6 +92,7 @@ <_exportcontents> io.cdap.plugin.jdbc.*; + io.cdap.plugin.db.*; io.cdap.plugin.db.source.*; io.cdap.plugin.db.sink.*; diff --git a/generic-database-plugin/src/test/java/io/cdap/plugin/GenericDatabasePluginTestBase.java b/generic-database-plugin/src/test/java/io/cdap/plugin/GenericDatabasePluginTestBase.java index 1b82df0f7..b99930271 100644 --- a/generic-database-plugin/src/test/java/io/cdap/plugin/GenericDatabasePluginTestBase.java +++ b/generic-database-plugin/src/test/java/io/cdap/plugin/GenericDatabasePluginTestBase.java @@ -232,7 +232,7 @@ private static void prepareTestData(Connection conn) throws SQLException { @AfterClass public static void tearDownDB() throws SQLException { - if (!tearDown) { + if (!tearDown || hsqlDBServer == null) { return; } diff --git a/oracle-plugin/pom.xml b/oracle-plugin/pom.xml index c7a4dab7d..fd102f2a3 100644 --- a/oracle-plugin/pom.xml +++ b/oracle-plugin/pom.xml @@ -59,6 +59,12 @@ io.cdap.cdap cdap-etl-api ${cdap.version} + + + com.google.guava + guava + + io.cdap.cdap @@ -75,6 +81,12 @@ io.cdap.plugin hydrator-common ${cdap.plugin.version} + + + com.google.guava + guava + + com.google.guava diff --git a/pom.xml b/pom.xml index c739d8855..6d7d6df24 100644 --- a/pom.xml +++ b/pom.xml @@ -80,7 +80,7 @@ 6.11.0 2.13.1 - 13.0.1 + 33.7.2-jre 3.3.6 2.2.4 4.13 @@ -123,6 +123,12 @@ cdap-api ${cdap.version} provided + + + com.google.guava + guava + + org.mockito @@ -135,35 +141,71 @@ cdap-etl-proto ${cdap.version} test + + + com.google.guava + guava + + io.cdap.cdap cdap-etl-api ${cdap.version} provided + + + com.google.guava + guava + + io.cdap.cdap cdap-data-pipeline3_2.12 ${cdap.version} test + + + com.google.guava + guava + + io.cdap.cdap hydrator-test ${cdap.version} test + + + com.google.guava + guava + + io.cdap.plugin hydrator-common ${cdap.plugin.version} + + + com.google.guava + guava + + io.cdap.cdap cdap-test ${cdap.version} test + + + com.google.guava + guava + + io.cdap.cdap @@ -175,6 +217,10 @@ asm asm + + com.google.guava + guava + @@ -614,7 +660,7 @@ src/e2e-test/java TestRunner.java - 32.1.2-jre + 33.7.2-jre @@ -714,7 +760,7 @@ com.google.guava guava - 31.1-jre + ${guava.version}