Ok, I have spent several hours making sure that I lock all of my editing contexts (except the session's default EC), and I have enabled all of the project wonder stuff that helps prevent deadlocks, and I'm still getting the exact same behavior. Here's what I'm doing:
I moved the nested editing context creation out of the component and into the session so that I could lock and unlock it at the session level in awake and sleep:
protected ERXEC _nestedEC;
public Session() { super(); _nestedEC = new ERXEC(defaultEditingContext()); ... }
public void awake() { super.awake(); _nestedEC.lock(); }
public void sleep() { super.sleep(); _nestedEC.unlock(); }
and in my Properties file, I've added the following:
er.extensions.ERXApplication.useEditingContextUnlocker=true er.extensions.ERXEC.defaultAutomaticLockUnlock=true er.extensions.ERXEC.useSharedEditingContext=false er.extensions.ERXEC.defaultCoalesceAutoLocks=true NSLog.DebugGroupMultithreading=true
I have confirmed that the nested editing context is locked by the time awake gets called in the component, so it stands to reason that it would still be locked when the action method gets called.
Is there anything I could still be missing? Does anyone know of any other place I could look or any other information I could print out that would be useful in tracking down the problem? On Mar 24, 2007, at 6:00 PM, Chuck Hill wrote: Are you locking the child EC?
|