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

Christiaan commented on OPENJPA-453:
------------------------------------

I think two issues combined in this issue:
1) Whether the sm should be nullified on evict or commit or not. This has some 
implications and is under discussion as Craig mentions for jdo. 

2) A NullpointerException is thrown in OpenJPA code. Whatever the decision for 
item 1 I don't think this nullpointer should be thrown. It occurs for the 
following scenario where one thread is accessing an embedded object (object is 
instantiated and the fields need to be loaded from the datastore and another 
thread is doing a commit and wants to nullify the statemanager of the embedded 
object:
Thread1 (Accessing an embedded object)
==========
getEmbeddedObject() => load fields from datastore:
org.apache.openjpa.kernel.StateManagerImpl.replaceField(StateManagerImpl.java:2872)
 
stop here

Thread2
=======
perform a commit => sm is nullified
now continue with Thread1

So instantiating and loading the fields of the embedded should probably be one 
atomic action. (or fields should be left null if the statemanager is already 
nullified).

Ravi, I think you have attached the wrong testcase. The link in your comment is 
right testcase.

kind regards,
Christiaan

> Evicting embedded object nullifies statemanager
> -----------------------------------------------
>
>                 Key: OPENJPA-453
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-453
>             Project: OpenJPA
>          Issue Type: Bug
>         Environment: Kodo 4.1.4, Ms sql server 2005, jTDS 1.2, jdk 1.6
>            Reporter: Christiaan
>         Attachments: openJPATestCase.zip, TestCaseEvictEmbedded.zip
>
>
> I am noticing the following behaviour: If evict() is called on an embedded
> object the statemanager is nullified which is in contrast to non-embedded
> objects. Subsequently, calling JDOHelper.getPersistenceManager() on the
> evicted embedded object returns null. Is this the correct behaviour?

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