Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 355271 - DelimitedPUTestSuite testPopulate fails with Oracle10Platform
Summary: DelimitedPUTestSuite testPopulate fails with Oracle10Platform
Status: RESOLVED WONTFIX
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:
Depends on:
Blocks: 454799
  Show dependency tree
 
Reported: 2011-08-19 17:00 EDT by Andrei Ilitchev CLA
Modified: 2022-06-09 10:03 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 Andrei Ilitchev CLA 2011-08-19 17:00:17 EDT
To reproduce run DelimitedPUTestSuite.testPopulate with Oracle10 (or 9, or 8) platform.
Result:
[EL Finer]: 2011-08-19 16:54:43.015--DatabaseSessionImpl(9644993)--Thread(Thread[Thread-3,6,main])--Begin testPopulate(org.eclipse.persistence.testing.tests.jpa.delimited.DelimitedPUTestSuite)
[EL Finer]: 2011-08-19 16:54:44.187--DatabaseSessionImpl(9644993)--Thread(Thread[Thread-3,6,main])--Finished testPopulate(org.eclipse.persistence.testing.tests.jpa.delimited.DelimitedPUTestSuite)


TEST MODEL NAME: (JUnit test): testPopulate(org.eclipse.persistence.testing.tests.jpa.delimited.DelimitedPUTestSuite)
###ERRORS###

Errors: (failures): 0
Fatal Errors: (errors): 1
Passed: 0
Total Tests: 1

Errors:
TEST SUITE NAME: org.eclipse.persistence.testing.tests.jpa.delimited.DelimitedPUTestSuite
TEST NAME: testPopulate(org.eclipse.persistence.testing.tests.jpa.delimited.DelimitedPUTestSuite)
##FAILURE##
RESULT:      FatalError (error)
javax.persistence.RollbackException: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.4.0.qualifier): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.SQLException: Invalid column name
Error Code: 17006
Call: SELECT "picture", "script" FROM "CMP3_DEL_IMAGE" WHERE ("id" = ?) FOR UPDATE
	bind => [1]
Query: InsertObjectQuery(org.eclipse.persistence.testing.models.jpa.delimited.SimpleImage@53c88e)
	at org.eclipse.persistence.internal.jpa.transaction.EntityTransactionImpl.commitInternal(EntityTransactionImpl.java:102)
	at org.eclipse.persistence.internal.jpa.transaction.EntityTransactionImpl.commit(EntityTransactionImpl.java:63)
	at org.eclipse.persistence.testing.framework.junit.JUnitTestCase.commitTransaction(JUnitTestCase.java:324)
	at org.eclipse.persistence.testing.tests.jpa.delimited.DelimitedPUTestSuite.testPopulate(DelimitedPUTestSuite.java:102)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at junit.framework.TestCase.runTest(TestCase.java:168)
	at junit.framework.TestCase.runBare(TestCase.java:134)
	at org.eclipse.persistence.testing.framework.junit.JUnitTestCase.runBare(JUnitTestCase.java:551)
	at junit.framework.TestResult$1.protect(TestResult.java:110)
	at junit.framework.TestResult.runProtected(TestResult.java:128)
	at junit.framework.TestResult.run(TestResult.java:113)
	at junit.framework.TestCase.run(TestCase.java:124)
	at org.eclipse.persistence.testing.framework.TestExecutor.execute(TestExecutor.java:248)
	at org.eclipse.persistence.testing.framework.TestExecutor.runTest(TestExecutor.java:681)
	at org.eclipse.persistence.testing.framework.ui.SynchronizedTestExecutor.run(SynchronizedTestExecutor.java:61)
Caused by: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.4.0.qualifier): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.SQLException: Invalid column name
Error Code: 17006
Call: SELECT "picture", "script" FROM "CMP3_DEL_IMAGE" WHERE ("id" = ?) FOR UPDATE
	bind => [1]
