You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by mr...@apache.org on 2006/09/12 16:31:03 UTC
svn commit: r442591 -
/xerces/java/trunk/src/org/apache/xerces/dom/ParentNode.java
Author: mrglavas
Date: Tue Sep 12 07:31:03 2006
New Revision: 442591
URL: http://svn.apache.org/viewvc?view=rev&rev=442591
Log:
Fixing JIRA Bug #1147:
http://issues.apache.org/jira/browse/XERCESJ-1147
Some applications like Saxon are casting Xerces' DOM nodes directly
to a NodeList. Because this bypasses the synchronizeChildren() call
in ParentNode.getChildNodes() the children may not be expanded yet
if getLength() or item() are called on the NodeList. We now check
if the children are synchronized before obtaining the NodeListCache.
Modified:
xerces/java/trunk/src/org/apache/xerces/dom/ParentNode.java
Modified: xerces/java/trunk/src/org/apache/xerces/dom/ParentNode.java
URL: http://svn.apache.org/viewvc/xerces/java/trunk/src/org/apache/xerces/dom/ParentNode.java?view=diff&rev=442591&r1=442590&r2=442591
==============================================================================
--- xerces/java/trunk/src/org/apache/xerces/dom/ParentNode.java (original)
+++ xerces/java/trunk/src/org/apache/xerces/dom/ParentNode.java Tue Sep 12 07:31:03 2006
@@ -672,6 +672,9 @@
private int nodeListGetLength() {
if (fNodeListCache == null) {
+ if (needsSyncChildren()) {
+ synchronizeChildren();
+ }
// get rid of trivial cases
if (firstChild == null) {
return 0;
@@ -721,6 +724,9 @@
private Node nodeListItem(int index) {
if (fNodeListCache == null) {
+ if (needsSyncChildren()) {
+ synchronizeChildren();
+ }
// get rid of trivial case
if (firstChild == lastChild()) {
return index == 0 ? firstChild : null;
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xerces.apache.org
For additional commands, e-mail: commits-help@xerces.apache.org