openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Richard Rak (JIRA)" <j...@apache.org>
Subject [jira] Commented: (OPENJPA-1001) java.lang.IndexOutOfBoundsException when executing attached test case
Date Wed, 01 Apr 2009 18:40:13 GMT

    [ https://issues.apache.org/jira/browse/OPENJPA-1001?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12694681#action_12694681
] 

Richard Rak commented on OPENJPA-1001:
--------------------------------------

I've done some more digging around, and the issue *appears* to be:

SelectImpl.wherePrimaryKey(ClassMapping mapping, Column[] toCols, 
    	Column[] fromCols, Object oid, JDBCStore store, PathJoins pj,
    	SQLBuffer buf, List parmList)

This method is adding the primary key values to the parameter list.  It is adding a NULL value
to the parameter list, and is also adding "IS NULL" to the SQLBuffer.

Then, when SQLBuffer calls setParameters(PreparedStatement ps, List cacheParams), it is finding
that NULL value in the cacheParams list, and is throwing the IndexOutOfBoundsException when
attempting to find the column name for the null value.

> java.lang.IndexOutOfBoundsException when executing attached test case
> ---------------------------------------------------------------------
>
>                 Key: OPENJPA-1001
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-1001
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: jdbc
>    Affects Versions: 1.2.1
>         Environment: Can reproduce on Max OS X and Linux
>            Reporter: Richard Rak
>         Attachments: IncompleteRelationshipChildEntity.java, IncompleteRelationshipParentEntity.java,
IncompleteRelationshipSubclass.java, TestIncompleteRelationship.java
>
>
> I am hitting the following exception when executing the given test case:
> Caused by: java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
> 	at java.util.ArrayList.RangeCheck(ArrayList.java:546)
> 	at java.util.ArrayList.get(ArrayList.java:321)
> 	at org.apache.openjpa.jdbc.sql.SQLBuffer.setParameters(SQLBuffer.java:615)
> 	at org.apache.openjpa.jdbc.sql.SQLBuffer.prepareStatement(SQLBuffer.java:515)
> 	at org.apache.openjpa.jdbc.sql.SQLBuffer.prepareStatement(SQLBuffer.java:471)
> 	at org.apache.openjpa.jdbc.sql.SelectImpl.prepareStatement(SelectImpl.java:463)
> 	at org.apache.openjpa.jdbc.sql.SelectImpl.execute(SelectImpl.java:379)
> 	at org.apache.openjpa.jdbc.sql.SelectImpl.execute(SelectImpl.java:325)
> 	at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.getInitializeStateResult(JDBCStoreManager.java:503)
> 	at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.initializeState(JDBCStoreManager.java:322)
> 	at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.initialize(JDBCStoreManager.java:278)
> 	at org.apache.openjpa.kernel.DelegatingStoreManager.initialize(DelegatingStoreManager.java:111)
> 	at org.apache.openjpa.kernel.ROPStoreManager.initialize(ROPStoreManager.java:57)
> 	at org.apache.openjpa.kernel.BrokerImpl.initialize(BrokerImpl.java:894)
> 	at org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:852)
> 	... 53 more
> <openjpa-1.2.1-rexported nonfatal general error> org.apache.openjpa.persistence.PersistenceException:
Index: 1, Size: 1
> 	at org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:875)
> 	at org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:774)
> 	at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.find(JDBCStoreManager.java:951)
> 	at org.apache.openjpa.jdbc.meta.strats.RelationFieldStrategy.load(RelationFieldStrategy.java:609)
> 	at org.apache.openjpa.jdbc.meta.FieldMapping.load(FieldMapping.java:819)
> 	at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:688)
> 	at org.apache.openjpa.kernel.DelegatingStoreManager.load(DelegatingStoreManager.java:116)
> 	at org.apache.openjpa.kernel.ROPStoreManager.load(ROPStoreManager.java:78)
> 	at org.apache.openjpa.kernel.StateManagerImpl.loadFields(StateManagerImpl.java:2921)
> 	at org.apache.openjpa.kernel.StateManagerImpl.loadField(StateManagerImpl.java:2999)
> 	at org.apache.openjpa.kernel.StateManagerImpl.fetchObjectField(StateManagerImpl.java:2242)
> 	at org.apache.openjpa.jdbc.meta.strats.RelationFieldStrategy.delete(RelationFieldStrategy.java:256)
> 	at org.apache.openjpa.jdbc.meta.FieldMapping.delete(FieldMapping.java:589)
> 	at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.delete(AbstractUpdateManager.java:238)
> 	at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.delete(AbstractUpdateManager.java:252)
> 	at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.populateRowManager(AbstractUpdateManager.java:143)
> 	at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:85)
> 	at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:72)
> 	at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreManager.java:717)
> 	at org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:130)
> 	at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2010)
> 	at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1908)
> 	at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:1679)
> 	at org.apache.openjpa.kernel.QueryImpl.isInMemory(QueryImpl.java:956)
> 	at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:796)
> 	at org.apache.openjpa.kernel.QueryImpl.deleteAll(QueryImpl.java:872)
> 	at org.apache.openjpa.kernel.QueryImpl.deleteAll(QueryImpl.java:868)
> 	at org.apache.openjpa.kernel.DelegatingQuery.deleteAll(DelegatingQuery.java:541)
> 	at org.apache.openjpa.persistence.QueryImpl.executeUpdate(QueryImpl.java:331)
> 	at org.apache.openjpa.persistence.test.PersistenceTestCase.clear(PersistenceTestCase.java:232)
> 	at org.apache.openjpa.persistence.test.PersistenceTestCase.clear(PersistenceTestCase.java:205)
> 	at org.apache.openjpa.persistence.test.SingleEMFTestCase.tearDown(SingleEMFTestCase.java:71)
> 	at junit.framework.TestCase.runBare(TestCase.java:130)
> ...

-- 
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