[
https://issues.apache.org/jira/browse/OPENJPA-836?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
johan jarkovic updated OPENJPA-836:
-----------------------------------
Description:
I have the cache enabled. kodo.DataCache=true
I update an Entity's description field (no fk);
After the em.merge or em.persist I do an em.clear.
In a new transaction (new webpage request) I do a select query asking for the
previous entity.
I get back the Entity but only it's id has been set. everything else is null.
>From then on all the attempts to execute the same query get the same result.
This does not happen if kodo.DataCache=false.
This does not happen if kodo.DataCache=true but the em.clear is not used.
All the above operations are done using the JPA api.
However, If I aquire manually the StoreCache I see that the Entity still exists
in.
If do a manual storeCache.evict on the specific Entity or evictAll, the problem
is resolved.
Note: The original weblogic 10.3 openjpa jar which is version 1.1 has been
replaced with version 1.2.0. (and also tested with snapshot of 1.3.0)
//CODE:
//The only table that I use in the example is test_table.
putData(){
TestTable test = em.find(TestTable.class, 1);
test.setDescription("This is a NEW description");
em.merge(test);
em.flush();
em.clear();
}
getData(){
TestTable test = em.find(TestTable.class, 1);
log.debug("Description is is: "+test.getDescription());
}
request1: getData(); --> prints: "this is an old description"
request2: putData();
request3: getData();--> prints null;
was:
I have the cache enabled. kodo.DataCache=true
I update an Entity's description field (no fk);
After the em.merge or em.persist I do an em.clear.
In a new transaction (new webpage request) I do a select query asking for the
previous entity.
I get back the Entity but only it's id has been set. everything else is null.
>From then on all the attempts to execute the same query get the same result.
This does not happen if kodo.DataCache=false.
This does not happen if kodo.DataCache=true but the em.clear is not used.
All the above operations are done using the JPA api.
However, If I aquire manually the StoreCache I see that the Entity still exists
in.
If do a manual storeCache.evict on the specific Entity or evictAll, the problem
is resolved.
Note: The original weblogic 10.3 openjpa jar which is version 1.1 has been
replaced with version 1.2.0. (and also tested with snapshot of 1.3.0)
> after em.clear the datacache is inconsistent
> --------------------------------------------
>
> Key: OPENJPA-836
> URL: https://issues.apache.org/jira/browse/OPENJPA-836
> Project: OpenJPA
> Issue Type: Bug
> Components: datacache
> Affects Versions: 1.2.0, 1.3.0
> Environment: Weblogic 10.3 on WinXP EJB 3.0 (CMT)
> <property name="kodo.DataCache" value="true"/>
> <property name="kodo.RemoteCommitProvider" value="sjvm"/>
> Reporter: johan jarkovic
> Priority: Critical
>
> I have the cache enabled. kodo.DataCache=true
> I update an Entity's description field (no fk);
> After the em.merge or em.persist I do an em.clear.
> In a new transaction (new webpage request) I do a select query asking for the
> previous entity.
> I get back the Entity but only it's id has been set. everything else is null.
> From then on all the attempts to execute the same query get the same result.
> This does not happen if kodo.DataCache=false.
> This does not happen if kodo.DataCache=true but the em.clear is not used.
> All the above operations are done using the JPA api.
> However, If I aquire manually the StoreCache I see that the Entity still
> exists in.
> If do a manual storeCache.evict on the specific Entity or evictAll, the
> problem is resolved.
> Note: The original weblogic 10.3 openjpa jar which is version 1.1 has been
> replaced with version 1.2.0. (and also tested with snapshot of 1.3.0)
> //CODE:
> //The only table that I use in the example is test_table.
> putData(){
> TestTable test = em.find(TestTable.class, 1);
> test.setDescription("This is a NEW description");
> em.merge(test);
> em.flush();
> em.clear();
> }
> getData(){
> TestTable test = em.find(TestTable.class, 1);
> log.debug("Description is is: "+test.getDescription());
> }
> request1: getData(); --> prints: "this is an old description"
> request2: putData();
> request3: getData();--> prints null;
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.