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

Pinaki Poddar updated OPENJPA-35:
---------------------------------

    Attachment: openjpa-35.trace.txt

Added a trace output of the test case that is failing. 

shows that the deleted instance (PObject-4501) is in L2 Cache.

Please note the instance was locked and modified *after* delete by query (as we 
still has its reference).
Does that give the cache a chance to heal?

Please note that PObject-4501 has a DetachedStateManager when we lock/modify it 
after delete.


> In-memory Delete operation fails with active DataCache
> ------------------------------------------------------
>
>                 Key: OPENJPA-35
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-35
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: datacache, query
>         Environment: Only happens when DataCache is active
>                       <property name="openjpa.DataCache"                
> value="true"/>
>                       <property name="openjpa.RemoteCommitProvider"     
> value="sjvm"/>
>            Reporter: Pinaki Poddar
>            Priority: Critical
>         Attachments: openjpa-35.test.zip, openjpa-35.trace.txt
>
>
> Delete through query such as 
>               Query query = em.createQuery("DELETE FROM Node n");
>               query.executeUpdate();
> fails with following exception (only when DataCache is active)
> Exception in thread "main" <4|false|0.0.0> 
> org.apache.openjpa.persistence.ArgumentException: 
> org.apache.openjpa.datacache.QueryCacheStoreQuery
>       at 
> org.apache.openjpa.kernel.QueryImpl.deleteInMemory(QueryImpl.java:1029)
>       at 
> org.apache.openjpa.kernel.ExpressionStoreQuery$DataStoreExecutor.executeDelete(ExpressionStoreQuery.java:665)
>       at 
> org.apache.openjpa.datacache.QueryCacheStoreQuery$QueryCacheExecutor.executeDelete(QueryCacheStoreQuery.java:348)
>       at org.apache.openjpa.kernel.QueryImpl.delete(QueryImpl.java:1012)
>       at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:768)
>       at org.apache.openjpa.kernel.QueryImpl.deleteAll(QueryImpl.java:831)
>       at org.apache.openjpa.kernel.QueryImpl.deleteAll(QueryImpl.java:827)
>       at 
> org.apache.openjpa.kernel.DelegatingQuery.deleteAll(DelegatingQuery.java:544)
>       at 
> org.apache.openjpa.persistence.QueryImpl.executeUpdate(QueryImpl.java:299)
>       at control.Test.clear(Test.java:87)
>       at control.Test.run(Test.java:37)
>       at control.Test.main(Test.java:178)
> Caused by: java.lang.ClassCastException: 
> org.apache.openjpa.datacache.QueryCacheStoreQuery
>       at 
> org.apache.openjpa.kernel.ExpressionStoreQuery$DataStoreExecutor.executeQuery(ExpressionStoreQuery.java:651)
>       at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:949)
>       at 
> org.apache.openjpa.kernel.QueryImpl.deleteInMemory(QueryImpl.java:1018)
>       ... 11 more

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