openjpa-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Pinaki Poddar <ppod...@apache.org>
Subject Re: openJPA detached object can not be serialized by Castor. is it related with pcStateManager?
Date Wed, 15 Apr 2009 07:19:25 GMT

1. decompile the enhanced classes (with jad or something similar) to see the code that has
been generated for serialization methods such as read/writeObject(), if any.

2. What does Castor require/assume to marshal an instance to XML?

3. Verify the state (field values) of the detached instance before Castor tries to marshal
it.

 

Thanks for the quick reply.

Step 1.  enhanced the persistent classes at the build time

Step 2.  added the openjpa.DetachState property, also tried other DetachState setting. 

Result: Castor still can not serialize the detached objects. The marshall result is still
empty xml.

Any suggestion?






Hello,
  try the following configuration [1]
<property name="openjpa.DetachState" value="loaded(DetachedStateField=false)"/>

  OpenJPA detached object instance x (optionally) can carry a StateManager (pcStateManager)
instance sm(x) which can track changes in  x while x is not under OpenJPA managed context.
This makes merging of x into a OpenJPA managed context more effective. 

  The above configuration makes the detached instance x' serialization compatible with original
x.

  Serialization behavior does change based on the detach state configuration and most likely
not liked by Castor's marshaller.

  To narrow the cause, you should also enhance your domain classes at build-time [2]. 

   
[1] http://openjpa.apache.org/builds/latest/docs/manual/manual.html#ref_guide_detach_graph
[2] http://openjpa.apache.org/builds/latest/docs/manual/manual.html#ref_guide_pc_enhance_build



1. Environment: 
    java1.5, OpenJPA 1.2.1 , castor 1.2

2. any object retrieved from database by OpenJPA cannot be serialized to xml by castor.  No
error message from org.exolab.castor.xml.Marshaller  .  The result xml file is completely
empty

3. When the same persistent class is instantiated by "new" operator,  the instantiated object
can be serialized by castor.

4. The only different between "openJPA detached objects" and "new instantiated objects" is
the "openJPA detached objects" has member pcStateManager = null.

Questions: 
  1. is this behavior related the pcStateManager member in the detached persistent objects?
 
  2. What is the purpose of pcStateManager ?  
  3.How does it affect the serialization behavior ?








-----
Pinaki Poddar                      http://ppoddar.blogspot.com/
                                      
http://www.linkedin.com/in/pinakipoddar
OpenJPA PMC Member/Committer
JPA Expert Group Member
-- 
View this message in context: http://n2.nabble.com/openJPA-detached-object-can-not-be-serialized-by-Castor.--is-it-related-with-pcStateManager--tp2636117p2637388.html
Sent from the OpenJPA Users mailing list archive at Nabble.com.


Mime
View raw message