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/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to