You are viewing a plain text version of this content. The canonical link for it is here.
Posted to j-dev@xerces.apache.org by bu...@apache.org on 2003/08/12 00:44:33 UTC
DO NOT REPLY [Bug 22329] New: -
DOM L2 Ranges Errata range-1 2001-01-17. WRONG_DOCUMENT_ERR exception missing
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=22329>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND
INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=22329
DOM L2 Ranges Errata range-1 2001-01-17. WRONG_DOCUMENT_ERR exception missing
Summary: DOM L2 Ranges Errata range-1 2001-01-17.
WRONG_DOCUMENT_ERR exception missing
Product: Xerces2-J
Version: 2.5.0
Platform: All
OS/Version: All
Status: NEW
Severity: Normal
Priority: Other
Component: DOM
AssignedTo: xerces-j-dev@xml.apache.org
ReportedBy: nddelima@ca.ibm.com
As stated in the DOM L2 Ranges Errata - range-1 2001-01-17, a
WRONG_DOCUMENT_ERR exception is required to be raised for methods selectNode,
selectNodeContents, setStart, setStartAfter, setStartBefore, setEnd,
setEndAfter, and setEndBefore if refNode was created from a different document
than the one that created this range, but is missing.
Proposed patch
==============
Index: org/apache/xerces/dom/RangeImpl.java
===================================================================
RCS file: /home/cvspublic/xml-
xerces/java/src/org/apache/xerces/dom/RangeImpl.java,v
retrieving revision 1.26
diff -u -r1.26 RangeImpl.java
--- org/apache/xerces/dom/RangeImpl.java 8 May 2003 19:52:40 -0000
1.26
+++ org/apache/xerces/dom/RangeImpl.java 11 Aug 2003 22:23:27 -0000
@@ -170,7 +170,11 @@
RangeException.INVALID_NODE_TYPE_ERR,
DOMMessageFormatter.formatMessage
(DOMMessageFormatter.DOM_DOMAIN, "INVALID_NODE_TYPE_ERR", null));
}
-
+ if ( fDocument != refNode.getOwnerDocument() && fDocument != refNode) {
+ throw new DOMException(DOMException.WRONG_DOCUMENT_ERR,
+ DOMMessageFormatter.formatMessage
(DOMMessageFormatter.DOM_DOMAIN, "WRONG_DOCUMENT_ERR", null));
+ }
+
checkIndex(refNode, offset);
fStartContainer = refNode;
@@ -190,7 +194,11 @@
RangeException.INVALID_NODE_TYPE_ERR,
DOMMessageFormatter.formatMessage
(DOMMessageFormatter.DOM_DOMAIN, "INVALID_NODE_TYPE_ERR", null));
}
-
+ if ( fDocument != refNode.getOwnerDocument() && fDocument != refNode) {
+ throw new DOMException(DOMException.WRONG_DOCUMENT_ERR,
+ DOMMessageFormatter.formatMessage
(DOMMessageFormatter.DOM_DOMAIN, "WRONG_DOCUMENT_ERR", null));
+ }
+
checkIndex(refNode, offset);
fEndContainer = refNode;
@@ -211,6 +219,10 @@
RangeException.INVALID_NODE_TYPE_ERR,
DOMMessageFormatter.formatMessage
(DOMMessageFormatter.DOM_DOMAIN, "INVALID_NODE_TYPE_ERR", null));
}
+ if ( fDocument != refNode.getOwnerDocument() && fDocument != refNode) {
+ throw new DOMException(DOMException.WRONG_DOCUMENT_ERR,
+ DOMMessageFormatter.formatMessage
(DOMMessageFormatter.DOM_DOMAIN, "WRONG_DOCUMENT_ERR", null));
+ }
fStartContainer = refNode.getParentNode();
int i = 0;
for (Node n = refNode; n!=null; n = n.getPreviousSibling()) {
@@ -232,6 +244,10 @@
RangeException.INVALID_NODE_TYPE_ERR,
DOMMessageFormatter.formatMessage
(DOMMessageFormatter.DOM_DOMAIN, "INVALID_NODE_TYPE_ERR", null));
}
+ if ( fDocument != refNode.getOwnerDocument() && fDocument != refNode) {
+ throw new DOMException(DOMException.WRONG_DOCUMENT_ERR,
+ DOMMessageFormatter.formatMessage
(DOMMessageFormatter.DOM_DOMAIN, "WRONG_DOCUMENT_ERR", null));
+ }
fStartContainer = refNode.getParentNode();
int i = 0;
for (Node n = refNode; n!=null; n = n.getPreviousSibling()) {
@@ -253,6 +269,10 @@
RangeException.INVALID_NODE_TYPE_ERR,
DOMMessageFormatter.formatMessage
(DOMMessageFormatter.DOM_DOMAIN, "INVALID_NODE_TYPE_ERR", null));
}
+ if ( fDocument != refNode.getOwnerDocument() && fDocument != refNode) {
+ throw new DOMException(DOMException.WRONG_DOCUMENT_ERR,
+ DOMMessageFormatter.formatMessage
(DOMMessageFormatter.DOM_DOMAIN, "WRONG_DOCUMENT_ERR", null));
+ }
fEndContainer = refNode.getParentNode();
int i = 0;
for (Node n = refNode; n!=null; n = n.getPreviousSibling()) {
@@ -275,6 +295,10 @@
RangeException.INVALID_NODE_TYPE_ERR,
DOMMessageFormatter.formatMessage
(DOMMessageFormatter.DOM_DOMAIN, "INVALID_NODE_TYPE_ERR", null));
}
+ if ( fDocument != refNode.getOwnerDocument() && fDocument != refNode) {
+ throw new DOMException(DOMException.WRONG_DOCUMENT_ERR,
+ DOMMessageFormatter.formatMessage
(DOMMessageFormatter.DOM_DOMAIN, "WRONG_DOCUMENT_ERR", null));
+ }
fEndContainer = refNode.getParentNode();
int i = 0;
for (Node n = refNode; n!=null; n = n.getPreviousSibling()) {
@@ -282,6 +306,7 @@
}
fEndOffset = i;
}
+
public void collapse(boolean toStart) {
if( fDetach) {
@@ -313,6 +338,10 @@
RangeException.INVALID_NODE_TYPE_ERR,
DOMMessageFormatter.formatMessage
(DOMMessageFormatter.DOM_DOMAIN, "INVALID_NODE_TYPE_ERR", null));
}
+ if ( fDocument != refNode.getOwnerDocument() && fDocument != refNode) {
+ throw new DOMException(DOMException.WRONG_DOCUMENT_ERR,
+ DOMMessageFormatter.formatMessage
(DOMMessageFormatter.DOM_DOMAIN, "WRONG_DOCUMENT_ERR", null));
+ }
Node parent = refNode.getParentNode();
if (parent != null ) // REVIST: what to do if it IS null?
{
---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-j-dev-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-j-dev-help@xml.apache.org