You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openjpa.apache.org by "johan jarkovic (JIRA)" <ji...@apache.org> on 2009/01/21 11:38:59 UTC

[jira] Commented: (OPENJPA-836) after em.clear the datacache is inconsistent

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

johan jarkovic commented on OPENJPA-836:
----------------------------------------

Fix Verified on latest 1.3 snapshot! 

> 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
>            Assignee: Catalina Wei
>            Priority: Critical
>             Fix For: 1.3.0, 2.0.0
>
>
> 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.