elena 2002/08/20 15:11:55
Modified: java/src/org/apache/xerces/parsers AbstractDOMParser.java
Log:
Applied patch from Philippe Le Hegaret: NPE parsing entity with no value.
Revision Changes Path
1.70 +22 -19
xml-xerces/java/src/org/apache/xerces/parsers/AbstractDOMParser.java
Index: AbstractDOMParser.java
===================================================================
RCS file:
/home/cvs/xml-xerces/java/src/org/apache/xerces/parsers/AbstractDOMParser.java,v
retrieving revision 1.69
retrieving revision 1.70
diff -u -r1.69 -r1.70
--- AbstractDOMParser.java 14 Aug 2002 17:52:52 -0000 1.69
+++ AbstractDOMParser.java 20 Aug 2002 22:11:55 -0000 1.70
@@ -1496,24 +1496,27 @@
NodeList children = fCurrentNode.getChildNodes();
Node parent = fCurrentNode.getParentNode();
int length = children.getLength();
- // get previous sibling of the entity reference
- Node node = fCurrentNode.getPreviousSibling();
- // normalize text nodes
- Node child = children.item(0);
- if (node != null && node.getNodeType() == Node.TEXT_NODE &&
- child.getNodeType() == Node.TEXT_NODE) {
- ((Text)node).appendData(child.getNodeValue());
- fCurrentNode.removeChild(child);
+ if (length > 0) {
+
+ // get previous sibling of the entity reference
+ Node node = fCurrentNode.getPreviousSibling();
+ // normalize text nodes
+ Node child = children.item(0);
+ if (node != null && node.getNodeType() == Node.TEXT_NODE &&
+ child.getNodeType() == Node.TEXT_NODE) {
+ ((Text)node).appendData(child.getNodeValue());
+ fCurrentNode.removeChild(child);
- } else {
- node = parent.insertBefore(child, fCurrentNode);
- handleBaseURI(node);
- }
+ } else {
+ node = parent.insertBefore(child, fCurrentNode);
+ handleBaseURI(node);
+ }
- for (int i=1;i <length;i++) {
- node = parent.insertBefore(children.item(0), fCurrentNode);
- handleBaseURI(node);
- }
+ for (int i=1;i <length;i++) {
+ node = parent.insertBefore(children.item(0), fCurrentNode);
+ handleBaseURI(node);
+ }
+ } // length > 0
parent.removeChild(fCurrentNode);
fCurrentNode = parent;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]