Query: InsertObjectQuery(org.eclipse.persistence.testing.models.jpa.delimited.SimpleImage@53c88e)
	at org.eclipse.persistence.exceptions.DatabaseException.sqlException(DatabaseException.java:333)
	at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:644)
	at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeCall(DatabaseAccessor.java:535)
	at org.eclipse.persistence.internal.helper.LOBValueWriter.buildAndExecuteCall(LOBValueWriter.java:77)
	at org.eclipse.persistence.internal.helper.LOBValueWriter.buildAndExecuteSelectCalls(LOBValueWriter.java:188)
	at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.flushSelectCalls(DatabaseAccessor.java:156)
	at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.insertObject(DatasourceCallQueryMechanism.java:367)
	at org.eclipse.persistence.internal.queries.StatementQueryMechanism.insertObject(StatementQueryMechanism.java:162)
	at org.eclipse.persistence.internal.queries.StatementQueryMechanism.insertObject(StatementQueryMechanism.java:177)
	at org.eclipse.persistence.internal.queries.DatabaseQueryMechanism.insertObjectForWrite(DatabaseQueryMechanism.java:472)
	at org.eclipse.persistence.queries.InsertObjectQuery.executeCommit(InsertObjectQuery.java:80)
	at org.eclipse.persistence.queries.InsertObjectQuery.executeCommitWithChangeSet(InsertObjectQuery.java:90)
	at org.eclipse.persistence.internal.queries.DatabaseQueryMechanism.executeWriteWithChangeSet(DatabaseQueryMechanism.java:287)
	at org.eclipse.persistence.queries.WriteObjectQuery.executeDatabaseQuery(WriteObjectQuery.java:58)
	at org.eclipse.persistence.queries.DatabaseQuery.execute(DatabaseQuery.java:844)
	at org.eclipse.persistence.queries.DatabaseQuery.executeInUnitOfWork(DatabaseQuery.java:743)
	at org.eclipse.persistence.queries.ObjectLevelModifyQuery.executeInUnitOfWorkObjectLevelModifyQuery(ObjectLevelModifyQuery.java:108)
	at org.eclipse.persistence.queries.ObjectLevelModifyQuery.executeInUnitOfWork(ObjectLevelModifyQuery.java:85)
	at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.internalExecuteQuery(UnitOfWorkImpl.java:2871)
	at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1512)
	at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1494)
	at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1445)
	at org.eclipse.persistence.internal.sessions.CommitManager.commitNewObjectsForClassWithChangeSet(CommitManager.java:224)
	at org.eclipse.persistence.internal.sessions.CommitManager.commitAllObjectsForClassWithChangeSet(CommitManager.java:191)
	at org.eclipse.persistence.internal.sessions.CommitManager.commitAllObjectsWithChangeSet(CommitManager.java:136)
	at org.eclipse.persistence.internal.sessions.AbstractSession.writeAllObjectsWithChangeSet(AbstractSession.java:3795)
	at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.commitToDatabase(UnitOfWorkImpl.java:1415)
	at org.eclipse.persistence.internal.sessions.RepeatableWriteUnitOfWork.commitToDatabase(RepeatableWriteUnitOfWork.java:636)
	at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.commitToDatabaseWithChangeSet(UnitOfWorkImpl.java:1505)
	at org.eclipse.persistence.internal.sessions.RepeatableWriteUnitOfWork.commitRootUnitOfWork(RepeatableWriteUnitOfWork.java:267)
	at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.commitAndResume(UnitOfWorkImpl.java:1143)
	at org.eclipse.persistence.internal.jpa.transaction.EntityTransactionImpl.commitInternal(EntityTransactionImpl.java:84)
	... 17 more
Caused by: java.sql.SQLException: Invalid column name
	at oracle.jdbc.driver.OracleStatement.getColumnIndex(OracleStatement.java:3677)
	at oracle.jdbc.driver.OracleResultSetImpl.findColumn(OracleResultSetImpl.java:2749)
	at oracle.jdbc.driver.OracleResultSet.getObject(OracleResultSet.java:458)
	at org.eclipse.persistence.platform.database.oracle.Oracle10Platform.writeLOB(Oracle10Platform.java:70)
	at org.eclipse.persistence.internal.helper.LOBValueWriter.fetchLocatorAndWriteValue(LOBValueWriter.java:92)
	at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.processResultSet(DatabaseAccessor.java:695)
	at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:621)
	... 47 more



The only difference between Oracle10Platform and Oracle11Platform (for which the test passes) is tthat 11 does not use lob locators.

public class Oracle11Platform extends Oracle10Platform {
    public Oracle11Platform() {
        super();
        // Locator is no longer required to write LOB values
        usesLocatorForLOBWrite = false;
    }
}
Comment 1 Martin Grebac CLA 2014-12-10 14:50:08 EST
Oracle 10 Platform.
Comment 2 Eclipse Webmaster CLA 2022-06-09 10:03:55 EDT
The Eclipselink project has moved to Github: https://github.com/eclipse-ee4j/eclipselink