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