Bug with IndirectMap? [message #503989] |
Wed, 16 December 2009 17:43 |
Brendan Haverlock Messages: 46 Registered: July 2009 |
Member |
|
|
Hi,
In my multithreaded WS call, I keep getting locked on the following line.
at java.lang.Object.wait(Object.java:485)
at org.eclipse.persistence.internal.helper.WriteLockManager.acq uireLocksForClone(WriteLockManager.java:82)
- locked <0x9da44f68> (a org.eclipse.persistence.internal.helper.ConcurrencyManager)
at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.clo neAndRegisterObject(UnitOfWorkImpl.java:960)
at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.clo neAndRegisterObject(UnitOfWorkImpl.java:898)
at org.eclipse.persistence.internal.sessions.UnitOfWorkIdentity MapAccessor.getAndCloneCacheKeyFromParent(UnitOfWorkIdentity MapAccessor.java:17
at org.eclipse.persistence.internal.sessions.UnitOfWorkIdentity MapAccessor.getFromIdentityMap(UnitOfWorkIdentityMapAccessor .java:110)
at org.eclipse.persistence.internal.sessions.IdentityMapAccesso r.getFromIdentityMap(IdentityMapAccessor.java:331)
at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.reg isterExistingObject(UnitOfWorkImpl.java:3889)
at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.reg isterExistingObject(UnitOfWorkImpl.java:3849)
at org.eclipse.persistence.mappings.CollectionMapping.buildElem entClone(CollectionMapping.java:240)
at org.eclipse.persistence.internal.queries.MapContainerPolicy. buildCloneForValue(MapContainerPolicy.java:208)
at org.eclipse.persistence.internal.queries.MapContainerPolicy. addNextValueFromIteratorInto(MapContainerPolicy.java:169)
at org.eclipse.persistence.mappings.CollectionMapping.buildClon eForPartObject(CollectionMapping.java:195)
at org.eclipse.persistence.internal.indirection.UnitOfWorkQuery ValueHolder.buildCloneFor(UnitOfWorkQueryValueHolder.java:51 )
at org.eclipse.persistence.internal.indirection.UnitOfWorkValue Holder.instantiateImpl(UnitOfWorkValueHolder.java:162)
at org.eclipse.persistence.internal.indirection.UnitOfWorkValue Holder.instantiate(UnitOfWorkValueHolder.java:230)
at org.eclipse.persistence.internal.indirection.DatabaseValueHo lder.getValue(DatabaseValueHolder.java:83)
- locked <0x9db159b0> (a org.eclipse.persistence.internal.indirection.UnitOfWorkQuery ValueHolder)
at org.eclipse.persistence.indirection.IndirectMap.buildDelegat e(IndirectMap.java:110)
at org.eclipse.persistence.indirection.IndirectMap.getDelegate( IndirectMap.java:316)
- locked <0x9db159e8> (a org.eclipse.persistence.indirection.IndirectMap)
at org.eclipse.persistence.indirection.IndirectMap.get(Indirect Map.java:303)
- locked <0x9db159e8> (a org.eclipse.persistence.indirection.IndirectMap)
The postgres connection just says "Idle in transaction." I've tried synchronizing my code all t he way up to the highest level, and I still keep getting this lockup. Is this a bug with eclipselink?
Thanks,
-Brendan
[Updated on: Wed, 16 December 2009 17:43] Report message to a moderator
|
|
|
Re: Bug with IndirectMap? [message #504176 is a reply to message #503989] |
Thu, 17 December 2009 15:11 |
|
Deadlocks are normally difficult issues to diagnose, so if you have an EclipseLink support contract with Oracle, and would recommend to contact technical support.
If you could include what the other threads are blocked on it would be helpful. Also some indication of what you are doing and how to recreate the issue. Does this issue only occur when using a Map?
Some things to try would be,
- disable the cache (shared=false)
- ensure you are using LAZY (indirection) on every relationship
There are also some debug methods on IdentityMapAccessor to print out locks, these may be of some use.
James : Wiki : Book : Blog : Twitter
|
|
|
Powered by
FUDForum. Page generated in 0.01569 seconds