elena 2002/08/16 13:41:18 Modified: java/src/org/apache/xerces/impl/dtd XMLDTDValidator.java Log: emptyElement should not call handleEndElement if validator is removed from the pipeline. Revision Changes Path 1.31 +12 -8 xml-xerces/java/src/org/apache/xerces/impl/dtd/XMLDTDValidator.java Index: XMLDTDValidator.java =================================================================== RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/dtd/XMLDTDValidator.java,v retrieving revision 1.30 retrieving revision 1.31 diff -u -r1.30 -r1.31 --- XMLDTDValidator.java 16 Aug 2002 18:08:37 -0000 1.30 +++ XMLDTDValidator.java 16 Aug 2002 20:41:18 -0000 1.31 @@ -742,13 +742,15 @@ public void emptyElement(QName element, XMLAttributes attributes, Augmentations augs) throws XNIException { - handleStartElement(element, attributes); + boolean removed = handleStartElement(element, attributes); if (fDocumentHandler !=null) { fDocumentHandler.emptyElement(element, attributes, augs); } - - handleEndElement(element, augs, true); + if (!removed) { + handleEndElement(element, augs, true); + } + } // emptyElement(QName,XMLAttributes) @@ -1764,8 +1766,10 @@ // Protected methods // - /** Handle element. */ - protected void handleStartElement(QName element, XMLAttributes attributes) throws XNIException { + /** Handle element + * @return true if validator is removed from the pipeline + */ + protected boolean handleStartElement(QName element, XMLAttributes attributes) throws XNIException { // REVISIT: Here are current assumptions about validation features // given that XMLSchema validator is in the pipeline @@ -1817,7 +1821,7 @@ // modify pipeline if (fDocumentSource !=null ) { fDocumentSource.setDocumentHandler(fDocumentHandler); - return; + return true; } } else { @@ -1879,7 +1883,7 @@ fElementQNamePartsStack[fElementDepth].setValues(fCurrentElement); fElementIndexStack[fElementDepth] = fCurrentElementIndex; fContentSpecTypeStack[fElementDepth] = fCurrentContentSpecType; - + return false; } // handleStartElement(QName,XMLAttributes,boolean)
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]