[
https://issues.apache.org/jira/browse/OPENJPA-35?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12476773
]
Patrick Linskey commented on OPENJPA-35:
----------------------------------------
I haven't looked at your test, but I'm guessing that since it has a
DetachedStateManager, it's the same instance that you had been using earlier.
I would expect that if you deleted some instances with a bulk delete, then
looked up an instance that had been deleted via a data cache hit, then tried to
do anything involving a lock with that instance, you'd get a failure at commit
time (assuming optimistic transactions and a @Version column).
> 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.