cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Christopher Oliver <>
Subject Re: Flow's processPipelineTo() and FileSource
Date Thu, 31 Jul 2003 17:16:08 GMT
Why can't you just call "close()" in your flowscript? I don't see 
anything in the contract of processPipelineTo() that indicates that it 
should close the stream. In my opinion, calling "flush()" but not 
"close()" as in the original implementation is correct.

My $0.02,


Sylvain Wallez wrote:

> Gianugo Rabellino wrote:
>> I'm having a hell of a time using flow with processPipelineTo() and 
>> OutputStreams coming out from FileSource(s).
>> The problem is that FileSource#getOutputStream() creates a temporary 
>> file (... to be discussed later ...) and such file gets renamed to 
>> the original one only upon OutputStream.close(). Now, 
>> AbstractInterpreter, line 201, actually calls flush() but *never* 
>> close. As a result, everything is kinda ... well... screwed up.
>> Patch is trivial, but I'm wondering if adding out.close() in 
>> might break something: any flow experts around? 
> I don't see why there should be some consequences on the flow 
> itself... Just replace flush() by close() !
>> Now for the FileSource: I do understand *some* of the reasoning 
>> behind using a temporary file, but I have to disagree on the 
>> implementation: naming it [filename].tmp is a bit of a bet, since 
>> someone might legitimately have such a filename around. While I 
>> understand that there might be memory issues with large files, I 
>> guess that either:
>> 1. keeping a ByteArrayOutputStream;
>> 2. forget about it and just write the file;
>> 3. use a more "clever" name that doesn't risk conflicts this much 
> I would avoid 2. The reason why I used a temporary file is because of 
> the streamed nature of Cocoon pipelines. If an error occurs within the 
> processing, the original content is not partially overwritten. My 
> preference would go to 3.
>> are all better options.
>> Is that OK to you if I work on it? I don't know if I have access to 
>> the Excalibur CVS though... 
> As a Cocoon committer, you should.
> Sylvain

View raw message