From 3d55f744ac2ce771ddf7e9da2a55b1955c035f6d Mon Sep 17 00:00:00 2001
From: Tatu Saloranta <tatu.saloranta@iki.fi>
Date: Fri, 22 Jan 2021 10:45:32 +0800
Subject: [PATCH] Fixed #3004

---
 .../jsontype/impl/SubTypeValidator.java        | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/fasterxml/jackson/databind/jsontype/impl/SubTypeValidator.java b/src/main/java/com/fasterxml/jackson/databind/jsontype/impl/SubTypeValidator.java
index 2be6d49..db6866d 100644
--- a/src/main/java/com/fasterxml/jackson/databind/jsontype/impl/SubTypeValidator.java
+++ b/src/main/java/com/fasterxml/jackson/databind/jsontype/impl/SubTypeValidator.java
@@ -118,9 +118,12 @@ public class SubTypeValidator
         // [databind#2704]: xalan2
         s.add("com.sun.org.apache.xalan.internal.lib.sql.JNDIConnectionPool");
 
-        // [databind#2478]: comons-dbcp, p6spy
+	// [databind#2478]: commons-dbcp 1.x, p6spy
+	// [databind#3004]: commons-dbcp 1.x
+	s.add("org.apache.commons.dbcp.cpdsadapter.DriverAdapterCPDS");
         s.add("org.apache.commons.dbcp.datasources.PerUserPoolDataSource");
         s.add("org.apache.commons.dbcp.datasources.SharedPoolDataSource");
+
         s.add("com.p6spy.engine.spy.P6DataSource");
 
         // [databind#2498]: log4j-extras (1.2)
@@ -184,9 +187,9 @@ public class SubTypeValidator
         // [databind#2682]: commons-jelly
         s.add("org.apache.commons.jelly.impl.Embedded");
 
-        // [databind#2688]: apache/drill
+	// [databind#2688], [databind#3004]: apache/drill
         s.add("oadd.org.apache.xalan.lib.sql.JNDIConnectionPool");
-
+	s.add("oadd.org.apache.commons.dbcp.cpdsadapter.DriverAdapterCPDS");
         // [databind#2698]: weblogic w/ oracle/aq-jms
         // (note: dependency not available via Maven Central, but as part of
         // weblogic installation, possibly fairly old version(s))
@@ -202,16 +205,18 @@ public class SubTypeValidator
         // [databind#2798]: com.pastdev.httpcomponents:
         s.add("com.pastdev.httpcomponents.configuration.JndiConfiguration");
         
-        // [databind#2986]: dbcp2
+	// [databind#2986], [databind#3004]: dbcp2
         s.add("org.apache.commons.dbcp2.datasources.PerUserPoolDataSource");
         s.add("org.apache.commons.dbcp2.datasources.SharedPoolDataSource");
+	s.add("org.apache.commons.dbcp2.cpdsadapter.DriverAdapterCPDS");
 
         // [databind#2999]: org.glassfish.web/javax.servlet.jsp.jstl (embedded Xalan)
         // (derivative of #2469)
         s.add("com.oracle.wls.shaded.org.apache.xalan.lib.sql.JNDIConnectionPool");
 
-	// [databind#2998]: org.apache.tomcat/tomcat-dbcp (embedded dbcp 2.x)
+	// [databind#2998]/[databind#3004]: org.apache.tomcat/tomcat-dbcp (embedded dbcp 2.x)
 	// (derivative of #2478)
+	s.add("org.apache.tomcat.dbcp.dbcp2.cpdsadapter.DriverAdapterCPDS");
 	s.add("org.apache.tomcat.dbcp.dbcp2.datasources.PerUserPoolDataSource");
 	s.add("org.apache.tomcat.dbcp.dbcp2.datasources.SharedPoolDataSource");
 
@@ -220,8 +225,9 @@ public class SubTypeValidator
 	s.add("com.newrelic.agent.deps.ch.qos.logback.core.db.JNDIConnectionSource");
 	s.add("com.newrelic.agent.deps.ch.qos.logback.core.db.DriverManagerConnectionSource");
 
-	// [databind#2997]: tomcat/naming-factory-dbcp (embedded dbcp 1.x)
+	// [databind#2997]/[databind#3004]: tomcat/naming-factory-dbcp (embedded dbcp 1.x)
 	// (derivative of #2478)
+	s.add("org.apache.tomcat.dbcp.dbcp.cpdsadapter.DriverAdapterCPDS");
 	s.add("org.apache.tomcat.dbcp.dbcp.datasources.PerUserPoolDataSource");
 	s.add("org.apache.tomcat.dbcp.dbcp.datasources.SharedPoolDataSource");
 
-- 
2.23.0

