[ https://issues.apache.org/jira/browse/COCOON-2216?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Grzegorz Kossakowski updated COCOON-2216: ----------------------------------------- Attachment: multi-thread-simple-28.09.2008.patch Hello, 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 environments. 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: http://github.com/gkossakowski/apache-cocoon/tree/COCOON-2216-multi-thread-simple You can easily clone this repo using: git clone git://github.com/gkossakowski/apache-cocoon.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: https://issues.apache.org/jira/browse/COCOON-2216 > 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, test-block.zip, test-webapp.zip > > > 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: http://www.mail-archive.com/[EMAIL PROTECTED]/msg42173.html > 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.