cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Grzegorz Kossakowski (JIRA)" <>
Subject [jira] Updated: (COCOON-2216) IncludeCacheManager can not perfom parallel includes
Date Sun, 28 Sep 2008 22:58:45 GMT


Grzegorz Kossakowski updated COCOON-2216:

    Attachment: multi-thread-simple-28.09.2008.patch


I just wanted to let you know that I've finally tackled this problem using much more simpler
approach than the one I planned to use. Anyway, it looks like this patch fixes the specific
problem you have.

There are two important notes, though:
1. This patch was tested using your test-case and regular Cocoon samples only
2. This patch is still not a *complete* solution to all OM-related problems that I'm aware
off but brings us much closer to final solution because it at least fixes issue with multi-thread

I'd would appreciate any feedback on it (testing) before I continue to work in this direction.

Also, I've published my local Git branch established for changes related to this issue, see:

You can easily clone this repo using:
git clone git://

and then switch to my local branch using git gui command. Another method is just using download
button so you download the entire source code.

I mention this second method of getting my changes (instead of patch) because it's more likely
that my repository at GitHub will be up-to-date with my changes compared to patches attached
to JIRA. Moreover, it's easier to analyse my changes using GitHub website.

> IncludeCacheManager can not perfom parallel includes
> ----------------------------------------------------
>                 Key: COCOON-2216
>                 URL:
>             Project: Cocoon
>          Issue Type: Bug
>          Components: - Components: Sitemap
>    Affects Versions: 2.2-dev (Current SVN)
>            Reporter: Christoph Gaffga
>            Assignee: Grzegorz Kossakowski
>         Attachments: cocoon-trunk.patch, multi-thread-simple-28.09.2008.patch, ParallelInclusionProblem-cocoon_TRUNK.patch,,
> Since we migrated from cocoon 2.1 to 2.2 a generator that merges multiple sources from
other cocoon pipelines into one (similar to the aggregator) is not working anymore.
> We also posted our problem to the mailing list, got little feedback but it brought us
on the right way...
> see also:
> I found out that it's a problem with the DefaultIncludeCacheManager, that can not do
parallel inclusion of cocoon-pipelines anymore. I checked several classes where inclusion
is used. In the aggregator parallel inclusion is not an option anymore, in CIncludeTransformer
the IncludeCacheManager is used, but it can't do parallel inclusion. In the new IncludeTransfomer
parallel inclusion is supported, but it does not use caching as it does not use the IncludeCacheManager...
> But we needed caching AND parallel processing, so I tried to find out what's broken in
the DefaultIncludeCacheManager:
> and it seems that the ThreadLocal variables are not initialized for the child threads
that do the inclusion. Neither the spring context nor the old environment stuff was initialized.
And all the source resolving was done outside the child thread and that way using the wrong
thread context. 
> We were able to fix that issue by small changes to DefaultIncludeCacheManager and IncludeCacheManagerSession.
It would be great if somebody could apply this patch so we don'T have to patch every cocoon
version again and again...

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message