Hi,

We have a spring boot application (v3.1.4) It currently uses

<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-jdbc</artifactId>
<version>10.1.13</version>
</dependency>

A renovate bot updated this package to 10.1.14 and now our app fails
on startup, with the following exception..

2023-10-11T22:27:16.981Z WARN 7 — [ main]
o.h.e.j.e.i.JdbcEnvironmentInitiator : HHH000342: Could not obtain
connection to query metadata
java.sql.SQLException: null
at 
org.apache.tomcat.jdbc.pool.ConnectionPool.setupConnection(ConnectionPool.java:351)
~[tomcat-jdbc-10.1.14.jar!/:na]
at 
org.apache.tomcat.jdbc.pool.ConnectionPool.getConnection(ConnectionPool.java:200)
~[tomcat-jdbc-10.1.14.jar!/:na]
at 
org.apache.tomcat.jdbc.pool.DataSourceProxy.getConnection(DataSourceProxy.java:133)
~[tomcat-jdbc-10.1.14.jar!/:na]
at 
org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.j




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:706)
~[na:na]
    at java.base/java.lang.reflect.Proxy$ProxyBuilder.<init>(Proxy.java:648)
~[na:na]
    at 
java.base/java.lang.reflect.Proxy.lambda$getProxyConstructor$1(Proxy.java:440)
~[na:na]
    at 
java.base/jdk.internal.loader.AbstractClassLoaderValue$Memoizer.get(AbstractClassLoaderValue.java:329)
~[na:na]
    at 
java.base/jdk.internal.loader.AbstractClassLoaderValue.computeIfAbsent(AbstractClassLoaderValue.java:205)
~[na:na]
    at java.base/java.lang.reflect.Proxy.getProxyConstructor(Proxy.java:438)
~[na:na]
    at java.base/java.lang.reflect.Proxy.getProxyClass(Proxy.java:398) ~[na:na]
    at 
org.apache.tomcat.jdbc.pool.ConnectionPool.getProxyConstructor(ConnectionPool.java:377)
~[tomcat-jdbc-10.1.14.jar:na]
    at 
org.apache.tomcat.jdbc.pool.ConnectionPool.setupConnection(ConnectionPool.java:339)
~[tomcat-jdbc-10.1.14.jar:na]


The code throws the exceptino when lef.afterPropertiesSet() is called.


@Bean(name = "fsEntityManagerFactory")
public EntityManagerFactory entityManagerFactory(DataSource fsDataSource) {
LocalContainerEntityManagerFactoryBean lef = new
LocalContainerEntityManagerFactoryBean();
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
lef.setDataSource(fsDataSource);
lef.setJpaVendorAdapter(vendorAdapter);
lef.setPackagesToScan("xxxxxx");
lef.setPersistenceUnitName("fsPersistenceUnit");
HashMap<String, Object> properties = new HashMap<>();
properties.put("hibernate.dialect", "org.hibernate.dialect.DB2Dialect");
properties.put(AvailableSettings.ENHANCER_ENABLE_ASSOCIATION_MANAGEMENT,
"false");
properties.put(AvailableSettings.ENHANCER_ENABLE_DIRTY_TRACKING, "false");
properties.put(AvailableSettings.ENHANCER_ENABLE_LAZY_INITIALIZATION, "false");
properties.put("hibernate.jdbc.fetch_size", hibernateFetchSize);
properties.put("hibernate.show_sql", hibernateShowSQL);
properties.put("hibernate.default_schema", hibernateDefaultSchema);

lef.setJpaPropertyMap(properties);
lef.afterPropertiesSet();
return lef.getObject();
}


Right now I've reverted back to 10.1.13 and it works.

What is the best way to fix this?

I saw the release notes, updates were changed to the connection
pooling classes, but I'm unsure on how to proceed.

Thank you,

Rich
CONFIDENTIALITY NOTICE:
This is a transmission from Kohl's, Inc. and may contain information which is 
confidential and proprietary.
If you are not the addressee, any disclosure, copying or distribution or use of 
the contents of this message is expressly prohibited.
If you have received this transmission in error, please destroy it and notify 
us immediately at 262-703-7000.

CAUTION:
Internet and e-mail communications are Kohl's property and Kohl's reserves the 
right to retrieve and read any message created, sent and received. Kohl's 
reserves the right to monitor messages by authorized Kohl's Associates at any 
time without any further consent.

Reply via email to