Hi all,Cross posting this to wonder and WO, as it seems appropriate on both lists.
I tried adapting ERXEC to a JC scenario. I stripped away the factory stuff, the delegate and properties (I made it always autoLock), as well as lock coalescing. However, it does not help. I get deadlocks and exceptions. There are two threads involved, one instance of my WorkerThread class and AWT's event dispatch thread (responsible for GUI painting).
Deadlocks happen this way:- the worker thread is for some reason halted in EODistributeObjectStore's fetch (EODistributedObjectStore.objectsWithFetchSpecification (EOFetchSpecification, EOEditingContext) line: 499 - the event dispatch thread is getting an object for global ID, and is waiting for a lock release in the editing context
Exceptions happen this way: on my WorkerThread:java.lang.IllegalStateException: Illegal Lock usage: unlocking thread not owner. at com.webobjects.foundation.NSRecursiveLock.unlock (NSRecursiveLock.java:207) at com.webobjects.eodistribution.client.EODistributedObjectStore.unlock (EODistributedObjectStore.java:71) at com.webobjects.eocontrol.EOEditingContext.unlockObjectStore (EOEditingContext.java:4753) at com.webobjects.eocontrol.EOEditingContext.objectsWithFetchSpecification( EOEditingContext.java:4118)
at org.wojc.client.JCEC.objectsWithFetchSpecification(JCEC.java:844)
at
com.webobjects.eocontrol.EOEditingContext.objectsWithFetchSpecification(
EOEditingContext.java:4500)
... or sometimes on AWT's EDT:java.lang.IllegalStateException: Illegal Lock usage: unlocking thread not owner. at com.webobjects.foundation.NSRecursiveLock.unlock (NSRecursiveLock.java:207) at com.webobjects.eodistribution.client.EODistributedObjectStore.unlock (EODistributedObjectStore.java:71) at com.webobjects.eocontrol.EOEditingContext.unlockObjectStore (EOEditingContext.java:4753)
at org.wojc.client.JCEC.unlockObjectStore(JCEC.java:916)
at com.webobjects.eocontrol.EOCustomObject.willReadRelationship
(EOCustomObject.java:1304)
at com.webobjects.eocontrol._EOMutableKnownKeyDictionary$Initializer
$_LazyGenericRecordBinding.valueInObject
(_EOMutableKnownKeyDictionary.java:560)
at com.webobjects.eocontrol.EOCustomObject.storedValueForKey
(EOCustomObject.java:1736)
at com.havaso.dvis.client.eof.eo._Project.users(_Project.java:175)
...
Maybe I screwed up with stripping the ERXEC? I'm attaching the
source, maybe somebody can point out the mistake?
Any help would be greatly appreciated, Flor
JCEC.java
Description: Binary data
_______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list ([email protected]) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to [EMAIL PROTECTED]
