You said:

When rendering the AJAX response, Tapestry tries to evaluate an expression on 'child' (*), but 'child' is null.Why does Tapestry need the value of 'child'? How is it supposed to know?

The stack trace says the problem is elsewhere:

[ERROR] batch.ViewBatch Render queue error in BeginRender[batch/View:executabletable.executablerowpair.zone]: Failure reading parameter 'id' of component batch/View:executabletable.executablerowpair.zone: Property 'executable' (within property expression 'executable.id', of ch.sukha.testmachine.components.ExecutableRowPair@2b44cce) is null. (...) /ExecutableRowPair.tml, line 17.

I don't know what exactly is in ExecutableRowPair line 17, but, anyway, what happens here very much probably is that during the AJAX render the executable property you're passing to an ExecutableRowPair parameter is null.

Here's your code:

<t:loop source="executable.children" value="child">  <!-- * -->
      <t:ExecutableRowPair executable="child" .../>
</t:loop>

You said:

Why does Tapestry need the value of 'child'?

Quite obviously, you're passing it as a parameter to a component, so the component needs the value of 'child'. ;)

How is it supposed to know?

You're supposed to provide it.

Don't forget that, when a Zone is rendered though AJAX, just its contents are rendered again, so the Loop isn't executed and the child property is null. The most probable solution to your problem is to pass the child parameter value as the context parameter of your toggleEvent link.

--
Thiago H. de Paula Figueiredo

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org

Reply via email to