You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by ne...@apache.org on 2002/01/25 20:55:34 UTC

cvs commit: xml-xerces/java/src/org/apache/xerces/impl XMLScanner.java XMLDTDScannerImpl.java

neilg       02/01/25 11:55:34

  Modified:    java/src/org/apache/xerces/impl XMLScanner.java
                        XMLDTDScannerImpl.java
  Log:
  fix ArrayIndexOutOfBoundsException that would result if one parsed a doc with an incomplete PI or comment.  Regression from XNI change of 01/22.
  
  Revision  Changes    Path
  1.10      +8 -2      xml-xerces/java/src/org/apache/xerces/impl/XMLScanner.java
  
  Index: XMLScanner.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/XMLScanner.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- XMLScanner.java	22 Jan 2002 16:42:26 -0000	1.9
  +++ XMLScanner.java	25 Jan 2002 19:55:34 -0000	1.10
  @@ -95,7 +95,7 @@
    * @author Arnaud  Le Hors, IBM
    * @author Eric Ye, IBM
    *
  - * @version $Id: XMLScanner.java,v 1.9 2002/01/22 16:42:26 neilg Exp $
  + * @version $Id: XMLScanner.java,v 1.10 2002/01/25 19:55:34 neilg Exp $
    */
   public abstract class XMLScanner 
       implements XMLComponent {
  @@ -173,6 +173,9 @@
       /** Scanning attribute. */
       protected boolean fScanningAttribute;
   
  +    /** Report entity boundary. */
  +    protected boolean fReportEntity;
  +
       // symbols
   
       /** Symbol: "version". */
  @@ -244,6 +247,7 @@
           
           // initialize vars
           fEntityDepth = 0;
  +        fReportEntity = true;
   
           // save built-in entity names
           fVersionSymbol = fSymbolTable.addSymbol("version");
  @@ -554,6 +558,7 @@
       protected void scanPI() throws IOException, XNIException {
   
           // target
  +        fReportEntity = false;
           String target = fEntityScanner.scanName();
           if (target == null) {
               reportFatalError("PITargetRequired", null);
  @@ -561,6 +566,7 @@
   
           // scan data
           scanPIData(target, fString);
  +        fReportEntity = true;
   
       } // scanPI()
   
  @@ -656,7 +662,7 @@
                                        new Object[] { Integer.toHexString(c) }); 
                       fEntityScanner.scanChar();
                   }
  -            }
  +            } 
           }
           text.append(fString);
           if (!fEntityScanner.skipChar('>')) {
  
  
  
  1.16      +3 -6      xml-xerces/java/src/org/apache/xerces/impl/XMLDTDScannerImpl.java
  
  Index: XMLDTDScannerImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/XMLDTDScannerImpl.java,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- XMLDTDScannerImpl.java	24 Jan 2002 06:42:58 -0000	1.15
  +++ XMLDTDScannerImpl.java	25 Jan 2002 19:55:34 -0000	1.16
  @@ -104,7 +104,7 @@
    * @author Glenn Marcy, IBM
    * @author Eric Ye, IBM
    *
  - * @version $Id: XMLDTDScannerImpl.java,v 1.15 2002/01/24 06:42:58 neilg Exp $
  + * @version $Id: XMLDTDScannerImpl.java,v 1.16 2002/01/25 19:55:34 neilg Exp $
    */
   public class XMLDTDScannerImpl
       extends XMLScanner
  @@ -171,9 +171,6 @@
       /** Seen external parameter entity. */
       protected boolean fSeenExternalPE;
   
  -    /** Report entity boundary. */
  -    protected boolean fReportEntity;
  -
       // private data
   
       /** Start DTD called. */
  @@ -384,8 +381,6 @@
           fSeenExternalDTD = false;
           fSeenExternalPE = false;
   
  -        fReportEntity = true;
  -
           // set starting state
           setScannerState(SCANNER_STATE_TEXT_DECL);
   
  @@ -698,6 +693,7 @@
        */
       protected final void scanComment() throws IOException, XNIException {
   
  +        fReportEntity = false;
           scanComment(fStringBuffer);
           fMarkUpDepth--;
   
  @@ -705,6 +701,7 @@
           if (fDTDHandler != null) {
               fDTDHandler.comment(fStringBuffer, null);
           }
  +        fReportEntity = true;
   
       } // scanComment()
   
  
  
  

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