Hello all,

I'm getting very strange errors after I aggregated the output from module.properties.properties, as suggested by Ross in [1].

Here's briefly the history of my attempts, and the XPath behaviour:

- first aggregation (in o.a.f.p.output.pdf/output.xmap):

<map:aggregate element="site">
    <map:part src="cocoon://skinconf.xml"/>
    <map:part src="cocoon://module.properties.properties"/>
    <map:part src="cocoon://{1}{2}.xml"/>
</map:aggregate>

(note, the properties module is the second part in the aggregation)

XSLT/XPath problems (in o.a.f.p.output.pdf/resources/stylesheets/ document-to-fo.xsl):

1)
  <xsl:variable
        name="properties"
        select="//properties" />

Expected result: all properties available as daughters of $properties
Actual result: nothing assigned to the variable

2)
  <xsl:variable
        name="properties"
        select="//@name[1]" />

Expected result: value of first @name in the document, which is found in the skinconfig section (ie not a property from the properties section)
Actual result: same as expected result

3)
  <xsl:variable
        name="properties"
        select="//@name[2]" />

Expected result: value of *second* @name in the document
Actual result: empty string

Subsequent attempts at accessing any @name beyond the first one fail.

Conclusion: I'm not able to access anything in the properties section of the aggregated document. But I can see all the properties if I look at the aggregated output directly - it is all there!

- I then change the order of aggregation:

<map:aggregate element="site">
    <map:part src="cocoon://module.properties.properties"/>
    <map:part src="cocoon://skinconf.xml"/>
    <map:part src="cocoon://{1}{2}.xml"/>
</map:aggregate>

(note, the properties module is now the *first* part in the aggregation)

The problems persist, except that I am now able to access the *first* property of the properties section, by using an XPath expression as in 1) above.

4)
  <xsl:variable
        name="properties"
        select="count(//@name)" />

Expected result: the number of @name attributes in the document
Actual result:

Internal Server Error
Message: null
Description: No details available.
Sender: org.apache.cocoon.servlet.CocoonServlet
Source: Cocoon Servlet
Request URI
        index.pdf
cause
        org.apache.xpath.objects.XNumber

From error.log:
Caused by: java.lang.ClassCastException: org.apache.xpath.objects.XNumber at org .apache .xpath .axes .FilterExprIteratorSimple .executeFilterExpr(FilterExprIteratorSimple.java:114) at org.apache.xpath.axes.FilterExprWalker.setRoot(FilterExprWalker.java: 129) at org.apache.xpath.axes.WalkingIterator.setRoot(WalkingIterator.java:154) at org.apache.xpath.axes.LocPathIterator.asNode(LocPathIterator.java:298) at org.apache.xpath.axes.LocPathIterator.bool(LocPathIterator.java:318)
        at org.apache.xpath.XPath.bool(XPath.java:410)

This is a simple XPath expression! I really do not understand what is going on.

Any help or clue would be greatly appreciated - my attempts at improving the pdf plugin are stranded at the moment:(

Best regards,
Sjur

[1] http://marc.info/?l=forrest-dev&m=121520709107279&w=2