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 2007/03/19 20:25:57 UTC

svn commit: r520055 - in /xerces/java/trunk/src/org/apache/xerces/jaxp: DocumentBuilderImpl.java SAXParserImpl.java UnparsedEntityHandler.java

Author: mrglavas
Date: Mon Mar 19 12:25:57 2007
New Revision: 520055

URL: http://svn.apache.org/viewvc?view=rev&rev=520055
Log:
Fixing a bug. If the document doesn't have a DTD we weren't resetting the UnparsedEntityHandler.

Modified:
    xerces/java/trunk/src/org/apache/xerces/jaxp/DocumentBuilderImpl.java
    xerces/java/trunk/src/org/apache/xerces/jaxp/SAXParserImpl.java
    xerces/java/trunk/src/org/apache/xerces/jaxp/UnparsedEntityHandler.java

Modified: xerces/java/trunk/src/org/apache/xerces/jaxp/DocumentBuilderImpl.java
URL: http://svn.apache.org/viewvc/xerces/java/trunk/src/org/apache/xerces/jaxp/DocumentBuilderImpl.java?view=diff&rev=520055&r1=520054&r2=520055
==============================================================================
--- xerces/java/trunk/src/org/apache/xerces/jaxp/DocumentBuilderImpl.java (original)
+++ xerces/java/trunk/src/org/apache/xerces/jaxp/DocumentBuilderImpl.java Mon Mar 19 12:25:57 2007
@@ -98,6 +98,7 @@
     private XMLComponent fSchemaValidator;
     private XMLComponentManager fSchemaValidatorComponentManager;
     private ValidationManager fSchemaValidationManager;
+    private UnparsedEntityHandler fUnparsedEntityHandler;
     
     /** Initial ErrorHandler */
     private final ErrorHandler fInitErrorHandler;
@@ -161,10 +162,10 @@
             if (grammar instanceof XSGrammarPoolContainer) {
                 validatorComponent = new XMLSchemaValidator();
                 fSchemaValidationManager = new ValidationManager();
-                XMLDTDFilter entityHandler = new UnparsedEntityHandler(fSchemaValidationManager);
-                config.setDTDHandler(entityHandler);
-                entityHandler.setDTDHandler(domParser);
-                domParser.setDTDSource(entityHandler);
+                fUnparsedEntityHandler = new UnparsedEntityHandler(fSchemaValidationManager);
+                config.setDTDHandler(fUnparsedEntityHandler);
+                fUnparsedEntityHandler.setDTDHandler(domParser);
+                domParser.setDTDSource(fUnparsedEntityHandler);
                 fSchemaValidatorComponentManager = new SchemaValidatorConfiguration(config, 
                         (XSGrammarPoolContainer) grammar, fSchemaValidationManager);
             }
@@ -278,6 +279,7 @@
         if (fSchemaValidator != null) {
             if (fSchemaValidationManager != null) {
                 fSchemaValidationManager.reset();
+                fUnparsedEntityHandler.reset();
             }
             resetSchemaValidator();
         }

Modified: xerces/java/trunk/src/org/apache/xerces/jaxp/SAXParserImpl.java
URL: http://svn.apache.org/viewvc/xerces/java/trunk/src/org/apache/xerces/jaxp/SAXParserImpl.java?view=diff&rev=520055&r1=520054&r2=520055
==============================================================================
--- xerces/java/trunk/src/org/apache/xerces/jaxp/SAXParserImpl.java (original)
+++ xerces/java/trunk/src/org/apache/xerces/jaxp/SAXParserImpl.java Mon Mar 19 12:25:57 2007
@@ -97,6 +97,7 @@
     private XMLComponent fSchemaValidator;
     private XMLComponentManager fSchemaValidatorComponentManager;
     private ValidationManager fSchemaValidationManager;
+    private UnparsedEntityHandler fUnparsedEntityHandler;
     
     /** Initial ErrorHandler */
     private final ErrorHandler fInitErrorHandler;
@@ -169,10 +170,10 @@
             if (grammar instanceof XSGrammarPoolContainer) {
                 validatorComponent = new XMLSchemaValidator();
                 fSchemaValidationManager = new ValidationManager();
-                XMLDTDFilter entityHandler = new UnparsedEntityHandler(fSchemaValidationManager);
-                config.setDTDHandler(entityHandler);
-                entityHandler.setDTDHandler(xmlReader);
-                xmlReader.setDTDSource(entityHandler);
+                fUnparsedEntityHandler = new UnparsedEntityHandler(fSchemaValidationManager);
+                config.setDTDHandler(fUnparsedEntityHandler);
+                fUnparsedEntityHandler.setDTDHandler(xmlReader);
+                xmlReader.setDTDSource(fUnparsedEntityHandler);
                 fSchemaValidatorComponentManager = new SchemaValidatorConfiguration(config, 
                         (XSGrammarPoolContainer) grammar, fSchemaValidationManager);
             }
@@ -548,6 +549,7 @@
             if (fSAXParser != null && fSAXParser.fSchemaValidator != null) {
                 if (fSAXParser.fSchemaValidationManager != null) {
                     fSAXParser.fSchemaValidationManager.reset();
+                    fSAXParser.fUnparsedEntityHandler.reset();
                 }
                 resetSchemaValidator();
             }
@@ -559,6 +561,7 @@
             if (fSAXParser != null && fSAXParser.fSchemaValidator != null) {
                 if (fSAXParser.fSchemaValidationManager != null) {
                     fSAXParser.fSchemaValidationManager.reset();
+                    fSAXParser.fUnparsedEntityHandler.reset();
                 }
                 resetSchemaValidator();
             }

Modified: xerces/java/trunk/src/org/apache/xerces/jaxp/UnparsedEntityHandler.java
URL: http://svn.apache.org/viewvc/xerces/java/trunk/src/org/apache/xerces/jaxp/UnparsedEntityHandler.java?view=diff&rev=520055&r1=520054&r2=520055
==============================================================================
--- xerces/java/trunk/src/org/apache/xerces/jaxp/UnparsedEntityHandler.java (original)
+++ xerces/java/trunk/src/org/apache/xerces/jaxp/UnparsedEntityHandler.java Mon Mar 19 12:25:57 2007
@@ -61,10 +61,6 @@
     public void startDTD(XMLLocator locator, Augmentations augmentations)
             throws XNIException {
         fValidationManager.setEntityState(this);
-        if (fUnparsedEntities != null && !fUnparsedEntities.isEmpty()) {
-            // should only clear this if the last document contained unparsed entities
-            fUnparsedEntities.clear();
-        }
         if (fDTDHandler != null) {
             fDTDHandler.startDTD(locator, augmentations);
         }
@@ -250,4 +246,14 @@
         return false;
     }
     
+    /*
+     * Other methods
+     */
+    
+    public void reset() {
+        if (fUnparsedEntities != null && !fUnparsedEntities.isEmpty()) {
+            // should only clear this if the last document contained unparsed entities
+            fUnparsedEntities.clear();
+        }
+    }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xerces.apache.org
For additional commands, e-mail: commits-help@xerces.apache.org