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: soumya.chatterjee@xxxxxxx
Website: http://www.tcs.com
____________________________________________
Experience certainty. IT Services
Business Solutions
Outsourcing
____________________________________________
| Michael Glavassevich <mrglavas@xxxxxxxxxx>
07/25/2007 02:00 AM
|
|
To
| j-users@xxxxxxxxxxxxxxxxx
|
|
cc
| Soumya Chatterjee <soumya.chatterjee@xxxxxxx>
|
|
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: mrglavas@xxxxxxxxxx
E-mail: mrglavas@xxxxxxxxxx
keshlam@xxxxxxxxxx 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
|
|