Hi Nick,

yes you should be able to handle errors in your subsitemap. 
I'm not really sure why the processingexception is not unrolled.

For the project we've already handled a couple of other exceptions, so it 
should work.

Regards,

Jeroen Reijn


-----Original Message-----
From: [EMAIL PROTECTED] on behalf of [EMAIL PROTECTED]
Sent: Fri 4/4/2008 11:27 AM
To: [email protected]
Subject: [HippoCMS-dev] Handling errors in sub sitemap
 
This is a crosspost from the cocoon list, maybe someone here knows anything 
about Cocoon error handling.

I've tried following the explanation on handling errors with cocoon [1], but I 
can't get it working like I expect.

I've a main sitemap in which sits a pipeline:

            <map:match pattern="external/**">
                <map:mount src="site://external/sitemap.xmap" 
uri-prefix="external" />
            </map:match>

And I have a external/sitemap.xmap which contains:

            <map:match pattern="data">
                <map:generate src="repository:default://data/messages.xml" />
                <map:transform src="site://transformers/external/data.xsl" />
                <map:serialize type="xml" />
            </map:match>

This site map can throw a java.net.MalformedURLException inside a 
ProcessingException. So I've created a selector:
    <map:components>
        <map:selectors>
            <map:selector name="exception" 
src="org.apache.cocoon.selection.ExceptionSelector">
                <exception name="processing" 
class="org.apache.cocoon.ProcessingException" unroll="true" />
                <exceptions name="malformedurl" 
class="java.net.MalformedURLException" />
            </map:selector>
        </map:selectors>
    </map:components>

I tried putting the selector inside the subsitemap and created a handle-errors:
            <map:handle-errors>
                <map:select type="exception">
                    <map:when test="processing">
                        <map:generate src="resource://processing.xml" />
                        <map:serialize type="xml" />
                    </map:when>
                    <map:when test="malformedurl">
                        <map:generate src="resource://malformedurl.xml" />
                        <map:serialize type="xml" />
                    </map:when>
                </map:select>
            </map:handle-errors>

This piece I tried putting inside the <pipeline> that contains the data matcher 
and inside the <pipelines> element that contains the data matcher. This two 
options didn't work. Then I tried putting the selector and the handle errors in 
the <pipelines> element which contains my mount part. And there it only handled 
the ProcessingException part and not the malformed url part.

I'm using Cocoon 2.1.11.

Can errors be handled in the sitemap where they are generated, even though the 
sitemap is mounted?
Why is my processingexception not being unrolled?

Hope someone can help,

Nick S.

[1] http://cocoon.apache.org/2.1/userdocs/concepts/errorhandling.html
********************************************
Hippocms-dev: Hippo CMS development public mailinglist

********************************************
Hippocms-dev: Hippo CMS development public mailinglist

Reply via email to