Very, very neat.

On Dec 11, 2012, at 1:51 PM, Ramsey Gurley <[email protected]> wrote:

> 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