It looks like someone else describes the same problem:
http://openjpa.208410.n2.nabble.com/PC-object-losing-state-td4249977.html

I should say I'm using 2.0.1

Could this be a known bug?

Rgs,
Joel


On Sun, 2011-01-30 at 17:23 +0000, Joel Halbert wrote:
> Hi Folks,
> 
> I'm getting this exception, sporadically, non-reproducable.
> 
> 
> Unmanaged object in persistent field 
> "com.su3analytics.crawler.model.GlobalFrontier.host" during flush.  However, 
> this field does not allow cascade persist. Set the cascade attribute for this 
> field to CascadeType.PERSIST or CascadeType.ALL (JPA annotations) or 
> "persist" or "all" (JPA orm.xml), or enable cascade-persist globally, or 
> manually persist the related field value prior to flushing. You cannot flush 
> unmanaged objects or graphs that have persistent associations to unmanaged 
> objects.
> FailedObject: com.su3analytics.crawler.model.Host-1
>       at 
> org.apache.openjpa.kernel.SingleFieldManager.preFlushPC(SingleFieldManager.java:767)
>       at 
> org.apache.openjpa.kernel.SingleFieldManager.preFlush(SingleFieldManager.java:607)
>       at 
> org.apache.openjpa.kernel.SingleFieldManager.preFlush(SingleFieldManager.java:575)
>       at 
> org.apache.openjpa.kernel.SingleFieldManager.preFlush(SingleFieldManager.java:491)
>       
> 
> I've tried alternating between  runtime (agent) and compile time
> enhancement, and I get the error in both instances.
> 
> I am not setting the property: openjpa.RuntimeUnenhancedClasses
> 
> My code is loading an  existing persisted object, and creating a new
> object with the existing object as a field. Effectively:
> 
> 
>               ClientSeed cs = null;
>               {
>                       EntityManager em  = 
> JPA.getEntityManagerFactory().createEntityManager();
>                       cs = em.find(ClientSeed.class, 1);
>                       em.close();     
>               }
> 
>               // then later, on another thread
> 
>               {
>                       EntityManager em = 
> JPA.getEntityManagerFactory().createEntityManager();
>                       em.getTransaction().begin();
>                       GlobalFrontier frontier = new GlobalFrontier();
>                       frontier.setHost(cs.getHost());
>                       new GlobalFrontierDao(em).add(frontier);
>                       em.getTransaction().commit();                   
>               }
> 
> The exception is only sporadic though.
> 
> Rgs
> Joel
> 


Reply via email to