Bug 296863 - "java.lang.NullPointerException" thrown when running JPA AllCMP3TestRunModel on H2 database
Summary: "java.lang.NullPointerException" thrown when running JPA AllCMP3TestRunModel ...
Status: CLOSED FIXED
Alias: None
Product: z_Archived
Classification: Eclipse Foundation
Component: Eclipselink (show other bugs)
Version: unspecified   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Project Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords: test
Depends on:
Blocks:
 
Reported: 2009-12-03 14:58 EST by Yiping Zhao CLA
Modified: 2022-06-09 10:10 EDT (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Yiping Zhao CLA 2009-12-03 14:58:21 EST
This is new regression, we used to run JPA FullRegressionTestSuite on H2, all tests passed, now we are running AllCMP3TestRunModel on H2 since Nov 25th, 1652 out of 1750 tests failed because of "NullPointerException",  FullregressionTestSuite tests which passed before failed now because we are running AllCMP3TestRunModel which runs all JPA Non Junit Test Models firstly, FullRegressionTestSuite secondly.

The detailed exceptions are like following two kinds:

1. JPAAdvancedTestModel 

Error Internal Exception: org.h2.jdbc.JdbcSQLException: General error: "java.lang.NullPointerException" [50000-123] Error Code: 50000 

Local Exception Stack: 
Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.0.0.qualifier): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: org.h2.jdbc.JdbcSQLException: General error: "java.lang.NullPointerException" [50000-123]
Error Code: 50000
at org.eclipse.persistence.exceptions.DatabaseException.sqlException(DatabaseException.java:324)
at org.eclipse.persistence.exceptions.DatabaseException.sqlException(DatabaseException.java:319)
at org.eclipse.persistence.sessions.DefaultConnector.connect(DefaultConnector.java:138)
at org.eclipse.persistence.sessions.DatasourceLogin.connectToDatasource(DatasourceLogin.java:162)
at org.eclipse.persistence.internal.databaseaccess.DatasourceAccessor.connectInternal(DatasourceAccessor.java:327)
at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.connectInternal(DatabaseAccessor.java:294)
at org.eclipse.persistence.internal.databaseaccess.DatasourceAccessor.connect(DatasourceAccessor.java:415)
at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.connect(DatabaseSessionImpl.java:246)
at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.login(DatabaseSessionImpl.java:632)
at org.eclipse.persistence.testing.framework.TestModel.resetEntity(TestModel.java:358)
at org.eclipse.persistence.testing.framework.TestModel.execute(TestModel.java:218)
at org.eclipse.persistence.testing.framework.TestCollection.run(TestCollection.java:313)
at org.eclipse.persistence.testing.framework.TestExecutor.execute(TestExecutor.java:248)
at org.eclipse.persistence.testing.framework.TestModel.execute(TestModel.java:208)
at org.eclipse.persistence.testing.framework.TestCollection.run(TestCollection.java:313)
Caused by: org.h2.jdbc.JdbcSQLException: General error: "java.lang.NullPointerException" [50000-123]
at org.h2.message.Message.getSQLException(Message.java:111)
at org.h2.message.Message.convert(Message.java:288)
at org.h2.engine.Database.openDatabase(Database.java:262)
at org.h2.engine.Database.(Database.java:222)
at org.h2.engine.Engine.openSession(Engine.java:58)
at org.h2.engine.Engine.openSession(Engine.java:142)
at org.h2.engine.Engine.getSession(Engine.java:122)
at org.h2.engine.SessionFactoryEmbedded.createSession(SessionFactoryEmbedded.java:17)
at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:245)
at org.h2.engine.SessionRemote.createSession(SessionRemote.java:223)
at org.h2.jdbc.JdbcConnection.(JdbcConnection.java:110)
at org.h2.jdbc.JdbcConnection.(JdbcConnection.java:94)
at org.h2.Driver.connect(Driver.java:58)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:154)
at org.eclipse.persistence.sessions.DefaultConnector.connect(DefaultConnector.java:98)
Caused by: java.lang.NullPointerException
at org.h2.store.PageLog.addUndo(PageLog.java:440)
at org.h2.store.PageStore.logUndo(PageStore.java:729)
at org.h2.index.PageDataNode.setRowCountStored(PageDataNode.java:307)
at org.h2.index.PageDataIndex.writeRowCount(PageDataIndex.java:488)
at org.h2.store.PageStore.writeIndexRowCounts(PageStore.java:309)
at org.h2.store.PageStore.recover(PageStore.java:1041)
at org.h2.store.PageStore.openExisting(PageStore.java:296)
at org.h2.store.PageStore.open(PageStore.java:254)
at org.h2.engine.Database.getPageStore(Database.java:2299)
at org.h2.engine.Database.open(Database.java:625)
at org.h2.engine.Database.openDatabase(Database.java:228) 

