xalan-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mk...@apache.org
Subject cvs commit: xml-xalan/java/src/org/apache/xpath/objects XNodeSet.java
Date Mon, 11 Nov 2002 16:04:18 GMT
mkwan       2002/11/11 08:04:18

  Modified:    java/src/org/apache/xpath/objects XNodeSet.java
  Log:
  For Bugzilla 14406. Handle the side-effect that creating a DTMNodeList
  will change the state of the iterator.
  
  Revision  Changes    Path
  1.22      +8 -1      xml-xalan/java/src/org/apache/xpath/objects/XNodeSet.java
  
  Index: XNodeSet.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xpath/objects/XNodeSet.java,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- XNodeSet.java	22 Mar 2002 01:04:44 -0000	1.21
  +++ XNodeSet.java	11 Nov 2002 16:04:18 -0000	1.22
  @@ -381,7 +381,14 @@
      */
     public NodeList nodelist() throws javax.xml.transform.TransformerException
     {
  -    return new org.apache.xml.dtm.ref.DTMNodeList(iter());
  +    org.apache.xml.dtm.ref.DTMNodeList nodelist = new org.apache.xml.dtm.ref.DTMNodeList(this);
  +    // Creating a DTMNodeList has the side-effect that it will create a clone
  +    // XNodeSet with cache and run m_iter to the end. You cannot get any node
  +    // from m_iter after this call. As a fix, we call SetVector() on the clone's 
  +    // cache. See Bugzilla 14406.
  +    XNodeSet clone = (XNodeSet)nodelist.getDTMIterator();
  +    SetVector(clone.getVector());
  +    return nodelist;
     }
   
     
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-cvs-help@xml.apache.org


Mime
View raw message