openjpa-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Waruna Ranasinghe <waruna...@gmail.com>
Subject Re: How to enable cascade-persistence globally
Date Thu, 21 Jun 2012 15:58:18 GMT
Hi Rick,

I encountered this issue while I was upgrading the OpenJPA version of
Apache JUDDI 3.0.3 from 1.2.0 to 2.2.0.
And I'm not much aware of the source code of JUDDI as well. I just ran the
tests of JUDDI which let me to reproduce the error. I'll try to put
together a minimal unit test.

Thanks,
Waruna
On 21 June 2012 00:50, Rick Curtis <curtisr7@gmail.com> wrote:

> Waruna -
>
> Glad to hear that it solved your problem... but I'm still interested in
> what was going on. Would you be able to put together a small unit test that
> recreates this issue? I'd like to dig in to make sure that there isn't
> still a bug in OpenJPA code.
>
> Thanks,
> Rick
>
> On Wed, Jun 20, 2012 at 2:02 PM, Waruna Ranasinghe <warunapww@gmail.com
> >wrote:
>
> > Hi Rick,
> >
> > after setting
> >
> openjpa.Compatibility=CheckDatabaseForCascadePersistToDetachedEntity=*true*
> >
> > The issue is fixed. Thanks a lot for the help.
> >
> > Thanks,
> > Waruna
> > On 20 June 2012 19:24, Rick Curtis <curtisr7@gmail.com> wrote:
> >
> > > Waruna -
> > >
> > > Can you try setting this property ?
> > >
> > >
> >
> openjpa.Compatibility=CheckDatabaseForCascadePersistToDetachedEntity=false
> > >
> > > Thanks,
> > > Rick
> > >
> > > On Wed, Jun 20, 2012 at 12:08 AM, Waruna Ranasinghe <
> warunapww@gmail.com
> > > >wrote:
> > >
> > > > Hi Rick,
> > > >
> > > > I tried setting the CascadeType.ALL, then I get the following
> > exception.
> > > > Does this mean that the client application is trying to create two
> > > objects
> > > > with the same oid?
> > > >
> > > > The thing is this code works fine with OpenJPA 2.0.0 but if we use
> > > OpenJPA
> > > > 2.2.0, then these errors occur.
> > > >
> > > > Caused by: <openjpa-2.2.0-wso2v1-r128166:129108 nonfatal store error>
> > > > org.apache.openjpa.persistence.EntityExistsException: An object of
> type
> > > > "org.apache.juddi.model.BusinessEntity" with oid
> > > > "uddi:juddi.apache.org:6a6294ef-90c8-43b1-b5f6-8200667f078d"
> > > > already exists in this context; another cannot be persisted.
> > > > FailedObject: org.apache.juddi.model.BusinessEntity@211bfe02
> > > >    at
> > > >
> > > >
> > >
> >
> org.apache.openjpa.kernel.BrokerImpl.checkForDuplicateId(BrokerImpl.java:5075)
> > > >    at
> > > >
> > >
> >
> org.apache.openjpa.kernel.BrokerImpl.persistInternal(BrokerImpl.java:2651)
> > > >    at
> > org.apache.openjpa.kernel.BrokerImpl.persist(BrokerImpl.java:2571)
> > > >    at
> > org.apache.openjpa.kernel.BrokerImpl.persist(BrokerImpl.java:2554)
> > > >    at
> > > >
> > > >
> > >
> >
> org.apache.openjpa.kernel.SingleFieldManager.preFlushPC(SingleFieldManager.java:800)
> > > >     at
> > > >
> > > >
> > >
> >
> org.apache.openjpa.kernel.SingleFieldManager.preFlush(SingleFieldManager.java:621)
> > > >    at
> > > >
> > > >
> > >
> >
> org.apache.openjpa.kernel.SingleFieldManager.preFlush(SingleFieldManager.java:589)
> > > >    at
> > > >
> > > >
> > >
> >
> org.apache.openjpa.kernel.SingleFieldManager.preFlush(SingleFieldManager.java:505)
> > > >    at
> > > >
> > > >
> > >
> >
> org.apache.openjpa.kernel.StateManagerImpl.preFlush(StateManagerImpl.java:2982)
> > > >    at
> > org.apache.openjpa.kernel.PNewState.beforeFlush(PNewState.java:40)
> > > >    at
> > > >
> > > >
> > >
> >
> org.apache.openjpa.kernel.StateManagerImpl.beforeFlush(StateManagerImpl.java:1054)
> > > >    at
> org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2112)
> > > >    at
> > > org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:2072)
> > > >    at
> > > >
> > >
> >
> org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1990)
> > > >    at
> > > >
> > > >
> > >
> >
> org.apache.openjpa.kernel.LocalManagedRuntime.commit(LocalManagedRuntime.java:81)
> > > >    at
> org.apache.openjpa.kernel.BrokerImpl.commit(BrokerImpl.java:1514)
> > > >    at
> > > >
> > > >
> > >
> >
> org.apache.openjpa.kernel.DelegatingBroker.commit(DelegatingBroker.java:933)
> > > >    at
> > > >
> > > >
> > >
> >
> org.apache.openjpa.persistence.EntityManagerImpl.commit(EntityManagerImpl.java:570)
> > > >
> > > >
> > > > Thanks,
> > > > Waruna
> > > > On 19 June 2012 19:40, Rick Curtis <curtisr7@gmail.com> wrote:
> > > >
> > > > > Waruna -
> > > > >
> > > > > For giggles, can you try to manually set the field in
> question(erro)
> > to
> > > > > CascadeType.ALL? This might help us narrow down where the real
> > problem
> > > > is.
> > > > >
> > > > > Thanks,
> > > > > Rick
> > > > >
> > > > > On Tue, Jun 19, 2012 at 6:43 AM, Waruna Ranasinghe <
> > > warunapww@gmail.com
> > > > > >wrote:
> > > > >
> > > > > > Hi all,
> > > > > >
> > > > > > I would like to know whether I can set cascade-persistence
> globally
> > > > > through
> > > > > > the persistence.xml
> > > > > >
> > > > > > I found that I set this in orm.xml, but it did not work. See
the
> > > > > > configuration below
> > > > > > <entity-mappings xmlns="
> http://java.sun.com/xml/ns/persistence/orm
> > "
> > > > > >  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> > > > > >  xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm
> > > > > >  http://java.sun.com/xml/ns/persistence/orm_1_0.xsd"
> > version="1.0">
> > > > > >   <persistence-unit-metadata>
> > > > > >     <persistence-unit-defaults>
> > > > > >       <cascade-persist/>
> > > > > >     </persistence-unit-defaults>
> > > > > >   </persistence-unit-metadata>
> > > > > > </entity-mappings>
> > > > > >
> > > > > >
> > > > > > The reason for me to set this property is that I get the
> following
> > > > > > exception which suggest me to set the  cascade-persistent
> property
> > > > > >
> > > > > > [2012-06-19 17:01:34,177] ERROR
> > > > > > {org.apache.axis2.jaxws.WebServiceExceptionLogger} -  A
> > > > > > org.apache.openjpa.persistence.InvalidStateException throwable
> was
> > > > > caught.
> > > > > > The detail message is: atal user error>
> > > > > > org.apache.openjpa.persistence.InvalidStateException: Encountered
> > > > > unmanaged
> > > > > > object "org.apache.juddi.model.BusinessEntity@96ba55a" in life
> > cycle
> > > > > state
> > > > > > unmanaged while cascading persistence via field
> > > > > > "org.apache.juddi.model.BusinessService.businessEntity" during
> > flush.
> > > > > > However, this field does not allow cascade persist. You cannot
> > flush
> > > > > > unmanaged objects or graphs that have persistent associations
to
> > > > > unmanaged
> > > > > > objects.
> > > > > >  Suggested actions: a) Set the cascade attribute for this field
> to
> > > > > > CascadeType.PERSIST or CascadeType.ALL (JPA annotations) or
> > "persist"
> > > > or
> > > > > > "all" (JPA orm.xml),
> > > > > >  b) enable cascade-persist globally,
> > > > > >  c) manually persist the related field value prior to flushing.
> > > > > >  d) if the reference belongs to another context, allow reference
> to
> > > it
> > > > by
> > > > > > setting StoreContext.setAllowReferenceToSiblingContext().
> > > > > > FailedObject: org.apache.juddi.model.BusinessEntity@96ba55a
> > > > > >    at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.openjpa.kernel.SingleFieldManager.preFlushPC(SingleFieldManager.java:786)
> > > > > >    at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.openjpa.kernel.SingleFieldManager.preFlush(SingleFieldManager.java:621)
> > > > > >    at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.openjpa.kernel.SingleFieldManager.preFlush(SingleFieldManager.java:589)
> > > > > >    at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.openjpa.kernel.SingleFieldManager.preFlush(SingleFieldManager.java:505)
> > > > > >    at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.openjpa.kernel.StateManagerImpl.preFlush(StateManagerImpl.java:2982)
> > > > > >    at
> > > > org.apache.openjpa.kernel.PNewState.beforeFlush(PNewState.java:40)
> > > > > >    at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.openjpa.kernel.StateManagerImpl.beforeFlush(StateManagerImpl.java:1054)
> > > > > >    at
> > > org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2112)
> > > > > >    at
> > > > >
> org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:2072)
> > > > > >    at
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1990)
> > > > > >    at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.openjpa.kernel.LocalManagedRuntime.commit(LocalManagedRuntime.java:81)
> > > > > >    at
> > > org.apache.openjpa.kernel.BrokerImpl.commit(BrokerImpl.java:1514)
> > > > > >    at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.openjpa.kernel.DelegatingBroker.commit(DelegatingBroker.java:933)
> > > > > >    at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.openjpa.persistence.EntityManagerImpl.commit(EntityManagerImpl.java:570)
> > > > > >    at
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> org.apache.juddi.api.impl.UDDIPublicationImpl.saveService(UDDIPublicationImpl.java:539)
> > > > > >
> > > > > >
> > > > > > Thanks in advance,
> > > > > > Waruna
> > > > > >
> > > > > >
> > > > > >
> > > > > > --
> > > > > > -----------------------------------------------------
> > > > > > Regards,
> > > > > > Waruna Ranasinghe
> > > > > >
> > > > > > www.wso2.com - "Lean . Enterprise . Middleware"
> > > > > >
> > > > > > blog: http://warunapw.blogspot.com
> > > > > > twitter: http://twitter.com/warunapww
> > > > > > http://lk.linkedin.com/in/waruna
> > > > > > www.facebook.com/waruna.ranasinghe
> > > > > >
> > > > >
> > > > >
> > > > >
> > > > > --
> > > > > *Rick Curtis*
> > > > >
> > > >
> > > >
> > > >
> > > > --
> > > > -----------------------------------------------------
> > > > Regards,
> > > > Waruna Ranasinghe
> > > >
> > > > www.wso2.com - "Lean . Enterprise . Middleware"
> > > >
> > > > blog: http://warunapw.blogspot.com
> > > > twitter: http://twitter.com/warunapww
> > > > http://lk.linkedin.com/in/waruna
> > > > www.facebook.com/waruna.ranasinghe
> > > >
> > >
> > >
> > >
> > > --
> > > *Rick Curtis*
> > >
> >
> >
> >
> > --
> > -----------------------------------------------------
> > Regards,
> > Waruna Ranasinghe
> >
> > www.wso2.com - "Lean . Enterprise . Middleware"
> >
> > blog: http://warunapw.blogspot.com
> > twitter: http://twitter.com/warunapww
> > http://lk.linkedin.com/in/waruna
> > www.facebook.com/waruna.ranasinghe
> >
>
>
>
> --
> *Rick Curtis*
>



-- 
-----------------------------------------------------
Regards,
Waruna Ranasinghe

www.wso2.com - "Lean . Enterprise . Middleware"

blog: http://warunapw.blogspot.com
twitter: http://twitter.com/warunapww
http://lk.linkedin.com/in/waruna
www.facebook.com/waruna.ranasinghe

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message