Every Node in the Xerces DOM is also its child NodeList (i.e. node == node.getChildNodes()). You get the same object every time. If a single thread is doing something like:
... NodeList list = node.getChildNodes(); int length = list.getLength(); for (int i = 0; i < length; ++i) { for (int j = length - 1; j >= 0; --j) { Node nodeI = list.item(i); Node nodeJ = list.item(j); ... } } it's going to defeat the caching mechanism which was optimized for sequential access. We'll end up walking back and forth through the sibilings between i and j. Thanks. Michael Glavassevich XML Parser Development IBM Toronto Lab E-mail: [EMAIL PROTECTED] E-mail: [EMAIL PROTECTED] [EMAIL PROTECTED] wrote on 07/24/2007 03:54:16 PM: > Right. I wouldn't expect nodelists to be threadsafe, but do we reuse > nodelists, or would independent calls to retrieve the same nodelist > return separate (non-entangled) objects? > > I would expect the latter, since there could be several nodelist > accesses in progress at once even for a single thread. > > As I said, trying to use the DOM as if it was partly thread-safe is > a cheat; you have to know exactly what you can and can't get away > with. It's better to implement proper thread-locking in the application code. > > ______________________________________ > "... Three things see no end: A loop with exit code done wrong, > A semaphore untested, And the change that comes along. ..." > -- "Threes" Rev 1.1 - Duane Elms / Leslie Fish (http://www.ovff. > org/pegasus/songs/threes-rev-11.html) --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]