Bug 294110 - JPA:Derby:[testing] CCE in DefaultConnector running JPA tests on derby after refused network connection
Summary: JPA:Derby:[testing] CCE in DefaultConnector running JPA tests on derby after ...
Status: CLOSED WONTFIX
Alias: None
Product: z_Archived
Classification: Eclipse Foundation
Component: Eclipselink (show other bugs)
Version: unspecified   Edit
Hardware: PC Windows 7
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Nobody - feel free to take it CLA
QA Contact:
URL:
Whiteboard:
Keywords: test
Depends on:
Blocks:
 
Reported: 2009-11-03 15:11 EST by Michael OBrien CLA
Modified: 2022-06-09 10:31 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 Michael OBrien CLA 2009-11-03 15:11:14 EST
>If the JRE network access is not configured properly and we get a refused connection using the non-embedded derby connector - we get a secondary ClassCastException in DefaultConnector - we should fix this.


------------test.properties
## Derby
jdbc.driver.jar=${extensions.depend.dir}/derbyclient.jar
db.driver=org.apache.derby.jdbc.ClientXADataSource
db.url=jdbc:derby://localhost:1527/ECLIPSELINK
db.user=user
db.pwd=password
db.platform=org.eclipse.persistence.platform.database.DerbyPlatform



------------stacktrace
 [junit] Caused by: org.apache.derby.client.am.DisconnectException: java.net.ConnectException : Error connecting to server localhost on port 1527 with message Connection refused: connect.
    [junit] 	at org.apache.derby.client.net.NetAgent.<init>(Unknown Source)
    [junit] 	at org.apache.derby.client.net.NetConnection.newAgent_(Unknown Source)
    [junit] 	at org.apache.derby.client.am.Connection.<init>(Unknown Source)
    [junit] 	at org.apache.derby.client.net.NetConnection.<init>(Unknown Source)
    [junit] 	at org.apache.derby.client.net.NetConnection40.<init>(Unknown Source)
    [junit] 	at org.apache.derby.client.net.ClientJDBCObjectFactoryImpl40.newNetConnection(Unknown Source)
    [junit] 	... 38 more
    [junit] Caused by: java.net.ConnectException: Connection refused: connect
    [junit] 	at java.net.PlainSocketImpl.socketConnect(Native Method)
    [junit] 	at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
    [junit] 	at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
    [junit] 	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
    [junit] 	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
    [junit] 	at java.net.Socket.connect(Socket.java:525)
    [junit] 	at java.net.Socket.connect(Socket.java:475)
    [junit] 	at java.net.Socket.<init>(Socket.java:372)
    [junit] 	at java.net.Socket.<init>(Socket.java:186)
    [junit] 	at javax.net.DefaultSocketFactory.createSocket(SocketFactory.java:206)
    [junit] 	at org.apache.derby.client.net.OpenSocketAction.run(Unknown Source)
    [junit] 	at java.security.AccessController.doPrivileged(Native Method)
    [junit] 	... 44 more


   [junit] [EL Severe]: ServerSession(1811924614)--Thread(Thread[main,5,main])--java.lang.ClassCastException: org.apache.derby.jdbc.ClientXADataSource cannot be cast to java.sql.Driver
    [junit] 	at org.eclipse.persistence.sessions.DefaultConnector.instantiateDriver(DefaultConnector.java:337)
    [junit] 	at org.eclipse.persistence.sessions.DefaultConnector.directConnect(DefaultConnector.java:162)
    [junit] 	at org.eclipse.persistence.sessions.DefaultConnector.connect(DefaultConnector.java:117)
    [junit] 	at org.eclipse.persistence.sessions.DatasourceLogin.connectToDatasource(DatasourceLogin.java:162)
    [junit] 	at org.eclipse.persistence.internal.databaseaccess.DatasourceAccessor.connectInternal(DatasourceAccessor.java:327)
    [junit] 	at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.connectInternal(DatabaseAccessor.java:294)
    [junit] 	at org.eclipse.persistence.internal.databaseaccess.DatasourceAccessor.connect(DatasourceAccessor.java:415)
    [junit] 	at org.eclipse.persistence.sessions.server.ConnectionPool.buildConnection(ConnectionPool.java:155)
    [junit] 	at org.eclipse.persistence.sessions.server.ConnectionPool.startUp(ConnectionPool.java:433)
    [junit] 	at org.eclipse.persistence.sessions.server.ServerSession.connect(ServerSession.java:495)
    [junit] 	at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.login(DatabaseSessionImpl.java:632)
    [junit] 	at org.eclipse.persistence.internal.jpa.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:230)
    [junit] 	at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:366)
    [junit] 	at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.getServerSession(EntityManagerFactoryImpl.java:146)
    [junit] 	at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:202)
    [junit] 	at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:190)
    [junit] 	at org.eclipse.persistence.testing.tests.jpa.advanced.concurrency.LifecycleJUnitTest.testClearWhileEntityManagerInCommitPendingStateWithClearAfterCommit(LifecycleJUnitTest.java:192)



