I added a patch to the MNG-3004 jira issue that fixes an additional concurrency issue with Dan Fabulich's patch.
I am the author of a pending surefire concurrency patch ( http://jira.codehaus.org/browse/SUREFIRE-555), which was one of several patches I made to be able to run spring tests in parallel with junit and surefire. In the process of creating SUREFIRE-555 I made the following observations about concurrency: The different CPU architectures have wildly different characteristics when it comes to concurrency. On a pentium 4, "ConcurrentModificationException" is the norm (no real parallelity). On a Core 2 duo you start getting more real parallel execution, although even that CPU has very limited concurrency. The i7 processor is a totally different beast, and is massively concurrent compared with the C2D. I'd say the i7 is the *first* cpu where you *really* have to watch your synchronized blocks (or go straight to jail). Above that again on the (intel) concurrency ladder are the dual-chip xenons. Dan's original solution to MNG-3004 failed on i7 and dual core xenons. With the patch I posted it seems to run flawlessly on both i7 and dual xenon servers (I'm running it full blast on CI on the dual xenon right now). This is for a build without any significant external snapshot dependencies. So when it comes to general "readyness" the patches seem to be stable. I will not get into the architectural discussions. I'll gladly make a unit test for the StringSearchModelInterpolator class (untested AFIK), but I'm just a regular guy on the street submitting a patch and I need some advice on how to actually make a unit/integration test for that class (with wired dependencies). I looked around to find some similars but I couldn't really find any. Anyone have any suggestions for similar test I can work from ? Kristian Rosenvold
