If you want to do it all the time, you can supply your own ERXEC factory to do 
it. Something like the following in your application

public class Factory extends ERXEC.DefaultFactory {
        @Override
        public EOEditingContext _createEditingContext(EOObjectStore parent) {
                EOEditingContext ec = super._createEditingContext(objectStore);
                ec.setRetainsRegisteredObjects(true);
                return ec;
        }
}

Then just call

ERXEC.setFactory(new Factory());

somewhere during startup.

Ramsey

On Dec 11, 2012, at 4:37 PM, Johnny Miller wrote:

> Hi Maik and Ramsey,
> 
> Understood.  This app has a few users who are writing all the time so i'm not 
> worried about memory as much as I'm worried about it:
> 
> A. Working
> B. Users see each other's writes.
> 
> So I'm going to play it safe and just set setRetainRegistedObjects(true) in 
> most cases.
> 
> Thanks again this really had me worried.
> 
> Johnny
> 
> On Dec 11, 2012, at 1:29 PM, Ramsey Gurley <[email protected]> wrote:
> 
>> I think you have to set it on the parent and you have to do it while the 
>> context is fresh.  If you fetch EOs into a context and then set it, I 
>> believe it will throw an exception. That's my recollection of it anyway :-)
>> 
>> Ramsey
>> 
>> On Dec 11, 2012, at 4:25 PM, Maik Musall wrote:
>> 
>>> Hi Johnny,
>>> 
>>> I'm not entirely sure, but I think you need to 
>>> setRetainRegisteredObjects(true) on the parent immediately after the 
>>> parent's creation if you ever plan to create child editing contexts on it. 
>>> That's what I do, although it costs memory if you can't always decide that 
>>> at parent's creation time. In that respect, my previous comment was too 
>>> unprecise, sorry.
>>> 
>>> But let's see what Ramsey says.
>>> 
>>> Maik
>>> 
>>> 
>>> Am 12.12.2012 um 00:17 schrieb Johnny Miller <[email protected]>:
>>> 
>>>> Hi Maik,
>>>> 
>>>> Does this look right to you?
>>>> 
>>>>    public EOEditingContext ec() {
>>>> 
>>>>            if(null == _ec) {
>>>>                    _ec = ERXEC.newEditingContext();
>>>>            }
>>>>            
>>>>            return _ec;
>>>> 
>>>>    }
>>>>    
>>>>    public EOEditingContext childEc() {
>>>>            ec().setRetainsRegisteredObjects(true);
>>>>            return ERXEC.newEditingContext(ec(), false);
>>>>    }       
>>>> 
>>>>            public createObject() {
>>>>                    EOEditingContext childEc = childEc();
>>>>                    // create the object
>>>>            }
>>>> 
>>>> I'm just wondering if it's OK that _ec could be around for a while before 
>>>> I setRetainsRegisteredObjects to true on it.
>>>> 
>>>> Thanks a lot!
>>>> 
>>>> On Dec 11, 2012, at 1:02 PM, Maik Musall <[email protected]> wrote:
>>>> 
>>>>> Do it immediately after creating the child editing context.
>>>>> 
>>>>> Am 11.12.2012 um 21:57 schrieb Johnny Miller <[email protected]>:
>>>>> 
>>>>>> Thank you kind Sir.  I thought i was going crazy.
>>>>>> 
>>>>>> When do you use setRetainsRegisteredObjects?  When the EO is initialized?
>>>>>> 
>>>>>> Thanks a million!
>>>>>> 
>>>>>> On Dec 11, 2012, at 10:41 AM, Ramsey Gurley <[email protected]> 
>>>>>> wrote:
>>>>>> 
>>>>>>> This is a known issue when using child editing contexts. The only 
>>>>>>> current workaround I'm aware of is:
>>>>>>> 
>>>>>>> parentEC.setRetainsRegisteredObjects(true);
>>>>>>> 
>>>>>>> Ramsey
>>>>>>> 
>>>>>>> On Dec 11, 2012, at 1:37 PM, Johnny Miller wrote:
>>>>>>> 
>>>>>>>> Hello everyone,
>>>>>>>> 
>>>>>>>> I'm having problem with a newly deployed app where these errors are 
>>>>>>>> popping up intermittently all over the place.
>>>>>>>> 
>>>>>>>> I was wondering if maybe I could get some advice on whether some 
>>>>>>>> things I'm doing are possibly causing this...
>>>>>>>> 
>>>>>>>> 1.  I'm only using ERXEC 
>>>>>>>> 2.  I'm not explicitly using lock or unlock anywhere.
>>>>>>>> 3.  I'm creating new EOs with a child EditingContext - I'm going to go 
>>>>>>>> to peer editing context in new build but in some cases I just can't do 
>>>>>>>> this i.e. the EO is created using a wizard and I don't want to insert 
>>>>>>>> the EO unless the user completes the wizard.
>>>>>>>> 4.  I'm using EOEditingContext.setDefaultFetchTimestampLag(0) in the 
>>>>>>>> application constructor.
>>>>>>>> 
>>>>>>>> This app has a fair amount of data and a few users who are crunching 
>>>>>>>> away on it, constantly adding and updating records.  I set item 4 to 0 
>>>>>>>> because I was worried about users viewing data that is out of sync.
>>>>>>>> 
>>>>>>>> Could #4 be tripping the error?
>>>>>>>> 
>>>>>>>> Aloha,
>>>>>>>> Mr. Johnny Miller
>>>>>>>> Web Development Manager
>>>>>>>> Kahalawai Media Company
>>>>>>>> Lahaina, HI 96761
>>>>>>>> tel: (808) 661-7962 | mobile: (808) 283-0791
>>>>>>>> website | e-mail       
>>>>>>>> 
>>>>>>>> _______________________________________________
>>>>>>>> Do not post admin requests to the list. They will be ignored.
>>>>>>>> Webobjects-dev mailing list      ([email protected])
>>>>>>>> Help/Unsubscribe/Update your Subscription:
>>>>>>>> https://lists.apple.com/mailman/options/webobjects-dev/rgurley%40smarthealth.com
>>>>>>>> 
>>>>>>>> This email sent to [email protected]
>>>>>>> 
>>>>>> 
>>>>>> _______________________________________________
>>>>>> Do not post admin requests to the list. They will be ignored.
>>>>>> Webobjects-dev mailing list      ([email protected])
>>>>>> Help/Unsubscribe/Update your Subscription:
>>>>>> https://lists.apple.com/mailman/options/webobjects-dev/maik%40selbstdenker.ag
>>>>>> 
>>>>>> This email sent to [email protected]
>>>>> 
>>>> 
>>> 
>>> _______________________________________________
>>> Do not post admin requests to the list. They will be ignored.
>>> Webobjects-dev mailing list      ([email protected])
>>> Help/Unsubscribe/Update your Subscription:
>>> https://lists.apple.com/mailman/options/webobjects-dev/rgurley%40smarthealth.com
>>> 
>>> This email sent to [email protected]
>> 
> 

 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to