cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Grzegorz Kossakowski <gkossakow...@apache.org>
Subject Re: pipelineComponent scope troubles
Date Thu, 13 Sep 2007 21:42:44 GMT
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/

Mime
View raw message