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

Rick Curtis commented on OPENJPA-1899:
--------------------------------------

Robert -

I ran with your provided example this morning with 2.1.x and here is the result 
that I'm seeing:

C:\dev\jpa\tmp\evictproblem\bin>c:\java6-sun\bin\java.exe -cp 
..\conf;..\classes;..\lib\jdbcdrivers\mysql-connector-java-3.1.13-bin.jar;..\lib\openjpa2.0.1\openjpa-all-2.1.0-SNAPSHOT.jar
 com.foo.bar.app.EvictTest

In order to run this test, you must configure the remote commit provider 
setting for SJVM.
58  evictproblem  INFO   [main] openjpa.Runtime - Starting OpenJPA 
2.1.0-SNAPSHOT
139  evictproblem  INFO   [main] openjpa.jdbc.JDBC - Using dictionary class 
"org.apache.openjpa.jdbc.sql.MySQLDictionary".
770  evictproblem  INFO   [main] openjpa.Runtime - The Entity 
"com.foo.bar.models.Contact" was enhanced at level "2", but the current level 
of enhancement is "961,774".
774  evictproblem  INFO   [main] openjpa.Runtime - A down level Entity was 
detected and logged. Please enable RUNTIME trace to see all down level Entities.
The address from first find is: This is the original street address
The address from second find is: This is the original street address
The address before rollback is: This is a new street address
The address after rollback is: This is the original street address
The address from third find is: This is the original street address

Thanks,
Rick

> Evict from L2 of a object causes secondary objects to never be loaded in graph
> ------------------------------------------------------------------------------
>
>                 Key: OPENJPA-1899
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-1899
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: kernel
>    Affects Versions: 2.0.0, 2.0.1
>         Environment: N/A
>            Reporter: Robert Krier
>            Priority: Blocker
>         Attachments: evictproblem.zip, evictproblem.zip, 
> OPENJPA-1899.test.patch
>
>
> I have a simple example.  A customer has a reference to an address and a 
> (primary) contact (an extension of person).  Find the customer, get the 
> contact and evict it from L2.  Now find the customer again using a new entity 
> manager.  Begin a Tx and change the address of the contact and then call 
> Customer.getPrimaryContact() (this is important)   Rollback the Tx.  Now find 
> the customer again using another new EntityManager and call 
> Customer.getPrimaryContact().getAddress().  The address associated with the 
> contact is Null and not the original address as expected.  The same scenario 
> works fine under OpenJPA 1.2.2.  
> The reason this is a big problem for us is we use L2 caching in our 
> application and the application is clustered.  The same problem occurs if 
> different nodes in the cluster operate on the same objects.  In a cluster 
> "evict" is not directly called, but the RemoteCommitProvider will evict the 
> L2 and create the same problem.  
> I have attached example code to reproduce the problem using a single JVM and 
> calling Evict.  I also have another example where you can deploy the code on 
> two nodes in a cluster and see the problem occurs that way as well.  Each 
> example contains Unix shell scripts and Windows cmd files as well.  Each are 
> paired for JPA 1.0 and JPA 2.0.  Again, the problem only occurs under JPA 2.0.
> This is a block for us.  We cannot ship our product with this type of problem 
> as it means objects and their graph can be corrupted.  

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