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/

Reply via email to