openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gopalakrishnan (JIRA)" <j...@apache.org>
Subject [jira] Updated: (OPENJPA-682) java.lang.ArrayIndexOutOfBoundsException: 0 at at org.apache.openjpa.jdbc.sql.DBDictionary.getForeignKeyConstraintSQL() when creatingEntitymanager
Date Fri, 08 Aug 2008 07:42:44 GMT

     [ https://issues.apache.org/jira/browse/OPENJPA-682?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Gopalakrishnan updated OPENJPA-682:
-----------------------------------

    Attachment: JIRA_682_Test.zip

Sample eclipse project that recreates the problem

> java.lang.ArrayIndexOutOfBoundsException: 0 at at org.apache.openjpa.jdbc.sql.DBDictionary.getForeignKeyConstraintSQL()
when creatingEntitymanager
> --------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: OPENJPA-682
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-682
>             Project: OpenJPA
>          Issue Type: Bug
>    Affects Versions: 1.2.0
>         Environment: OpenJPA 1.2.0 SNAPSHOT (July 25th build), Derby 10.4.1.13,
>            Reporter: Gopalakrishnan
>         Attachments: JIRA_682_Test.zip
>
>
> EntityManagerFactory.createEntityManager() throws java.lang.ArrayIndexOutOfBoundsException:
0 for the sample application attached. Here is the complete trace.
> <openjpa-1.2.0-SNAPSHOT-rexported nonfatal general error> org.apache.openjpa.persistence.PersistenceException:
0
> 	at org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:196)
> 	at org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:142)
> 	at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:192)
> 	at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:145)
> 	at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:56)
> 	at jpatest.test.JPATest.setUp(JPATest.java:41)
> ...
> Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
> 	at org.apache.openjpa.jdbc.sql.DBDictionary.getForeignKeyConstraintSQL(DBDictionary.java:3373)
> 	at org.apache.openjpa.jdbc.sql.DBDictionary.getAddForeignKeySQL(DBDictionary.java:3252)
> 	at org.apache.openjpa.jdbc.schema.SchemaTool.addForeignKey(SchemaTool.java:1066)
> 	at org.apache.openjpa.jdbc.schema.SchemaTool.add(SchemaTool.java:604)
> 	at org.apache.openjpa.jdbc.schema.SchemaTool.add(SchemaTool.java:344)
> 	at org.apache.openjpa.jdbc.schema.SchemaTool.run(SchemaTool.java:321)
> 	at org.apache.openjpa.jdbc.meta.MappingTool.record(MappingTool.java:501)
> 	at org.apache.openjpa.jdbc.meta.MappingTool.record(MappingTool.java:453)
> 	at org.apache.openjpa.jdbc.kernel.JDBCBrokerFactory.synchronizeMappings(JDBCBrokerFactory.java:159)
> 	at org.apache.openjpa.jdbc.kernel.JDBCBrokerFactory.newBrokerImpl(JDBCBrokerFactory.java:119)
> 	at org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:189)
> 	... 29 more
> I enabled SQLtrace and the SQL generated for OPENJPASAMPLE.D is missing fields from its
relation to VC. I am expecting create table D command to be
> CREATE TABLE OPENJPASAMPLE.D (id INTEGER NOT NULL, VC_VCID INTEGER, VC_VCS_VCSID INTEGER,
VC_VCS_E_EID INTEGER, C_CID INTEGER, C_CM_CMID INTEGER, C_CM_E_EID INTEGER, PRIMARY KEY (id,VC_VCID
INTEGER, VC_VCS_VCSID INTEGER, VC_VCS_E_EID INTEGER))
> Given below is the SQLTrace:
> 8015  test  TRACE  [main] openjpa.jdbc.SQL - <t 19105669, conn 26625789> executing
stmnt 31447311 CREATE TABLE OPENJPASAMPLE.C (cId INTEGER NOT NULL, CM_CMID INTEGER NOT NULL,
CM_E_EID INTEGER NOT NULL, PRIMARY KEY (cId, CM_CMID, CM_E_EID))
> 8187  test  TRACE  [main] openjpa.jdbc.SQL - <t 19105669, conn 26625789> [172 ms]
spent
> 8187  test  TRACE  [main] openjpa.jdbc.SQL - <t 19105669, conn 24422114> executing
stmnt 29499086 CREATE TABLE OPENJPASAMPLE.CM (cmId INTEGER NOT NULL, E_EID INTEGER NOT NULL,
PRIMARY KEY (cmId, E_EID))
> 8343  test  TRACE  [main] openjpa.jdbc.SQL - <t 19105669, conn 24422114> [156 ms]
spent
> 8359  test  TRACE  [main] openjpa.jdbc.SQL - <t 19105669, conn 15184882> executing
stmnt 2011334 CREATE TABLE OPENJPASAMPLE.D (id INTEGER NOT NULL, C_CID INTEGER, C_CM_CMID
INTEGER, C_CM_E_EID INTEGER, PRIMARY KEY (id))
> 8484  test  TRACE  [main] openjpa.jdbc.SQL - <t 19105669, conn 15184882> [125 ms]
spent
> 8500  test  TRACE  [main] openjpa.jdbc.SQL - <t 19105669, conn 27921979> executing
stmnt 22823147 CREATE TABLE OPENJPASAMPLE.E (eId INTEGER NOT NULL, PRIMARY KEY (eId))
> 8750  test  TRACE  [main] openjpa.jdbc.SQL - <t 19105669, conn 27921979> [250 ms]
spent
> 8750  test  TRACE  [main] openjpa.jdbc.SQL - <t 19105669, conn 8993129> executing
stmnt 21731956 CREATE TABLE OPENJPASAMPLE.VC (vcId INTEGER NOT NULL, VCS_E_EID INTEGER NOT
NULL, VCS_VCSID INTEGER NOT NULL, PRIMARY KEY (vcId, VCS_E_EID, VCS_VCSID))
> 8890  test  TRACE  [main] openjpa.jdbc.SQL - <t 19105669, conn 8993129> [140 ms]
spent
> 8906  test  TRACE  [main] openjpa.jdbc.SQL - <t 19105669, conn 18439211> executing
stmnt 7202313 CREATE TABLE OPENJPASAMPLE.VCS (E_EID INTEGER NOT NULL, vcsId INTEGER NOT NULL,
PRIMARY KEY (E_EID, vcsId))
> 9047  test  TRACE  [main] openjpa.jdbc.SQL - <t 19105669, conn 18439211> [141 ms]
spent
> 9047  test  TRACE  [main] openjpa.jdbc.SQL - <t 19105669, conn 18602441> executing
stmnt 10023314 ALTER TABLE OPENJPASAMPLE.C ADD FOREIGN KEY (CM_CMID, CM_E_EID) REFERENCES
OPENJPASAMPLE.CM (cmId, E_EID)
> 9156  test  TRACE  [main] openjpa.jdbc.SQL - <t 19105669, conn 18602441> [109 ms]
spent
> 9156  test  TRACE  [main] openjpa.jdbc.SQL - <t 19105669, conn 18529640> executing
stmnt 24685281 ALTER TABLE OPENJPASAMPLE.CM ADD FOREIGN KEY (E_EID) REFERENCES OPENJPASAMPLE.E
(eId)
> 9250  test  TRACE  [main] openjpa.jdbc.SQL - <t 19105669, conn 18529640> [94 ms]
spent
> <openjpa-1.2.0-SNAPSHOT-rexported nonfatal general error> org.apache.openjpa.persistence.PersistenceException:
0
> 	at org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:196)
> So I am assuming that it is failing at generation of foreign key command for OPENJPASAMPLE.D
table. 
> When the classes C and CM are renamed to WC and WCM (i.e alphabetically higher than VC
and VCS) the problem goes away. 
> Here is link to post regarding this problem in the OpenJPA user list : http://n2.nabble.com/ArrayIndexOutOfBoundsException%3A0-at-org.apache.openjpa.jdbc.sql.DBDictionary.getForeignKeyConstraintSQL%28DBDictionary.java%3A3373%29-td668199.html

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message