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

Pinaki Poddar commented on OPENJPA-1001:
----------------------------------------

> The results look identical to what I get when running on trunk which has 
> Pinaki's version of SQL caching. 
Does that imply the test passed with 'Pinaki's version of SQL caching'?

The test passed on trunk for me.

*If* this test is failing with previous SQLCaching (not pinaki's version of  
SQL caching which is better be referred as Prepared Query caching -- because 
that more accurately reflects what it is) that brings up again the 
long-standing issue with QuerySQLCache. 

Though Prepared Query Cache has no resemblance to  QuerySQLCache in terms of 
its design and its solution approach -- I still agreed to retain the same 
moniker to configure it because I saw it as a replacement for a potentially 
risky (and costly) mistake that has entered our released service stream. 

I am aware of the concerns/risks of backporting a rather large change such as 
Prepared Query Cache  in a released service stream. But If Prepared Query Cache 
were not written by me, I would have voiced my opinion more strongly to 
backport it as a replacement for existing QuerySQLCache. The risk of regression 
with PQC changes are minimal both because of its design as well as it has been 
operation/tested in one way or other in different scenarios. 

Effectively, In my view (which can be accused of bias in this case), the cost 
of retaining existing QuerySQLCache in the service stream outweighs the risks 
of injecting PQC in the stream -- 


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

Reply via email to