Author: rgardler Date: Wed Mar 21 18:02:26 2007 New Revision: 521063 URL: http://svn.apache.org/viewvc?view=rev&rev=521063 Log: - Add sitemap error handling - (slightly) more meaningful error for locationmap resolution problems (FOR-701)
Added: forrest/trunk/main/webapp/resources/stylesheets/exception-to-html.xsl (with props) Modified: forrest/trunk/main/webapp/sitemap.xmap Added: forrest/trunk/main/webapp/resources/stylesheets/exception-to-html.xsl URL: http://svn.apache.org/viewvc/forrest/trunk/main/webapp/resources/stylesheets/exception-to-html.xsl?view=auto&rev=521063 ============================================================================== --- forrest/trunk/main/webapp/resources/stylesheets/exception-to-html.xsl (added) +++ forrest/trunk/main/webapp/resources/stylesheets/exception-to-html.xsl Wed Mar 21 18:02:26 2007 @@ -0,0 +1,54 @@ +<?xml version="1.0"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<xsl:stylesheet version="1.0" + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:ex="http://apache.org/cocoon/exception/1.0"> + + <xsl:template match="/"> + <html> + <head> + <title>Exception</title> + </head> + <body> + <xsl:apply-templates/> + </body> + </html> + </xsl:template> + + <xsl:template match="ex:exception-report"> + <xsl:choose> + <xsl:when test="contains(ex:message, '(Access is denied)')"> + <h1>An Error Occurred</h1> + + <p>It looks like there is a problem with an unresolved hint in the your locationmap + found at <xsl:value-of select="substring(ex:message, 0, string-length(ex:message) - string-length('(Access is denied)'))"/>/locationmap.xml.</p> + + <p>More information can be found in the logs.</p> + </xsl:when> + <xsl:otherwise> + <h1>An Error Occurred</h1> + + <p><xsl:value-of select="ex:message"/></p> + + <p>More information can be found in the logs.</p> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + +</xsl:stylesheet> Propchange: forrest/trunk/main/webapp/resources/stylesheets/exception-to-html.xsl ------------------------------------------------------------------------------ svn:eol-style = native Modified: forrest/trunk/main/webapp/sitemap.xmap URL: http://svn.apache.org/viewvc/forrest/trunk/main/webapp/sitemap.xmap?view=diff&rev=521063&r1=521062&r2=521063 ============================================================================== --- forrest/trunk/main/webapp/sitemap.xmap (original) +++ forrest/trunk/main/webapp/sitemap.xmap Wed Mar 21 18:02:26 2007 @@ -32,7 +32,7 @@ </map:generator> <map:generator name="exception" - src="org.apache.cocoon.generation.ParseExceptionGenerator"/> + src="org.apache.cocoon.generation.ExceptionGenerator"/> <map:generator name="notifier" src="org.apache.cocoon.sitemap.NotifyingGenerator" /> @@ -252,12 +252,13 @@ <map:selectors> <map:selector name="exists" logger="sitemap.selector.exists" src="org.apache.forrest.sourceexists.SourceExistsSelector" /> - <map:selector name="exception" logger="sitemap.selector.exception" - src="org.apache.cocoon.selection.ExceptionSelector"> - <exception name="syntax" class="net.sourceforge.chaperon.process.ParseException"/> - <exception class="java.lang.Throwable" unroll="true"/> - </map:selector> - <map:selector name="config" logger="sitemap.selector.config" + + <map:selector name="exception" src="org.apache.cocoon.selection.ExceptionSelector"> + <exception name="resourceNotFound" class="org.apache.cocoon.ResourceNotFoundException"/> + <exception class="java.lang.Throwable" unroll="true"/> + </map:selector> + + <map:selector name="config" logger="sitemap.selector.config" src="org.apache.cocoon.selection.SimpleSelector" /> </map:selectors> @@ -728,7 +729,16 @@ <map:redirect-to uri="index.html"/> </map:match> </map:pipeline> - + + <map:handle-errors> + <map:select type="exception"> + <map:when test="resourceNotFound"> + <map:generate type="exception"/> + <map:transform src="{lm:transform.exception.html}"/> + <map:serialize type="html"/> + </map:when> + </map:select> + </map:handle-errors> - </map:pipelines> + </map:pipelines> </map:sitemap>