https://bz.apache.org/bugzilla/show_bug.cgi?id=67664

            Bug ID: 67664
           Summary: IllegalArgumentException in
                    ConnectionPool.getProxyConstructor
           Product: Tomcat Modules
           Version: unspecified
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: jdbc-pool
          Assignee: dev@tomcat.apache.org
          Reporter: t...@silbergrau.com
  Target Milestone: ---

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)

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to