we get a NullPointerException for any <redirect-to> that gets called in our subsitemap. i presume this is because a <generate type="file"> has been called, but we must use the "cocoon:" protocol in order to divide our pipeline into a main pipe which calls down into page-specific fragments. no "actual" generation has happened before the redirect. is this NPE fixable? if not, how else can we organize our pipelines into per-page sitemaps? resources don't work because they can't be called from a subsitemap. using cocoon 2.1.2
MAIN SITEMAP: <map:match pattern="xsl/*/*/*.html"> <map:generate src="cocoon:/fullPipe/{1}/{2}/{3}"/> <map:serialize type="html"/> </map:match> <map:match pattern="fullPipe/*/*/*"> <!-- configure our proprietary framework by touching the "config" cocoon action --> <map:act type="config"/> <!-- call into the subsitemap to perform page/action specific actions and xsl transforms. --> <map:generate src="cocoon:/subsitemap/{1}/{2}/{3}"/> <!-- apply banner --> <map:transform src="{global:xsl-root}/general/banner.xsl" label="banner"> <map:parameter name="domain-id" value="{1}"/> </map:transform> <!-- internationalization --> <map:act type="locale"> <map:transform type="i18n" label="i18n"> <map:parameter name="locale" value="{locale}"/> </map:transform> </map:act> </map:match> <map:match pattern="subsitemap/*/*/*"> <map:mount check-reload="yes" src="{global:xsl-root}/common/{2}/{2}.xmap" uri-prefix="subsitemap"/> </map:match> SUBSITEMAP: <match pattern="*/*/pageSpecificPipe"> <redirect-to uri="..."/> </match> Original Exception: java.lang.NullPointerException at org.apache.cocoon.environment.AbstractEnvironment.release(AbstractEnvironmen t.java:521) at org.apache.cocoon.environment.wrapper.MutableEnvironmentFacade.release(Mutab leEnvironmentFacade.java:332) at org.apache.cocoon.components.source.impl.SitemapSource.reset(SitemapSource.j ava:495) at org.apache.cocoon.components.source.impl.SitemapSource.toSAX(SitemapSource.j ava:480) at org.apache.cocoon.components.source.SourceUtil.parse(SourceUtil.java:224) at org.apache.cocoon.generation.FileGenerator.generate(FileGenerator.java:141) at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.processXMLP ipeline(AbstractProcessingPipeline.java:532) at org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline .processXMLPipeline(AbstractCachingProcessingPipeline.java:196) at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(Abs tractProcessingPipeline.java:683) at org.apache.cocoon.components.source.impl.SitemapSource.toSAX(SitemapSource.j ava:467) at org.apache.cocoon.components.source.SourceUtil.parse(SourceUtil.java:224) at org.apache.cocoon.generation.FileGenerator.generate(FileGenerator.java:141) at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.processXMLP ipeline(AbstractProcessingPipeline.java:548) at org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline .processXMLPipeline(AbstractCachingProcessingPipeline.java:196) at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process(Abs tractProcessingPipeline.java:492) at org.apache.cocoon.components.treeprocessor.sitemap.SerializeNode.invoke(Seri alizeNode.java:147) at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invo keNodes(AbstractParentProcessingNode.java:84) at org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invok e(PreparableMatchNode.java:164) at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invo keNodes(AbstractParentProcessingNode.java:108) at org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(Pipel ineNode.java:163) at org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invo keNodes(AbstractParentProcessingNode.java:108) at org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(Pipe linesNode.java:161) at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcess or.java:351) at org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcess or.java:304) at org.apache.cocoon.Cocoon.process(Cocoon.java:640) at org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:1104)