cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sylvain Wallez <sylv...@apache.org>
Subject Weird multithreading bug in Cron block
Date Tue, 07 Jun 2005 17:02:57 GMT
Hi all,

I'm currently working on a publication application with complex database 
queries where we want to prefetch some of the pages linked to by the 
page currently being produced, in order to speed up response time on 
pages that are likely to be asked for by users.

To achieve this, we have a "PrefetchTransformer" that grabs elements 
having a prefetch="true" attribute and starts a background job to load 
the corresponding "src" or "href" URL using a "cocoon:".

At first I used JobScheduler.fireJob() to schedule for immediate 
execution, but went into *weird* bugs with strange NPEs all around in 
pipeline components. After analysis, it appeared that while the 
scheduler thread was processing the pipeline, the http thread was 
recycling the *background environment*, thus nulling the object model 
and other class attributes used by pipeline components.

I spent the *whole day* trying to find the cause for this, without 
success (how frustrating).

Then I decided to try another approach and use 
JobScheduler.fireJobAt(new Date()), meaning "schedule the job for later 
execution... now!". And it worked!

Weird, weird, weird! Anybody having a hint about why fireJob() is doing 
this environment mixture?

Sylvain

-- 
Sylvain Wallez                        Anyware Technologies
http://apache.org/~sylvain            http://anyware-tech.com
Apache Software Foundation Member     Research & Technology Director


Mime
View raw message