2. JTAOptimisticLockExceptionTest 

Error Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.0.0.qualifier): org.eclipse.persistence.exceptions.DatabaseException Internal Exception: org.h2.jdbc.JdbcSQLException: General error: "java.lang.NullPointerException" [50000-123] Error Code: 50000 

javax.persistence.PersistenceException: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.0.0.qualifier): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: org.h2.jdbc.JdbcSQLException: General error: "java.lang.NullPointerException" [50000-123]
Error Code: 50000
at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:392)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.getServerSession(EntityManagerFactoryImpl.java:151)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:207)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:195)
at org.eclipse.persistence.testing.framework.junit.JUnitTestCase.createEntityManager(JUnitTestCase.java:291)
at org.eclipse.persistence.testing.tests.jpa.jpql.JUnitJPQLValidationTestSuite.JTAOptimisticLockExceptionTest(JUnitJPQLValidationTestSuite.java:943)
at org.eclipse.persistence.testing.framework.junit.JUnitTestCase.runBare(JUnitTestCase.java:428)
at org.eclipse.persistence.testing.framework.TestExecutor.execute(TestExecutor.java:248)
at org.eclipse.persistence.testing.framework.TestModel.execute(TestModel.java:208)
at org.eclipse.persistence.testing.framework.TestCollection.run(TestCollection.java:313)
Caused by: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.0.0.qualifier): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: org.h2.jdbc.JdbcSQLException: General error: "java.lang.NullPointerException" [50000-123]
Error Code: 50000
at org.eclipse.persistence.exceptions.DatabaseException.sqlException(DatabaseException.java:324)
at org.eclipse.persistence.exceptions.DatabaseException.sqlException(DatabaseException.java:319)
at org.eclipse.persistence.sessions.DefaultConnector.connect(DefaultConnector.java:138)
at org.eclipse.persistence.sessions.DatasourceLogin.connectToDatasource(DatasourceLogin.java:162)
at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.loginAndDetectDatasource(DatabaseSessionImpl.java:584)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:228)
at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:368)
Caused by: org.h2.jdbc.JdbcSQLException: General error: "java.lang.NullPointerException" [50000-123]
at org.h2.message.Message.getSQLException(Message.java:111)
at org.h2.message.Message.convert(Message.java:288)
at org.h2.engine.Database.openDatabase(Database.java:262)
at org.h2.engine.Database.(Database.java:222)
at org.h2.engine.Engine.openSession(Engine.java:58)
at org.h2.engine.Engine.openSession(Engine.java:142)
at org.h2.engine.Engine.getSession(Engine.java:122)
at org.h2.engine.SessionFactoryEmbedded.createSession(SessionFactoryEmbedded.java:17)
at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:245)
at org.h2.engine.SessionRemote.createSession(SessionRemote.java:223)
at org.h2.jdbc.JdbcConnection.(JdbcConnection.java:110)
at org.h2.jdbc.JdbcConnection.(JdbcConnection.java:94)
at org.h2.Driver.connect(Driver.java:58)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:154)
at org.eclipse.persistence.sessions.DefaultConnector.connect(DefaultConnector.java:98)
Caused by: java.lang.NullPointerException
 
Note: If change AllCMP3TestRunModel.java to have "FullRegressionTestSuite" to be the first suite to run, all tests in AllCMP3TestRunModel passed on H2.
Comment 1 Tom Ware CLA 2009-12-03 16:28:56 EST
This is a test issue with how CMP3TestModel gets its database connection information for the advanced test model.
Comment 2 Tom Ware CLA 2009-12-04 13:53:44 EST
I think this issue is fixed with h2-1.2.124.jar (version of the jdbc driver)
Comment 3 Yiping Zhao CLA 2009-12-04 15:43:06 EST
All tests in ALLCMP3TestRunModel passed with latest H2 jdbc driver h2-1.2.124.jar(BETA version)
Comment 4 Eclipse Webmaster CLA 2022-06-09 10:10:31 EDT
The Eclipselink project has moved to Github: https://github.com/eclipse-ee4j/eclipselink