It's line 50 in the original ERD2WUtilities, but line 59 in my screenshot. So, 
i == 7 and the null result is returned by:

>>>           result = c.valueForKeyNoInference(first);

  
Am 26.10.2012 um 23:53 schrieb Chuck Hill:

> For the keypath you are showing, how can i == -1?  Does that keypath have 
> some character other character than .?  Looks like a period, but isn't?
> 
> 
> On 2012-10-26, at 2:48 PM, Fabian Peters wrote:
> 
>> Well, I've been able to find where it returns null for the session, but I 
>> have no idea why. It's line 50 of ERD2WUtilities:
>> 
>>>   // This prevents the dreaded KeyValueCoding null object exception, for 
>>> say key paths: object.entityName
>>>   // Should just return null instead of throwing.
>>>   public static Object contextValueForKeyNoInferenceNoException(D2WContext 
>>> c, String keyPath) {
>>>       Object result = null;
>>>       int i = keyPath.indexOf(".");
>>>       if (i == -1) {
>>>           result = c.valueForKeyNoInference(keyPath);
>>>       } else {
>>>           String first = keyPath.substring(0, i);
>>>           String second = keyPath.substring(i + 1);
>>>           result = c.valueForKeyNoInference(first);
>> 
>> 
>> 
>> <http://www.e-lumo.com/tmp/d2wdebug2.png>
>> <http://www.e-lumo.com/tmp/d2wdebug3.png>
>> 
>> The line numbers in my screenshots don't match as I had to add the keyPaths 
>> array as a debugging aid. The null result occurs exactly once when the edit 
>> button is clicked, never when the "New" button is clicked.
>> 
>> Any input much appreciated!
>> 
>> Am 26.10.2012 um 22:32 schrieb David LeBer:
>> 
>>> Fabian,
>>> 
>>> If you cannot access the session from within any part of the D2W system 
>>> that is just whacked.
>>> 
>>> D2W is heavily dependent on a session.
>>> 
>>> Yes, you need to dig deeper, I for one, am scratching my head.
>>> 
>>> D
>>> 
>>> On 2012-10-26, at 4:26 PM, Fabian Peters <[email protected]> wrote:
>>> 
>>>> Unfortunately, yes. I had already tried another key on session. I'm now 
>>>> using a conditional breakpoint for the keypath in ERD2WUtilities' 
>>>> contextValueForKeyNoInferenceNoException method. When the creation page is 
>>>> generated, everything's fine. But when the edit page is generated, I get a 
>>>> null result for the key path at times - other times it returns the 
>>>> expected value. Looks like a longer debugging session...
>>>> 
>>>> Am 26.10.2012 um 22:19 schrieb Ramsey Gurley:
>>>> 
>>>>> Are you sure there's no session? What do you get when you enter 
>>>>> session.sessionID?
>>>>> 
>>>>> On Oct 26, 2012, at 12:05 PM, Fabian Peters wrote:
>>>>> 
>>>>>> Thanks Ramsey, just tried this but to no avail. I've tried both 
>>>>>> 
>>>>>> session.context.page.d2wContext.entity.name
>>>>>> session.context.page.d2wContext.pageConfiguration
>>>>>> 
>>>>>> in the "D2W Key" field of the ERDDebuggingHelp. The problem seems to be 
>>>>>> that the session cannot be reached, unless the call is made from within 
>>>>>> the property level repetition:
>>>>>> 
>>>>>> <http://www.e-lumo.com/tmp/d2wdebug.png>
>>>>>> 
>>>>>> 
>>>>>> Am 26.10.2012 um 20:37 schrieb Ramsey Gurley:
>>>>>> 
>>>>>>> You may not necessarily have a page configuration depending on how the 
>>>>>>> page is instantiated. Have you tried a rule with a LHS like
>>>>>>> 
>>>>>>> session.context.page.d2wContext.entity.name = 'EntityA' and 
>>>>>>> session.context.page.d2wContext.task = 'edit'
>>>>>>> 
>>>>>>> ?
>>>>>>> 
>>>>>>> Ramsey
>>>>>>> 
>>>>>>> On Oct 26, 2012, at 11:18 AM, Fabian Peters wrote:
>>>>>>> 
>>>>>>>> Sorry, sent too fast and mixed up my mock entities. This seems to be 
>>>>>>>> (more) correct:
>>>>>>>> 
>>>>>>>> Unfortunately parentPageConfiguration doesn't help, as there's an 
>>>>>>>> additional level of nesting due to the 
>>>>>>>> "EditRelationshipEmbeddedEntityC". It will always just return 
>>>>>>>> "EditRelationshipEmbeddedEntityC", when the embedded page is 
>>>>>>>> "EditEmbeddedEntityC" and the "root" pageConfiguration is 
>>>>>>>> "EditEntityA" or "EditEntityB".
>>>>>>>> 
>>>>>>>> My rule works fine when the pageConfiguration is 
>>>>>>>> "CreateEmbeddedEntityC":
>>>>>>>> 
>>>>>>>> 333 : ((pageConfiguration = 'CreateEmbeddedEntityC' or 
>>>>>>>> pageConfiguration = 'EditEmbeddedEntityC') and 
>>>>>>>> session.context.page.d2wContext.pageConfiguration like '*EntityC') => 
>>>>>>>> displayPropertyKeys = ("foo", "bar", "baz") 
>>>>>>>> [com.webobjects.directtoweb.Assignment]
>>>>>>>> 
>>>>>>>> But the same rule fails when the task is "edit". Tracing the rules 
>>>>>>>> shows that "session.context.page.d2wContext.pageConfiguration" 
>>>>>>>> evaluates to null then.
>>>>>>>> 
>>>>>>>> Am 26.10.2012 um 20:00 schrieb David Holt:
>>>>>>>> 
>>>>>>>>> Sorry those should have been: editEmbeddedRelationshipEntityC
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> On 2012-10-26, at 10:57 AM, David Holt wrote:
>>>>>>>>> 
>>>>>>>>>> If you're using embedded configurations, wouldn't you just have a 
>>>>>>>>>> couple of rules like:
>>>>>>>>>> 
>>>>>>>>>> 20 : (pageConfiguration = 'editRelationshipEntityC' and 
>>>>>>>>>> parentPageConfiguration = 'EditEntityA') => displayPropertyKeys =  
>>>>>>>>>> ("name", "description") [com.webobjects.directtoweb.Assignment]
>>>>>>>>>> 
>>>>>>>>>> 20 : (pageConfiguration = 'editRelationshipEntityC' and 
>>>>>>>>>> parentPageConfiguration = 'EditEntityB') => displayPropertyKeys =  
>>>>>>>>>> ("name") [com.webobjects.directtoweb.Assignment]
>>>>>>>>>> 
>>>>>>>>>> Unless I'm missing what you're trying to do.
>>>>>>>>>> 
>>>>>>>>>> d
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> On 2012-10-26, at 10:09 AM, Fabian Peters wrote:
>>>>>>>>>> 
>>>>>>>>>>> Yes, this is with ModernLook.
>>>>>>>>>>> 
>>>>>>>>>>> Am 26.10.2012 um 17:56 schrieb David Holt:
>>>>>>>>>>> 
>>>>>>>>>>>> Are you using ModernLook with actual embedded page configurations?
>>>>>>>>>>>> 
>>>>>>>>>>>> David
>>>>>>>>>>>> 
>>>>>>>>>>>> On 2012-10-26, at 6:40 AM, Fabian Peters wrote:
>>>>>>>>>>>> 
>>>>>>>>>>>>> Hi all,
>>>>>>>>>>>>> 
>>>>>>>>>>>>> An entity that's being edited (EntityC) has relationships to two 
>>>>>>>>>>>>> different entities (EntityA, EntityB) and different keys should 
>>>>>>>>>>>>> be shown depending on the context (root pageConfiguration being 
>>>>>>>>>>>>> "EditEntityA" or "EditEntityB"). In order to display the right 
>>>>>>>>>>>>> properties on an embedded page, I need to look at the root 
>>>>>>>>>>>>> pageConfiguration, "parentPageConfiguration" is the same in both 
>>>>>>>>>>>>> contexts.
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Calling "session.context.page.d2wContext.pageConfiguration" works 
>>>>>>>>>>>>> when used at the property level, but (mostly) fails when used in 
>>>>>>>>>>>>> a rule acting on "displayPropertyKeys". Apparently, it's 
>>>>>>>>>>>>> impossible to get to the session from there. Is there an 
>>>>>>>>>>>>> alternative approach to get the root page configuration in a D2W 
>>>>>>>>>>>>> app?
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Fabian
>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>> 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/programmingosx%40mac.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/programmingosx%40mac.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/lists.fabian%40e-lumo.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/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/dleber_wodev%40codeferous.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/chill%40global-village.net
>> 
>> This email sent to [email protected]
> 
> -- 
> Chuck Hill             Senior Consultant / VP Development
> 
> Practical WebObjects - for developers who want to increase their overall 
> knowledge of WebObjects or who are trying to solve specific problems.    
> http://www.global-village.net/gvc/practical_webobjects
> 
> Global Village Consulting ranks 13th in 2012 in BIV's Top 100 Fastest Growing 
> Companies in B.C! 
> Global Village Consulting ranks 76th in 24th annual PROFIT 200 ranking of 
> Canada’s Fastest-Growing Companies by PROFIT Magazine!
> 
> 
> 
> 
> 
> 
> 
> 


 _______________________________________________
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