With the update to tomcat 9.0.81 (due to the released CVE) we run into an IllegalArgumentException. Looking at the previous implementation before (9.0.80), it seems like some refactoring issue. I hope i chose the right project/component and I didnt find a similar bug report yet. Previous implementation did Proxy.getProxyClass(ConnectionPool.class.getClassLoader(), new Class[] {java.sql.Connection.class,javax.sql.PooledConnection.class}); New implementation is Proxy.getProxyClass(ConnectionPool.class.getClassLoader(), new Class[] {Connection.class,PooledConnection.class}); -> Connection has import to java.sql.Connection.class and works as before. -> PooledConnection has no import and now resolves to org.apache.tomcat.jdbc.pool.PooledConnection and leads to the IllegalArgumentException (was javax.sql.PooledConnection previous). Stacktrace: Caused by: java.sql.SQLException at org.apache.tomcat.jdbc.pool.ConnectionPool.setupConnection(ConnectionPool.java:351) at org.apache.tomcat.jdbc.pool.ConnectionPool.getConnection(ConnectionPool.java:200) at org.apache.tomcat.jdbc.pool.DataSourceProxy.getConnection(DataSourceProxy.java:133) at customer.Database.getConnection(Database.java:67) ... 43 more Caused by: java.lang.IllegalArgumentException: org.apache.tomcat.jdbc.pool.PooledConnection is not an interface at java.base/java.lang.reflect.Proxy$ProxyBuilder.validateProxyInterfaces(Proxy.java:691) at java.base/java.lang.reflect.Proxy$ProxyBuilder.<init>(Proxy.java:630) at java.base/java.lang.reflect.Proxy.lambda$getProxyConstructor$1(Proxy.java:428) at java.base/jdk.internal.loader.AbstractClassLoaderValue$Memoizer.get(AbstractClassLoaderValue.java:329) at java.base/jdk.internal.loader.AbstractClassLoaderValue.computeIfAbsent(AbstractClassLoaderValue.java:205) at java.base/java.lang.reflect.Proxy.getProxyConstructor(Proxy.java:426) at java.base/java.lang.reflect.Proxy.getProxyClass(Proxy.java:386) at org.apache.tomcat.jdbc.pool.ConnectionPool.getProxyConstructor(ConnectionPool.java:370) at org.apache.tomcat.jdbc.pool.ConnectionPool.setupConnection(ConnectionPool.java:339)
Fixed in: - 11.0.x with 11.0.0-M13 onwards - 10.1.x with 10.1.15 onwards - 9.0.x with 9.0.82 onwards - 8.5.x with 8.5.94 onwards Until those releases are available, you can use the tomcat-jdbc.jar from the previous release.
Thanks for the fast reply!
(In reply to Mark Thomas from comment #1) > Fixed in: > - 8.5.x with 8.5.94 onwards Correction: The above should be "with 8.5.95 onwards". (Tomcat 8.5.94 had already been tagged when this issue was fixed.)
*** Bug 67697 has been marked as a duplicate of this bug. ***
*** Bug 67757 has been marked as a duplicate of this bug. ***