• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: EOCustomObject valueForKey avoiding infinite recursion
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: EOCustomObject valueForKey avoiding infinite recursion


  • Subject: Re: EOCustomObject valueForKey avoiding infinite recursion
  • From: John Pollard <email@hidden>
  • Date: Thu, 11 Sep 2014 20:20:34 +0100

Ray,

Thanks for the thought. I do want to log the stack trace but as I can't predict when this issue might happen and it is rare. I want to narrow down to the close circumstances first, or else I will be logging thousands of these stack traces in normal operation when there isn't a problem. What I need to do is detect when a given attribute is changed from non-null to null (which should never happen), so I need to check what it was before it is being set i.e. just check it was non-null before being set to null.

John

On 11 Sep 2014, at 18:05, Ray Kiddy <email@hidden> wrote:

> On Thu, 11 Sep 2014 14:55:16 +0100
> John Pollard <email@hidden> wrote:
>
>> Hi List,
>>
>> In some debugging within takeValueForKey() I want to find out if the
>> key already has a value set. If I call valueForKey() or
>> storedValueForKey() and the value isn't already set I get infinite
>> recursion as it triggers a fault and tries to load with
>> takeValueForKey() and so on.
>>
>> I am trying to debug where a value is being set to null, but
>> apparently not going via validateXXX() or setXXX() methods, so I want
>> to trap the case where the takeValueForKey() is passed null when the
>> key value was previously non-null and log a stack trace.
>>
>> Thanks
>> John
>
> One way to prevent the recursion you are talking about is to actually
> look at the stack trace inside the method. Call the static method in
> Wonder, ERXUtilities.stackTrace(), and look at what is in it. If you
> find the method you are in, you have already been called.
>
> Without Wonder, you can instantiate a Throwable and get the stack trace
> from that.
>
> Doing this is a smell. You do not want to leave this in your code.
>
> But since you are putting this in to find something, having this check
> there temporarily can be useful.
>
> - ray
>
>
>
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Webobjects-dev mailing list      (email@hidden)
> Help/Unsubscribe/Update your Subscription:
>
> This email sent to email@hidden


 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden


  • Follow-Ups:
    • Re: EOCustomObject valueForKey avoiding infinite recursion
      • From: Theodore Petrosky <email@hidden>
References: 
 >EOCustomObject valueForKey avoiding infinite recursion (From: John Pollard <email@hidden>)
 >Re: EOCustomObject valueForKey avoiding infinite recursion (From: Ray Kiddy <email@hidden>)

  • Prev by Date: Re: maven.wocommunity.org is down
  • Next by Date: Re: EOCustomObject valueForKey avoiding infinite recursion
  • Previous by thread: Re: EOCustomObject valueForKey avoiding infinite recursion
  • Next by thread: Re: EOCustomObject valueForKey avoiding infinite recursion
  • Index(es):
    • Date
    • Thread