JIRA throws exception java.lang.ClassNotFoundException for DB driver

Platform Notice: Data Center Only - This article only applies to Atlassian products on the Data Center platform.

Note that this KB was created for the Data Center version of the product. Data Center KBs for non-Data-Center-specific features may also work for Server versions of the product, however they have not been tested. Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.

*Except Fisheye and Crucible

Problem

JIRA runs out of available DB connections. The following appears in the atlassian-jira.log:

1 2 3 4 5 6 7 8 9 10 11 2016-05-10 02:36:41,795 http-bio-80-exec-17 ERROR admin 156x1827812x2 1wdfh3b 1.1.1.1 /secure/RapidBoard.jspa [NoModule] There was an error getting a DBCP datasource. java.lang.RuntimeException: Unable to obtain a connection from the underlying connection pool at org.ofbiz.core.entity.jdbc.interceptors.connection.ConnectionTracker.trackConnection(ConnectionTracker.java:59) at org.ofbiz.core.entity.transaction.DBCPConnectionFactory.trackConnection(DBCPConnectionFactory.java:243) at org.ofbiz.core.entity.transaction.DBCPConnectionFactory.getConnection(DBCPConnectionFactory.java:74) at org.ofbiz.core.entity.ConnectionFactory.tryGenericConnectionSources(ConnectionFactory.java:69) .... Caused by: java.util.NoSuchElementException: Timeout waiting for idle object at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1134) at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:106) ... 305 more

And after that there could be another stacktrace:

1 2 3 4 5 6 2016-05-10 02:36:41,938 http-bio-80-exec-11 WARN admin 156x1827822x5 1hfai41 1.1.1.1 /rest/issueNav/1/issueTable/stable [NoModule] java.lang.ClassNotFoundException: oracle.jdbc.OracleDriver at com.atlassian.plugins.rest.module.ChainingClassLoader.loadClass(ChainingClassLoader.java:65) at org.ofbiz.core.entity.ConnectionFactory.tryGenericConnectionSources(ConnectionFactory.java:81) at org.ofbiz.core.entity.transaction.JNDIFactory.getConnection(JNDIFactory.java:146) at org.ofbiz.core.entity.TransactionFactory.getConnection(TransactionFactory.java:136)

Another example:

1 2 3 4 5 6 7 8 9 10 11 12 2019-12-23 10:22:53,100 http-nio-8080-exec-65 url:/rest/analytics/1.0/publish/bulk WARN - [NoModule] Could not find JDBC driver class named com.mysql.jdbc.Driver. 2019-12-23 10:22:53,100 http-nio-8080-exec-65 url:/rest/analytics/1.0/publish/bulk WARN - [NoModule] java.lang.ClassNotFoundException: com.mysql.jdbc.Driver not found from bundle [com.atlassian.whisper.atlassian-whisper-plugin] at org.eclipse.gemini.blueprint.util.BundleDelegatingClassLoader.findClass(BundleDelegatingClassLoader.java:139) at org.eclipse.gemini.blueprint.util.BundleDelegatingClassLoader.loadClass(BundleDelegatingClassLoader.java:211) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at org.ofbiz.core.entity.ConnectionFactory.tryGenericConnectionSources(ConnectionFactory.java:81) at org.ofbiz.core.entity.transaction.JNDIFactory.getConnection(JNDIFactory.java:173) at org.ofbiz.core.entity.TransactionFactory.getConnection(TransactionFactory.java:114) at org.ofbiz.core.entity.ConnectionFactory.getConnection(ConnectionFactory.java:59) at com.atlassian.jira.ofbiz.DefaultOfBizConnectionFactory.getConnection(DefaultOfBizConnectionFactory.java:44) ...

ℹ️ Note, this could be any other DB class: eg. com.mysql.jdbc.Driver

Cause

Please note they both executing tryGenericConnectionSources method, but at different stages:

at org.ofbiz.core.entity.ConnectionFactory.tryGenericConnectionSources(ConnectionFactory.java:69)

vs

at org.ofbiz.core.entity.ConnectionFactory.tryGenericConnectionSources(ConnectionFactory.java:81)

First tries to get a connection from the pool and if that fails, it creates its own connection. That second part is not supposed to work, as OfBiz doesn't have required configuration data and moreover it doesn't have required classloader context.

Resolution

Please ignore the last ClassNotFoundException this is Red herring.

Updated on April 8, 2025

Still need help?

The Atlassian Community is here for you.