Giacomo Pati pisze:
>
> Here it is :-)
>
<snip/>
I agree, it's *ugly* :-)
> Caused by: org.apache.cocoon.el.ExpressionException: Couldn't evaluate
> expression status.myTasks.size()
> at
> org.apache.cocoon.el.impl.jexl.JexlExpression.evaluate(JexlExpression.java:50)
> at
> org.apache.cocoon.el.impl.jexl.JexlExpression.getNode(JexlExpression.java:82)
> at
> org.apache.cocoon.template.expression.JXTExpression.getNode(JXTExpression.java:72)
> at
> org.apache.cocoon.template.script.event.Characters.execute(Characters.java:58)
> ... 226 more
> Caused by: java.lang.NullPointerException
> at
> org.apache.commons.jexl.parser.ASTSizeFunction.sizeOf(ASTSizeFunction.java:77)
> at
> org.apache.commons.jexl.parser.ASTSizeMethod.execute(ASTSizeMethod.java:51)
> at
> org.apache.commons.jexl.parser.ASTReference.execute(ASTReference.java:68)
> at
> org.apache.commons.jexl.parser.ASTReference.value(ASTReference.java:50)
> at
> org.apache.commons.jexl.ExpressionImpl.evaluate(ExpressionImpl.java:86)
> at
> org.apache.cocoon.el.impl.jexl.JexlExpression.evaluate(JexlExpression.java:48)
> ... 229 more
I guess that you came across nasty bug in JEXL that tries to evaluate built-in
functions on null values
and informs about it in very bad way.
The question is: where and how status.myTasks is supposed to be set? (see
below, also)
<snip/>
> <map:match pattern="screen/**">
> <map:select type="resource-exists">
> <map:when test="{1}.xml">
> <map:generate src="{1}.xml" label="content" />
> </map:when>
> <map:otherwise>
> <map:generate src="servlet:bfabric-core:/screen/{1}"
> />
Let me guess: status.myTasks is called in that pipeline, right?
<snip/>
>
>> Not that much, unfortunately because it only shows that something is broken
>> in pipelineComponent
>> scope code so no news here. I suggest to do three things:
>> 1. Make sure that Object Model is in "call" scope and not in
>> "pipelineComponent" one.
>> 2. If there is still a problem, paste whole stack trace, then.
>
> See above.
Thanks Giacomo. Believe me or not, but I think we are much closer to the real
cause of your
troubles. In order to cast some spells on OM code I need to know how
status.myTasks is put on OM AND
how that snippet is called from the bits that need status.myTasks variable
later on.
>> Last thing, Giacomo, if you could respond to my mails more often we could
>> find a solution for your
>> troubles more quickly. ;)
>> (take into account that I have exam tomorrow so I will respond on late
>> afternoon, though)
>
> I'll do my best ;-)
Thanks! Tomorrow (Friday) I plan to work on Cocoon so I will be available whole
day and I hope we
will manage to push things forward. Sorry for your inconveniences.
--
Grzegorz Kossakowski
Committer and PMC Member of Apache Cocoon
http://reflectingonthevicissitudes.wordpress.com/