Hi All, Sorry for the slight delay about a patch (on holiday atm). I've created a patch and a test case that reproduces the threading issues on a single cpu machine (based on Vinh's test). It runs 30 resources each sending 100 messages on startup to a subscriber which simply counts. The change to Vinh's test is that there is no tcp connections taking place. This seems to be a cause of difficulty for reproducing on a single cpu box (easier for the scheduler to take care of I assume).
Without the patch it will recieve between 1500 and 2000 messages on my laptop (probably much less with a >= dual cpu box). Simply unpack into an eclipse project run the InlineIsolationLayer main and it will run the test. The aim is to retrieve all 3000 messages. I have included a single patched jar for all of the muse modules, I have not included the 2.2.0 jars as I expect everyone will already have them. This should make it easier for testing. Needless to say this still requires a large amount of testing on multi core / smp boxes. Also included is a file (tsPatch.txt) which is a svn patch against the branches/2.2.0/trunk. This includes my proposed tls based solution and also the getFirstChild()/getNextSibling() solution. Using the tls DocumentBuiders alone seems to make the 3000 possible but I suspect it will not work on other cpus since the getChildren in xerces is non thread safe (hence the introduction of the NodeChildrenIterator). Cheers, Chris PS (The NodeChildrenIterator doesn't implement Iterator as this requires casting, and as a one off it made no sense to suffer the impact. If this is preferred for stylistic or correctness reasons I'm fine to change it.)
