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 2005/06/19 19:12:22 UTC
cvs commit: xml-xerces/java/src/org/apache/xerces/jaxp DocumentBuilderImpl.java
mrglavas 2005/06/19 10:12:22
Modified: java/src/org/apache/xerces/jaxp DocumentBuilderImpl.java
Log:
Implementing reset for the DocumentBuilder.
Restore the initial error handler and entity resolver.
Revision Changes Path
1.29 +25 -5 xml-xerces/java/src/org/apache/xerces/jaxp/DocumentBuilderImpl.java
Index: DocumentBuilderImpl.java
===================================================================
RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/jaxp/DocumentBuilderImpl.java,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -r1.28 -r1.29
--- DocumentBuilderImpl.java 16 Jun 2005 17:42:10 -0000 1.28
+++ DocumentBuilderImpl.java 19 Jun 2005 17:12:22 -0000 1.29
@@ -21,7 +21,6 @@
import java.util.Hashtable;
import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.validation.Schema;
import org.apache.xerces.dom.DOMImplementationImpl;
@@ -85,6 +84,12 @@
private DOMParser domParser = null;
private final Schema grammar;
+ /** Initial ErrorHandler */
+ private final ErrorHandler fInitErrorHandler;
+
+ /** Initial EntityResolver */
+ private final EntityResolver fInitEntityResolver;
+
DocumentBuilderImpl(DocumentBuilderFactoryImpl dbf, Hashtable dbfAttrs)
throws SAXNotRecognizedException, SAXNotSupportedException {
this(dbf, dbfAttrs, false);
@@ -99,7 +104,11 @@
// validation errors with a warning telling the user to set an
// ErrorHandler
if (dbf.isValidating()) {
- setErrorHandler(new DefaultValidationErrorHandler());
+ fInitErrorHandler = new DefaultValidationErrorHandler();
+ setErrorHandler(fInitErrorHandler);
+ }
+ else {
+ fInitErrorHandler = domParser.getErrorHandler();
}
domParser.setFeature(VALIDATION_FEATURE, dbf.isValidating());
@@ -132,6 +141,9 @@
this.grammar = dbf.getSchema();
setDocumentBuilderFactoryAttributes(dbfAttrs);
+
+ // Initial EntityResolver
+ fInitEntityResolver = domParser.getEntityResolver();
}
/**
@@ -254,8 +266,16 @@
return grammar;
}
- // TODO: Add in implementation.
- public void reset() {}
+ public void reset() {
+ /** Restore the initial error handler. **/
+ if (domParser.getErrorHandler() != fInitErrorHandler) {
+ domParser.setErrorHandler(fInitErrorHandler);
+ }
+ /** Restore the initial entity resolver. **/
+ if (domParser.getEntityResolver() != fInitEntityResolver) {
+ domParser.setEntityResolver(fInitEntityResolver);
+ }
+ }
// package private
DOMParser getDOMParser() {
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xerces.apache.org
For additional commands, e-mail: commits-help@xerces.apache.org