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]