One thing I can see right away is that the fullPipe pipeline is missing
a serializer. All valid pipelines have at least one generator and one
serializer. Calling a subpipeline using the cocoon: protocol will then
connect the pipeline component to the subpipeline minus the serializer.

Hope that helps.

> -----Original Message-----
> From: Tim Olson [mailto:[EMAIL PROTECTED]
> Sent: maandag 20 oktober 2003 23:29
> To: '[EMAIL PROTECTED]'
> Cc: '[EMAIL PROTECTED]'
> Subject: NPE While Redirecting
> 
> 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(AbstractEnviro
nm
> en
> t.java:521)
>       at
>
org.apache.cocoon.environment.wrapper.MutableEnvironmentFacade.release(M
ut
> ab
> leEnvironmentFacade.java:332)
>       at
>
org.apache.cocoon.components.source.impl.SitemapSource.reset(SitemapSour
ce
> .j
> ava:495)
>       at
>
org.apache.cocoon.components.source.impl.SitemapSource.toSAX(SitemapSour
ce
> .j
> ava:480)
>       at
>
org.apache.cocoon.components.source.SourceUtil.parse(SourceUtil.java:224
)
>       at
>
org.apache.cocoon.generation.FileGenerator.generate(FileGenerator.java:1
41
> )
>       at
>
org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process
XM
> LP
> ipeline(AbstractProcessingPipeline.java:532)
>       at
>
org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipe
li
> ne
> .processXMLPipeline(AbstractCachingProcessingPipeline.java:196)
>       at
>
org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process
(A
> bs
> tractProcessingPipeline.java:683)
>       at
>
org.apache.cocoon.components.source.impl.SitemapSource.toSAX(SitemapSour
ce
> .j
> ava:467)
>       at
>
org.apache.cocoon.components.source.SourceUtil.parse(SourceUtil.java:224
)
>       at
>
org.apache.cocoon.generation.FileGenerator.generate(FileGenerator.java:1
41
> )
>       at
>
org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process
XM
> LP
> ipeline(AbstractProcessingPipeline.java:548)
>       at
>
org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipe
li
> ne
> .processXMLPipeline(AbstractCachingProcessingPipeline.java:196)
>       at
>
org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.process
(A
> bs
> tractProcessingPipeline.java:492)
>       at
>
org.apache.cocoon.components.treeprocessor.sitemap.SerializeNode.invoke(
Se
> ri
> alizeNode.java:147)
>       at
>
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.
in
> vo
> keNodes(AbstractParentProcessingNode.java:84)
>       at
>
org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.i
nv
> ok
> e(PreparableMatchNode.java:164)
>       at
>
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.
in
> vo
> keNodes(AbstractParentProcessingNode.java:108)
>       at
>
org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(P
ip
> el
> ineNode.java:163)
>       at
>
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.
in
> vo
> keNodes(AbstractParentProcessingNode.java:108)
>       at
>
org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(
Pi
> pe
> linesNode.java:161)
>       at
>
org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreePro
ce
> ss
> or.java:351)
>       at
>
org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreePro
ce
> ss
> or.java:304)
>       at org.apache.cocoon.Cocoon.process(Cocoon.java:640)
>       at
>
org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:1104)

Reply via email to