I've just fixed the deadlock: I was missing the "tx.close()" statement at the end of each of my transaction. Now I seek for the reason why my cars is empty, after the save.. using embedded mode. When using REST mode, it still works.
I would just like to have the confirmation that the way I exposed above is correct. I will then search myself for the reason :) Thanks a lot :) On Friday, March 14, 2014 2:57:16 AM UTC+1, Michael Azerhad wrote: > > It sounds to be a deadlock: > > A deadlock scenario has been detected and avoided. This means that two ormore > transactions > , which were holding locks, were wanting to await locks held by one > another, which would have resulted in a deadlock between these > transactions. This exception was thrown instead of ending up in that > deadlock. > > > See the deadlock section in the Neo4j manual for how to avoid this: http: > //docs.neo4j.org/chunked/stable/transactions-deadlocks.html > > > Details: 'Transaction(98, > owner:"play-akka.actor.default-dispatcher-6")[STATUS_ACTIVE,Resources=1] > can't wait on resource RWLock[NodeLock[id=0]] since => Transaction(98,owner > :"play-akka.actor.default-dispatcher-6")[STATUS_ACTIVE,Resources=1] <-[: > HELD_BY]- RWLock[NodeLock[id=3]] <-[:WAITING_FOR]- Transaction(101, owner: > "play-akka.actor.default-dispatcher-9")[STATUS_ACTIVE,Resources=1] <-[: > HELD_BY]- RWLock[NodeLock[id=0]]'. > at > org.springframework.data.neo4j.support.Neo4jExceptionTranslator.translateExceptionIfPossible(Neo4jExceptionTranslator.java:67) > at > org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:59) > at > org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:213) > at > org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:147) > at > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) > at > org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207) > at $Proxy57.save(Unknown Source) > at > com.myApp.infrastructure.persistence.user.Neo4jUserRepository.save(Neo4jUserRepository.scala:15) > > > On Friday, March 14, 2014 2:45:17 AM UTC+1, Michael Hunger wrote: >> >> How does it fail? >> D >> Am 14.03.2014 um 01:54 schrieb Michael Azerhad <[email protected]>: >> >> Hi, >> >> I try to update the relationship of a Node that is a collection. >> Example: User has a list of Cars. >> >> Firstly, I saved the User with the Cars set beforehand, and the whole >> works with embedded mode and REST mode. >> >> Now, I want to add one Car to the list of this User. >> >> So I tried the following: (Scala code but easy to figure out) >> >> val tx = graphDatabaseService.beginTx() >> val user = userRepository.findById(1) >> user.cars.clear() //cars being the relationships (Set[Cars]) >> user.cars.add(new Car("Ferrari")) >> userRepository.save(user) // fail with embedded but >> works with REST mode ! >> tx.success() >> >> >> Is it the right way to update the collection ? >> Is there something special on the embedded mode handling ? >> >> Thanks, >> >> Michael >> >> >> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Neo4j" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> For more options, visit https://groups.google.com/d/optout. >> >> >> -- You received this message because you are subscribed to the Google Groups "Neo4j" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