>workaround is not to use the embedded non-tx driver - which runs fine but fails with the following for example

## Derby (embedded driver)
jdbc.driver.jar=${extensions.depend.dir}/derby.jar:${extensions.depend.dir}/derbyclient.jar
db.driver=org.apache.derby.jdbc.ClientDriver
db.url=jdbc:derby:eclipselink;create=true
db.user=app
db.pwd=app
db.platform=org.eclipse.persistence.platform.database.DerbyPlatform

>results
Name Tests Errors Failures Time(s) Time Stamp Host 
FullRegressionTestSuite 1611 1066 4 256.810 2009-11-03T20:02:08 xps435 
    [junit] Tests run: 72, Failures: 0, Errors: 2, Time elapsed: 46.581 sec

testEMCloseAndOpen Error N/A 

java.lang.NullPointerException
at org.eclipse.persistence.testing.framework.ConnectionWrapper.close(ConnectionWrapper.java:173)
at org.eclipse.persistence.testing.framework.DriverWrapper.clear(DriverWrapper.java:176)
at org.eclipse.persistence.testing.tests.jpa.advanced.EntityManagerJUnitTestSuite.testEMCloseAndOpen(EntityManagerJUnitTestSuite.java:8392)
at org.eclipse.persistence.testing.framework.junit.JUnitTestCase.runBare(JUnitTestCase.java:428)
 0.078 
testEMFactoryCloseAndOpen Error N/A 

java.lang.NullPointerException
at org.eclipse.persistence.testing.framework.ConnectionWrapper.close(ConnectionWrapper.java:173)
at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.closeDatasourceConnection(DatabaseAccessor.java:467)
at org.eclipse.persistence.internal.databaseaccess.DatasourceAccessor.disconnect(DatasourceAccessor.java:477)
at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.disconnect(DatabaseAccessor.java:479)
at org.eclipse.persistence.sessions.server.ConnectionPool.shutDown(ConnectionPool.java:411)
at org.eclipse.persistence.sessions.server.ServerSession.logout(ServerSession.java:678)
at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.removeSessionFromGlobalSessionManager(EntityManagerSetupImpl.java:270)
at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.undeploy(EntityManagerSetupImpl.java:1596)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.close(EntityManagerFactoryImpl.java:174)
at org.eclipse.persistence.testing.framework.junit.JUnitTestCase.closeEntityManagerFactory(JUnitTestCase.java:398)
at org.eclipse.persistence.testing.framework.junit.JUnitTestCase.closeEntityManagerFactory(JUnitTestCase.java:391)
at org.eclipse.persistence.testing.tests.jpa.advanced.EntityManagerJUnitTestSuite.testEMFactoryCloseAndOpen(EntityManagerJUnitTestSuite.java:8423)
at org.eclipse.persistence.testing.framework.junit.JUnitTestCase.runBare(JUnitTestCase.java:428)
 0.031 
testNoPersistOnCommit Error Attempting to execute an operation on a closed EntityManagerFactory. 

java.lang.IllegalStateException: Attempting to execute an operation on a closed EntityManagerFactory.
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.verifyOpen(EntityManagerFactoryImpl.java:218)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:201)
at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:190)
at org.eclipse.persistence.testing.framework.junit.JUnitTestCase.createEntityManager(JUnitTestCase.java:291)
at org.eclipse.persistence.testing.tests.jpa.advanced.EntityManagerJUnitTestSuite.testNoPersistOnCommit(EntityManagerJUnitTestSuite.java:2745)
at org.eclipse.persistence.testing.framework.junit.JUnitTestCase.runBare(JUnitTestCase.java:428)
Comment 1 Eclipse Webmaster CLA 2022-06-09 10:31:47 EDT
The Eclipselink project has moved to Github: https://github.com/eclipse-ee4j/eclipselink