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 2004/05/28 21:08:53 UTC

cvs commit: xml-xerces/java/src/org/apache/html/dom HTMLTableElementImpl.java HTMLMapElementImpl.java HTMLTableSectionElementImpl.java HTMLSelectElementImpl.java HTMLFormElementImpl.java HTMLTableRowElementImpl.java

mrglavas    2004/05/28 12:08:53

  Modified:    java/src/org/apache/html/dom HTMLTableElementImpl.java
                        HTMLMapElementImpl.java
                        HTMLTableSectionElementImpl.java
                        HTMLSelectElementImpl.java HTMLFormElementImpl.java
                        HTMLTableRowElementImpl.java
  Log:
  Fixing Jira Bug #525:
  http://nagoya.apache.org/jira/browse/XERCESJ-525
  
  Instances of some of the classes in the HTML DOM implementation
  have a reference to a HTMLCollection. When these nodes are
  cloned the reference to the old collection was being kept, so
  methods which return a collection were referring to nodes in the
  old subtree instead of the newly cloned subtree. This is fixed
  thanks to the patch by Aaron Kardell.
  
  Revision  Changes    Path
  1.12      +12 -2     xml-xerces/java/src/org/apache/html/dom/HTMLTableElementImpl.java
  
  Index: HTMLTableElementImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/html/dom/HTMLTableElementImpl.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- HTMLTableElementImpl.java	24 Feb 2004 23:34:00 -0000	1.11
  +++ HTMLTableElementImpl.java	28 May 2004 19:08:52 -0000	1.12
  @@ -375,7 +375,17 @@
               child = child.getNextSibling();
           }
       }
  -
  +    
  +    /**
  +     * Explicit implementation of cloneNode() to ensure that cache used
  +     * for getRows() and getTBodies() gets cleared.
  +     */
  +    public Node cloneNode( boolean deep ) {
  +        HTMLTableElementImpl clonedNode = (HTMLTableElementImpl)super.cloneNode( deep );
  +        clonedNode._rows = null;
  +        clonedNode._bodies = null;
  +        return clonedNode;
  +    }
     
       /**
        * Constructor requires owner document.
  
  
  
  1.8       +13 -4     xml-xerces/java/src/org/apache/html/dom/HTMLMapElementImpl.java
  
  Index: HTMLMapElementImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/html/dom/HTMLMapElementImpl.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- HTMLMapElementImpl.java	24 Feb 2004 23:34:01 -0000	1.7
  +++ HTMLMapElementImpl.java	28 May 2004 19:08:52 -0000	1.8
  @@ -15,10 +15,9 @@
    */
   package org.apache.html.dom;
   
  -
   import org.w3c.dom.html.HTMLCollection;
   import org.w3c.dom.html.HTMLMapElement;
  -
  +import org.w3c.dom.Node;
   
   /**
    * @version $Revision$ $Date$
  @@ -51,8 +50,18 @@
       {
           setAttribute( "name", name );
       }
  -
       
  +    /**
  +     * Explicit implementation of cloneNode() to ensure that cache used
  +     * for getAreas() gets cleared.
  +     */
  +    public Node cloneNode( boolean deep )
  +    {
  +        HTMLMapElementImpl clonedNode = (HTMLMapElementImpl)super.cloneNode( deep );
  +        clonedNode._areas = null;
  +        return clonedNode;
  +    }
  +
       /**
        * Constructor requires owner document.
        * 
  
  
  
  1.8       +11 -2     xml-xerces/java/src/org/apache/html/dom/HTMLTableSectionElementImpl.java
  
  Index: HTMLTableSectionElementImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/html/dom/HTMLTableSectionElementImpl.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- HTMLTableSectionElementImpl.java	24 Feb 2004 23:34:01 -0000	1.7
  +++ HTMLTableSectionElementImpl.java	28 May 2004 19:08:52 -0000	1.8
  @@ -160,7 +160,16 @@
           }
           return index;
       }
  -
  +    
  +    /**
  +     * Explicit implementation of cloneNode() to ensure that cache used
  +     * for getRows() gets cleared.
  +     */
  +    public Node cloneNode( boolean deep ) {
  +        HTMLTableSectionElementImpl clonedNode = (HTMLTableSectionElementImpl)super.cloneNode( deep );
  +        clonedNode._rows = null;
  +        return clonedNode;
  +    }
       
       /**
        * Constructor requires owner document.
  
  
  
  1.9       +12 -2     xml-xerces/java/src/org/apache/html/dom/HTMLSelectElementImpl.java
  
  Index: HTMLSelectElementImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/html/dom/HTMLSelectElementImpl.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- HTMLSelectElementImpl.java	24 Feb 2004 23:34:01 -0000	1.8
  +++ HTMLSelectElementImpl.java	28 May 2004 19:08:52 -0000	1.9
  @@ -196,12 +196,22 @@
           // No scripting in server-side DOM. This method is moot.
       }
   
  -    /*
  +    /**
        * Explicit implementation of getChildNodes() to avoid problems with
        * overriding the getLength() method hidden in the super class.
        */
       public NodeList getChildNodes() {
           return getChildNodesUnoptimized();
  +    }
  +    
  +    /**
  +     * Explicit implementation of cloneNode() to ensure that cache used
  +     * for getOptions() gets cleared.
  +     */
  +    public Node cloneNode(boolean deep) {
  +        HTMLSelectElementImpl clonedNode = (HTMLSelectElementImpl)super.cloneNode( deep );
  +        clonedNode._options = null;
  +        return clonedNode;
       }
     
       /**
  
  
  
  1.9       +12 -2     xml-xerces/java/src/org/apache/html/dom/HTMLFormElementImpl.java
  
  Index: HTMLFormElementImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/html/dom/HTMLFormElementImpl.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- HTMLFormElementImpl.java	24 Feb 2004 23:34:01 -0000	1.8
  +++ HTMLFormElementImpl.java	28 May 2004 19:08:52 -0000	1.9
  @@ -15,7 +15,7 @@
    */
   package org.apache.html.dom;
   
  -
  +import org.w3c.dom.Node;
   import org.w3c.dom.NodeList;
   import org.w3c.dom.html.HTMLCollection;
   import org.w3c.dom.html.HTMLFormElement;
  @@ -136,6 +136,16 @@
        */
       public NodeList getChildNodes() {
           return getChildNodesUnoptimized();
  +    }
  +    
  +    /**
  +     * Explicit implementation of cloneNode() to ensure that cache used
  +     * for getElements() gets cleared.
  +     */
  +    public Node cloneNode( boolean deep ) {
  +        HTMLFormElementImpl clonedNode = (HTMLFormElementImpl)super.cloneNode( deep );
  +        clonedNode._elements = null;
  +        return clonedNode;
       }
       
       /**
  
  
  
  1.8       +12 -3     xml-xerces/java/src/org/apache/html/dom/HTMLTableRowElementImpl.java
  
  Index: HTMLTableRowElementImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/html/dom/HTMLTableRowElementImpl.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- HTMLTableRowElementImpl.java	24 Feb 2004 23:34:01 -0000	1.7
  +++ HTMLTableRowElementImpl.java	28 May 2004 19:08:52 -0000	1.8
  @@ -244,9 +244,18 @@
       {
           setAttribute( "valign", vAlign );
       }
  -
       
  -      /**
  +    /**
  +     * Explicit implementation of cloneNode() to ensure that cache used
  +     * for getCells() gets cleared.
  +     */
  +    public Node cloneNode( boolean deep ) {
  +        HTMLTableRowElementImpl clonedNode = (HTMLTableRowElementImpl)super.cloneNode( deep );
  +        clonedNode._cells = null;
  +        return clonedNode;
  +    }
  +    
  +    /**
        * Constructor requires owner document.
        * 
        * @param owner The owner HTML document
  
  
  

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