openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Pinaki Poddar (JIRA)" <j...@apache.org>
Subject [jira] Commented: (OPENJPA-35) In-memory Delete operation fails with active DataCache
Date Thu, 01 Mar 2007 00:45:50 GMT

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

Pinaki Poddar commented on OPENJPA-35:
--------------------------------------

Right -- a newly looked up copy (the copy comes out of L2 cache and not from the database
where it really do not exist anymore) -- is essentially not usable i.e. any commit set containing
that object fails. The L2 cache heals as soon as the commit fails.  

So let me summarize 
a) delete via query leaves a copy in the L2 cache
b) the cached copy can be located via em.find()
c) however, any modify operation on this ghost copy will fail
d) this failure will signal to clear the copy from the L2 cache.

Do you think, it is worth mentioning in the doc?
   

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


Mime
View raw message