You're in fact using a closure here so I'm not sure if that's causing issues. 
Can you add following debug statements?

var r = new java.lang.Runnable() {
    run: function() {
        //add following print statements
        print("fmt= " + fmt);
        print("output_stream = " + ouput_stream);
        // gives an exception here on the console
        cocoon.processPipelineTo(fmt+"_pipe/"+url,{}, output_stream); 
        output_stream.close();
    }
};

-----Original Message-----
From: Fawzib Rojas [mailto:f_ro...@spectron-msim.com] 
Sent: Friday, March 19, 2010 7:22 PM
To: users@cocoon.apache.org
Subject: Re: Runnable in flowscript?

I changed the '' to {} like u said, not needed because when I dont use 
the thread it works. Same with the pipelines, they work when I don't use 
the thread (use_background_thread=false). I think I just need to be able 
to set the environment (context?) inside the thread, check the 
exceptions I get in the first message: 
"org.apache.avalon.framework.context.ContextException: Unable to locate 
object-model (No environment available)"

Relevant sitemap sections (which work when not using the thread):

<map:match pattern="pdf2_pipe/**">
<map:generate src="cocoon:/xsl-fo/{1}"/>
<map:serialize type="fo2pdf"/>
</map:match>

<map:match pattern="*.pdf2">
<map:call function="create_pdf">
<map:parameter name="report" value="{1}"/>
<map:parameter name="format" value="pdf2"/>
</map:call>
</map:match>

<map:match pattern="pdf2_display/**">
<map:read src="module:flow-attribute:file_name" 
mime-type="application/pdf" />
</map:match>



On 3/19/2010 2:12 PM, Robby Pelssers wrote:
> function create_pdf() {
>       var use_background_thread=true;
>       var path=cocoon.parameters["report"];
>       var fmt=cocoon.parameters["format"];
>       var queryInfo=getRequestParameters();
>       var url=path+"?"+queryInfo;
>       var output_file=java.io.File.createTempFile(path,".pdf");
>       var output_stream=new 
> com.spectron.io.FileProgressOutputStream(output_file);
>
>       if(use_background_thread){
>           var r = new java.lang.Runnable() {
>               run: function() {
>                   // gives an exception here on the console
>                   
> cocoon.processPipelineTo(fmt+"_pipe/"+url,'',output_stream);  //COMMENT: CAN 
> I SEE relevant sitemap snippets and corresponding generator for this 
> pipeline?? And still replace the '' by {} just to be sure
>                   output_stream.close();
>               }
>           };
>           new java.lang.Thread(r).start();
>           // this works, just never finishes because of exception in thread
>           while(!output_stream.isClosed()) {
>               cocoon.sendPageAndWait(
>                   "progress.jx",
>                    {
>                        "length" : output_file.length(),
>                        "output_path" : output_file.getCanonicalPath(), 
> //COMMENT: REMOVE the COMMA
>                    }
>               );
>           }
>       } else{
>           cocoon.processPipelineTo(fmt+"_pipe/"+url,'',output_stream);  
> //COMMENT: And still replace the '' by {} just to be sure
>           output_stream.close();
>       }
>       cocoon.sendPage(
>             fmt+"_pipe/"+url,
>             {
>                 file_name : output_file.getCanonicalPath()
>             }
>        );
> }
>
> -----Original Message-----
> From: Fawzib Rojas [mailto:f_ro...@spectron-msim.com]
> Sent: Friday, March 19, 2010 7:00 PM
> To: users@cocoon.apache.org
> Subject: Re: Runnable in flowscript?
>
> On 3/19/2010 1:56 PM, Robby Pelssers wrote:
>    
>> Function processPipelineTo([String] uri, [Object] bizData, 
>> [java.io.OutputStream] stream)
>>
>> The api says is should be an object...
>>
>> So maybe try
>>
>> cocoon.processPipelineTo(fmt+"_pipe/"+url, {} ,output_stream); //using 
>> object literal
>>
>>
>>      
> Thats not it, because when I set use_background_thread to false to do it
> directly without a thread (the else) it works.
>
>    
>> I don't know if you need a context but you sure aren't setting any...
>>
>>
>>      
> I'm not setting a context in the thread, I guess I need to use the
> context from the create_pdf function. How would I do that? Is there some
> documentation for that somewhere?
>
>    
>> Cheers,
>> Robby
>>
>>
>>      
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@cocoon.apache.org
> For additional commands, e-mail: users-h...@cocoon.apache.org
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@cocoon.apache.org
> For additional commands, e-mail: users-h...@cocoon.apache.org
>
>    


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@cocoon.apache.org
For additional commands, e-mail: users-h...@cocoon.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@cocoon.apache.org
For additional commands, e-mail: users-h...@cocoon.apache.org

Reply via email to