elena       2003/02/12 09:10:34

  Modified:    java/src/org/apache/xerces/impl XML11EntityScanner.java
                        XMLEntityManager.java XMLEntityScanner.java
               java/src/org/apache/xerces/impl/msg XMLMessages.properties
  Log:
  Xerces failed to report a fatal error on invalid QName. Bug fix: 
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=15079.
  
  Revision  Changes    Path
  1.2       +3 -34     
xml-xerces/java/src/org/apache/xerces/impl/XML11EntityScanner.java
  
  Index: XML11EntityScanner.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/java/src/org/apache/xerces/impl/XML11EntityScanner.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- XML11EntityScanner.java   7 Dec 2002 00:15:58 -0000       1.1
  +++ XML11EntityScanner.java   12 Feb 2003 17:10:33 -0000      1.2
  @@ -57,43 +57,12 @@
   
   package org.apache.xerces.impl;
   
  -import java.io.EOFException;
  -import java.io.FileInputStream;
  -import java.io.FilterReader;
  -import java.io.InputStream;
  -import java.io.InputStreamReader;
   import java.io.IOException;
  -import java.io.Reader;
  -import java.io.StringReader;
  -import java.net.URL;
  -import java.util.Hashtable;
  -import java.util.Stack;
  -import java.util.Vector;
   
  -import org.apache.xerces.impl.XMLErrorReporter;
  -import org.apache.xerces.impl.io.ASCIIReader;
  -import org.apache.xerces.impl.io.UCSReader;
  -import org.apache.xerces.impl.io.UTF8Reader;
  -import org.apache.xerces.impl.msg.XMLMessageFormatter;
  -import org.apache.xerces.impl.validation.ValidationManager;
  -
  -import org.apache.xerces.util.EncodingMap;
  -import org.apache.xerces.util.SymbolTable;
  -import org.apache.xerces.util.XMLStringBuffer;
  -import org.apache.xerces.util.SymbolTable;
  -import org.apache.xerces.util.URI;
   import org.apache.xerces.util.XML11Char;
  -import org.apache.xerces.util.XMLResourceIdentifierImpl;
  -
  +import org.apache.xerces.util.XMLStringBuffer;
   import org.apache.xerces.xni.QName;
  -import org.apache.xerces.xni.XMLResourceIdentifier;
   import org.apache.xerces.xni.XMLString;
  -import org.apache.xerces.xni.XNIException;
  -import org.apache.xerces.xni.parser.XMLComponent;
  -import org.apache.xerces.xni.parser.XMLComponentManager;
  -import org.apache.xerces.xni.parser.XMLConfigurationException;
  -import org.apache.xerces.xni.parser.XMLEntityResolver;
  -import org.apache.xerces.xni.parser.XMLInputSource;
   
   /**
    * Implements the entity scanner methods in
  @@ -111,7 +80,7 @@
       //
   
       /** Default constructor. */
  -    public XML11EntityScanner( ) {
  +    public XML11EntityScanner() {
           super();
       } // <init>()
   
  
  
  
  1.62      +11 -18    xml-xerces/java/src/org/apache/xerces/impl/XMLEntityManager.java
  
  Index: XMLEntityManager.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/java/src/org/apache/xerces/impl/XMLEntityManager.java,v
  retrieving revision 1.61
  retrieving revision 1.62
  diff -u -r1.61 -r1.62
  --- XMLEntityManager.java     10 Feb 2003 21:37:34 -0000      1.61
  +++ XMLEntityManager.java     12 Feb 2003 17:10:33 -0000      1.62
  @@ -57,12 +57,9 @@
   
   package org.apache.xerces.impl;
   
  -import java.io.EOFException;
  -import java.io.FileInputStream;
  -import java.io.FilterReader;
  +import java.io.IOException;
   import java.io.InputStream;
   import java.io.InputStreamReader;
  -import java.io.IOException;
   import java.io.Reader;
   import java.io.StringReader;
   import java.net.URL;
  @@ -71,24 +68,18 @@
   import java.util.Stack;
   import java.util.Vector;
   
  -import org.apache.xerces.impl.XMLErrorReporter;
   import org.apache.xerces.impl.io.ASCIIReader;
   import org.apache.xerces.impl.io.UCSReader;
   import org.apache.xerces.impl.io.UTF8Reader;
   import org.apache.xerces.impl.msg.XMLMessageFormatter;
   import org.apache.xerces.impl.validation.ValidationManager;
  -
   import org.apache.xerces.util.EncodingMap;
  -import org.apache.xerces.util.XMLStringBuffer;
   import org.apache.xerces.util.SecurityManager;
   import org.apache.xerces.util.SymbolTable;
   import org.apache.xerces.util.URI;
   import org.apache.xerces.util.XMLChar;
   import org.apache.xerces.util.XMLResourceIdentifierImpl;
  -
  -import org.apache.xerces.xni.QName;
   import org.apache.xerces.xni.XMLResourceIdentifier;
  -import org.apache.xerces.xni.XMLString;
   import org.apache.xerces.xni.XNIException;
   import org.apache.xerces.xni.parser.XMLComponent;
   import org.apache.xerces.xni.parser.XMLComponentManager;
  @@ -1087,14 +1078,14 @@
           if(version == Constants.XML_VERSION_1_0) {
               if(fXML10EntityScanner == null) {
                   fXML10EntityScanner = new XMLEntityScanner();
  -                fXML10EntityScanner.reset(fSymbolTable, this);
  +                fXML10EntityScanner.reset(fSymbolTable, this, fErrorReporter);
               }
               fEntityScanner = fXML10EntityScanner;
               fEntityScanner.setCurrentEntity(fCurrentEntity);
           } else {
               if(fXML11EntityScanner == null) {
                   fXML11EntityScanner = new XML11EntityScanner();
  -                fXML11EntityScanner.reset(fSymbolTable, this);
  +                fXML11EntityScanner.reset(fSymbolTable, this, fErrorReporter);
               }
               fEntityScanner = fXML11EntityScanner;
               fEntityScanner.setCurrentEntity(fCurrentEntity);
  @@ -1108,7 +1099,7 @@
               if(fXML10EntityScanner == null) {
                   fXML10EntityScanner = new XMLEntityScanner();
               }
  -            fXML10EntityScanner.reset(fSymbolTable, this);
  +            fXML10EntityScanner.reset(fSymbolTable, this, fErrorReporter);
               fEntityScanner = fXML10EntityScanner;
           }
           return fEntityScanner;
  @@ -1237,10 +1228,12 @@
   
           fCurrentEntity = null;
           // reset scanner
  -        if(fXML10EntityScanner != null) 
  -            fXML10EntityScanner.reset(fSymbolTable, this);
  -        if(fXML11EntityScanner != null) 
  -            fXML11EntityScanner.reset(fSymbolTable, this);
  +        if(fXML10EntityScanner != null){ 
  +            fXML10EntityScanner.reset(fSymbolTable, this, fErrorReporter);
  +        }
  +        if(fXML11EntityScanner != null) {
  +            fXML11EntityScanner.reset(fSymbolTable, this, fErrorReporter);
  +        }
   
           // DEBUG
           if (DEBUG_ENTITIES) {
  
  
  
  1.13      +20 -4     xml-xerces/java/src/org/apache/xerces/impl/XMLEntityScanner.java
  
  Index: XMLEntityScanner.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/java/src/org/apache/xerces/impl/XMLEntityScanner.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- XMLEntityScanner.java     3 Feb 2003 08:44:43 -0000       1.12
  +++ XMLEntityScanner.java     12 Feb 2003 17:10:33 -0000      1.13
  @@ -64,6 +64,7 @@
   import org.apache.xerces.util.XMLChar;
   import org.apache.xerces.util.SymbolTable;
   import org.apache.xerces.impl.io.UCSReader;
  +import org.apache.xerces.impl.msg.XMLMessageFormatter;
   import org.apache.xerces.util.XMLStringBuffer;
   
   import java.io.IOException;
  @@ -91,12 +92,17 @@
   
       protected int fBufferSize = XMLEntityManager.DEFAULT_BUFFER_SIZE;
   
  +    /**
  +     * Error reporter. This property identifier is:
  +     * http://apache.org/xml/properties/internal/error-reporter
  +     */
  +    protected XMLErrorReporter fErrorReporter;
       //
       // Constructors
       //
   
       /** Default constructor. */
  -    public XMLEntityScanner( ) {
  +    public XMLEntityScanner() {
       } // <init>()
   
       //
  @@ -490,6 +496,7 @@
               int index = -1;
               while (XMLChar.isName(fCurrentEntity.ch[fCurrentEntity.position])) {
                   char c = fCurrentEntity.ch[fCurrentEntity.position];
  +
                   if (c == ':') {
                       if (index != -1) {
                           break;
  @@ -531,8 +538,15 @@
                       prefix = fSymbolTable.addSymbol(fCurrentEntity.ch,
                                                       offset, prefixLength);
                       int len = length - prefixLength - 1;
  +                    int startLocal = index +1;
  +                    if (!XMLChar.isNameStart(fCurrentEntity.ch[startLocal])){
  +                        fErrorReporter.reportError(XMLMessageFormatter.XML_DOMAIN,
  +                                                 "IllegalQName",
  +                                                  null,
  +                                                  
XMLErrorReporter.SEVERITY_FATAL_ERROR);
  +                    }
                       localpart = fSymbolTable.addSymbol(fCurrentEntity.ch,
  -                                                       index + 1, len);
  +                                                       startLocal, len);
   
                   }
                   else {
  @@ -1478,10 +1492,12 @@
       }
   
       // reset what little state we have...
  -    public void reset(SymbolTable symbolTable, XMLEntityManager entityManager) {
  +    public void reset(SymbolTable symbolTable, XMLEntityManager entityManager,
  +                        XMLErrorReporter reporter) {
           fCurrentEntity = null;
           fSymbolTable = symbolTable;
           fEntityManager = entityManager;
  +        fErrorReporter = reporter;
       }
   
       //
  
  
  
  1.17      +1 -0      
xml-xerces/java/src/org/apache/xerces/impl/msg/XMLMessages.properties
  
  Index: XMLMessages.properties
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/java/src/org/apache/xerces/impl/msg/XMLMessages.properties,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- XMLMessages.properties    8 Jan 2003 23:04:11 -0000       1.16
  +++ XMLMessages.properties    12 Feb 2003 17:10:34 -0000      1.17
  @@ -261,6 +261,7 @@
           
   # Namespaces support
   # 4. Using Qualified Names
  +        IllegalQName = Element or attribute do not match QName production: 
QName::=(NCName':')?NCName. 
           ElementXMLNSPrefix = Element \"{0}\" cannot have \"xmlns\" as its prefix.
           ElementPrefixUnbound = The prefix \"{0}\" for element \"{1}\" is not bound.
           AttributePrefixUnbound = The prefix \"{0}\" for attribute \"{1}\" is not 
bound.
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to