[jboss-jira] [JBoss JIRA] (AG-90) NPE if Driver#connect() returns null

Luis Barreiro (JIRA) issues at jboss.org
Wed Sep 5 13:35:00 EDT 2018


     [ https://issues.jboss.org/browse/AG-90?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Luis Barreiro resolved AG-90.
-----------------------------
    Fix Version/s: 1.2
       Resolution: Done


Thanks for reporting!

> NPE if Driver#connect() returns null
> ------------------------------------
>
>                 Key: AG-90
>                 URL: https://issues.jboss.org/browse/AG-90
>             Project: Agroal
>          Issue Type: Bug
>    Affects Versions: 1.1
>         Environment: WildFly 14
>            Reporter: Rich DiCroce
>            Assignee: Luis Barreiro
>             Fix For: 1.2
>
>
> The Javadoc for Driver#connect(String, Properties) states:
> bq. The driver should return "null" if it realizes it is the wrong kind of driver to connect to the given URL.
> Agroal does not perform a null check, leading to an opaque NPE if the driver returns null. It would be helpful if Agroal noticed this and threw an exception that explains the problem.
> {code}
> 11:34:23,808 ERROR [org.jboss.msc.service.fail] (ServerService Thread Pool -- 46) MSC000001: Failed to start service jboss.persistenceunit."song-gaming-portal.war#GamingPortalPU": org.jboss.msc.service.StartException in service jboss.persistenceunit."song-gaming-portal.war#GamingPortalPU": javax.persistence.PersistenceException: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.7.1.v20171221-bd47e8f): org.eclipse.persistence.exceptions.DatabaseException
> Internal Exception: java.sql.SQLException: Exception while creating new connection
> Error Code: 0
> 	at org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1$1.run(PersistenceUnitServiceImpl.java:195) [wildfly-jpa-14.0.0.Final.jar:14.0.0.Final]
> 	at org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1$1.run(PersistenceUnitServiceImpl.java:125) [wildfly-jpa-14.0.0.Final.jar:14.0.0.Final]
> 	at org.wildfly.security.manager.WildFlySecurityManager.doChecked(WildFlySecurityManager.java:650) [wildfly-elytron-1.6.0.Final.jar:1.6.0.Final]
> 	at org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1.run(PersistenceUnitServiceImpl.java:209) [wildfly-jpa-14.0.0.Final.jar:14.0.0.Final]
> 	at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
> 	at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1985)
> 	at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1487)
> 	at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1378)
> 	at java.lang.Thread.run(Thread.java:748) [rt.jar:1.8.0_181]
> 	at org.jboss.threads.JBossThread.run(JBossThread.java:485)
> Caused by: javax.persistence.PersistenceException: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.7.1.v20171221-bd47e8f): org.eclipse.persistence.exceptions.DatabaseException
> Internal Exception: java.sql.SQLException: Exception while creating new connection
> Error Code: 0
> 	at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:846) [eclipselink-2.7.1.jar:2.7.1.v20171221-bd47e8f]
> 	at org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.getAbstractSession(EntityManagerFactoryDelegate.java:216) [eclipselink-2.7.1.jar:2.7.1.v20171221-bd47e8f]
> 	at org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.getDatabaseSession(EntityManagerFactoryDelegate.java:194) [eclipselink-2.7.1.jar:2.7.1.v20171221-bd47e8f]
> 	at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.getDatabaseSession(EntityManagerFactoryImpl.java:540) [eclipselink-2.7.1.jar:2.7.1.v20171221-bd47e8f]
> 	at org.eclipse.persistence.jpa.PersistenceProvider.createContainerEntityManagerFactoryImpl(PersistenceProvider.java:385) [eclipselink-2.7.1.jar:2.7.1.v20171221-bd47e8f]
> 	at org.eclipse.persistence.jpa.PersistenceProvider.createContainerEntityManagerFactory(PersistenceProvider.java:313) [eclipselink-2.7.1.jar:2.7.1.v20171221-bd47e8f]
> 	at org.jboss.as.jpa.service.PersistenceUnitServiceImpl.createContainerEntityManagerFactory(PersistenceUnitServiceImpl.java:357) [wildfly-jpa-14.0.0.Final.jar:14.0.0.Final]
> 	at org.jboss.as.jpa.service.PersistenceUnitServiceImpl.access$1300(PersistenceUnitServiceImpl.java:70) [wildfly-jpa-14.0.0.Final.jar:14.0.0.Final]
> 	at org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1$1.run(PersistenceUnitServiceImpl.java:187) [wildfly-jpa-14.0.0.Final.jar:14.0.0.Final]
> 	... 9 more
> Caused by: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.7.1.v20171221-bd47e8f): org.eclipse.persistence.exceptions.DatabaseException
> Internal Exception: java.sql.SQLException: Exception while creating new connection
> Error Code: 0
> 	at org.eclipse.persistence.exceptions.DatabaseException.sqlException(DatabaseException.java:316) [eclipselink-2.7.1.jar:2.7.1.v20171221-bd47e8f]
> 	at org.eclipse.persistence.sessions.JNDIConnector.connect(JNDIConnector.java:147) [eclipselink-2.7.1.jar:2.7.1.v20171221-bd47e8f]
> 	at org.eclipse.persistence.sessions.DatasourceLogin.connectToDatasource(DatasourceLogin.java:170) [eclipselink-2.7.1.jar:2.7.1.v20171221-bd47e8f]
> 	at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.setOrDetectDatasource(DatabaseSessionImpl.java:228) [eclipselink-2.7.1.jar:2.7.1.v20171221-bd47e8f]
> 	at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.loginAndDetectDatasource(DatabaseSessionImpl.java:804) [eclipselink-2.7.1.jar:2.7.1.v20171221-bd47e8f]
> 	at org.eclipse.persistence.internal.jpa.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:254) [eclipselink-2.7.1.jar:2.7.1.v20171221-bd47e8f]
> 	at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:759) [eclipselink-2.7.1.jar:2.7.1.v20171221-bd47e8f]
> 	... 17 more
> Caused by: java.sql.SQLException: Exception while creating new connection
> 	at io.agroal.pool.ConnectionPool.handlerFromSharedCache(ConnectionPool.java:215)
> 	at io.agroal.pool.ConnectionPool.getConnection(ConnectionPool.java:137)
> 	at io.agroal.pool.DataSource.getConnection(DataSource.java:61)
> 	at org.eclipse.persistence.sessions.JNDIConnector.connect(JNDIConnector.java:135) [eclipselink-2.7.1.jar:2.7.1.v20171221-bd47e8f]
> 	... 22 more
> Caused by: java.util.concurrent.ExecutionException: java.lang.NullPointerException
> 	at java.util.concurrent.FutureTask.report(FutureTask.java:122) [rt.jar:1.8.0_181]
> 	at java.util.concurrent.FutureTask.get(FutureTask.java:192) [rt.jar:1.8.0_181]
> 	at io.agroal.pool.ConnectionPool.handlerFromSharedCache(ConnectionPool.java:197)
> 	... 25 more
> Caused by: java.lang.NullPointerException
> 	at io.agroal.pool.ConnectionFactory.connectionSetup(ConnectionFactory.java:180)
> 	at io.agroal.pool.ConnectionFactory.createConnection(ConnectionFactory.java:169)
> 	at io.agroal.pool.ConnectionPool$CreateConnectionTask.call(ConnectionPool.java:316)
> 	at io.agroal.pool.ConnectionPool$CreateConnectionTask.call(ConnectionPool.java:305)
> 	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [rt.jar:1.8.0_181]
> 	at io.agroal.pool.util.PriorityScheduledExecutor.beforeExecute(PriorityScheduledExecutor.java:66)
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146) [rt.jar:1.8.0_181]
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [rt.jar:1.8.0_181]
> 	at java.lang.Thread.run(Thread.java:748) [rt.jar:1.8.0_181]
> {code}



--
This message was sent by Atlassian JIRA
(v7.5.0#75005)


More information about the jboss-jira mailing list