cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sylvain Wallez <sylvain.wal...@anyware-tech.com>
Subject Re: Internal Pipelines (was: [RT] reconsidering pipeline semantics)
Date Fri, 05 Jul 2002 08:22:29 GMT
Christian Haul wrote:

>On 04.Jul.2002 -- 03:20 PM, Christian Haul wrote:
>  
>
>>On 04.Jul.2002 -- 11:50 AM, Sylvain Wallez wrote:
>>    
>>
>>>The redirector used (ForwardRedirector) handles the special "cocoon:" 
>>>protocol as internal redirects (aka "forward") which should consider the 
>>>request as internal.
>>>
>>>However, I noticed Carsten has added a processInternal() method to 
>>>Processor and I wonder if there is some side-effects that break internal 
>>>pipelines. Can you check if internal pilepelines still work as expected 
>>>(using a simple cocoon: source) ? I unfortunately have no time to do it 
>>>myself.
>>>      
>>>
>
>Mmmh, looking at the stacktrace, ForwardRedirector is in the
>(!this.internal) branch, method cocoonRedirect.
>
>            if ( !this.internal ) {
>                processingResult = actualProcessor.process(newEnv);
>            } else {
>                ProcessingPipeline pp = actualProcessor.processInternal(newEnv);
>                if (pp != null) pp.release();
>                processingResult = pp != null;
>            }
>
>Does it make sense to have external redirects handled by the
>cocoonRedirect method at all? It seems that it is invoked only, if the
>URL starts with "cocoon:" and thus should be internal, right?
>  
>

Right (see below).

>Regarding the flow: It uses the existing Environment to call
>AbstractInterpreter.forwardTo(), which in turn uses that very
>Environment to obtain a Redirector. Since "internal" is a property of
>that Environment, it cannot be "true" since the original request
>wasn't internal.
>
>Redirecting from a RedirectToURINode works much alike.
>
>So?
>  
>

So I think we have a bug here, and I have no obvious solution :

I removed the test for "!this.internal", because internal redirects 
should be considered as internal requests, and so always call 
processInternal().
--> blank page

This blank page is caused by the pipeline not being processed, so I 
added pp.process(newEnv) after processInternal()
--> Bang ! _"Unable to get transformer handler for 
stylesheets/site2xhtml.xsl_" (comes from excalibur xslt component)

??? I'm kinda lost here an have no time now for further investigations.

Carsten, this seems to be related to the changes you made on internal 
processing. Got an idea ?

Sylvain

-- 
Sylvain Wallez
  Anyware Technologies                  Apache Cocoon
  http://www.anyware-tech.com           mailto:sylvain@apache.org




---------------------------------------------------------------------
To unsubscribe, e-mail: cocoon-dev-unsubscribe@xml.apache.org
For additional commands, email: cocoon-dev-help@xml.apache.org


Mime
View raw message