Hi Michael,

I got the explanation but want to know if we traves the DOM tree back and 
forth as explained in the code snippet below whether we can get read of 
NullPointerException problem due to the thread safe issue. 

By the way I think it will still not resolve the issue but for the sake of 
my understanding I am asking you the question.

Thanks,
Soumya Chatterjee
Tata Consultancy Services
Mailto: [EMAIL PROTECTED]
Website: http://www.tcs.com
____________________________________________
Experience certainty.   IT Services
                        Business Solutions
                        Outsourcing
____________________________________________



Michael Glavassevich <[EMAIL PROTECTED]> 
07/25/2007 02:00 AM

To
j-users@xerces.apache.org
cc
Soumya Chatterjee <[EMAIL PROTECTED]>
Subject
Re: Got the Issue






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)

ForwardSourceID:NT00009A9A 
=====-----=====-----=====
Notice: The information contained in this e-mail
message and/or attachments to it may contain 
confidential or privileged information. If you are 
not the intended recipient, any dissemination, use, 
review, distribution, printing or copying of the 
information contained in this e-mail message 
and/or attachments to it are strictly prohibited. If 
you have received this communication in error, 
please notify us by reply e-mail or telephone and 
immediately and permanently delete the message 
and any attachments. Thank you


Reply via email to