You are viewing a plain text version of this content. The canonical link for it is here.
Posted to xindice-dev@xml.apache.org by vg...@apache.org on 2004/01/04 06:17:39 UTC

cvs commit: xml-xindice/java/src/org/apache/xindice/xml/dom DOMParser.java

vgritsenko    2004/01/03 21:17:38

  Modified:    java/src/org/apache/xindice/xml/dom DOMParser.java
  Log:
  Log SAX parser exceptions
  
  Revision  Changes    Path
  1.14      +21 -38    xml-xindice/java/src/org/apache/xindice/xml/dom/DOMParser.java
  
  Index: DOMParser.java
  ===================================================================
  RCS file: /home/cvs/xml-xindice/java/src/org/apache/xindice/xml/dom/DOMParser.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- DOMParser.java	25 Dec 2003 03:48:10 -0000	1.13
  +++ DOMParser.java	4 Jan 2004 05:17:38 -0000	1.14
  @@ -95,10 +95,13 @@
    */
   public final class DOMParser extends DefaultHandler implements DeclHandler, LexicalHandler {
   
  -    // TODO: Improve exception handling
  -
       private static final Log log = LogFactory.getLog(DOMParser.class);
   
  +    /**
  +     * SAX parser factory instance
  +     */
  +    private static final SAXParserFactory factory = SAXParserFactory.newInstance();
  +
       private SAXParser sp;
       private ErrorHandler errors = null;
       private EntityResolver entities = null;
  @@ -107,12 +110,13 @@
       private Node context;
       private int state = -1;
       private StringBuffer buf;
  -    private ObjectStack states = new ObjectStack();
  +    private final ObjectStack states = new ObjectStack();
   
       public DOMParser() throws XindiceException {
           try {
               sp = getSAXParser();
           } catch (Exception e) {
  +            log.warn("Failed to create SAXParser", e);
               throw new XindiceException("Error creating parser", e);
           }
       }
  @@ -224,39 +228,16 @@
           return doc;
       }
   
  -    private void setReaderProperty(XMLReader xr, String name, Object value) {
  -        try {
  -            xr.setProperty(name, value);
  -        } catch (Exception e) {
  -            if (log.isWarnEnabled()) {
  -                log.warn("ignored exception", e);
  -            }
  -        }
  -    }
  -
  -    private void setReaderFeature(XMLReader xr, String name, boolean value) {
  -        try {
  -            xr.setFeature(name, value);
  -        } catch (Exception e) {
  -            if (log.isWarnEnabled()) {
  -                log.warn("ignored exception", e);
  -            }
  -        }
  -    }
  -
       private SAXParser getSAXParser() throws Exception {
  -        SAXParserFactory f = SAXParserFactory.newInstance();
  -        SAXParser sp = f.newSAXParser();
  -
  -        XMLReader xr = sp.getXMLReader();
  -        setReaderFeature(xr, "http://xml.org/sax/features/namespaces", true);
  -        setReaderFeature(xr, "http://xml.org/sax/features/validation", false);
  -        setReaderFeature(xr, "http://xml.org/sax/features/external-general-entities", false);
  -        setReaderFeature(xr, "http://xml.org/sax/features/external-parameter-entities", false);
  -        setReaderFeature(xr, "http://xml.org/sax/features/namespace-prefixes", true);
  -        setReaderProperty(xr, "http://xml.org/sax/properties/lexical-handler", this);
  -        setReaderProperty(xr, "http://xml.org/sax/properties/declaration-handler", this);
  -
  +        final SAXParser sp = factory.newSAXParser();
  +        final XMLReader xr = sp.getXMLReader();
  +        xr.setFeature("http://xml.org/sax/features/namespaces", true);
  +        xr.setFeature("http://xml.org/sax/features/validation", false);
  +        xr.setFeature("http://xml.org/sax/features/external-general-entities", false);
  +        xr.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
  +        xr.setFeature("http://xml.org/sax/features/namespace-prefixes", true);
  +        xr.setProperty("http://xml.org/sax/properties/lexical-handler", this);
  +        xr.setProperty("http://xml.org/sax/properties/declaration-handler", this);
           if (errors != null) {
               xr.setErrorHandler(errors);
           }
  @@ -324,7 +305,6 @@
   
           for (int i = 0; i < attributes.getLength(); i++) {
               String attrURI = attributes.getURI(i);
  -            ;
               String attrQName = attributes.getQName(i);
               String attrValue = attributes.getValue(i);
   
  @@ -383,12 +363,15 @@
       // Implementation of the ErrorHandler interface
   
       public void warning(SAXParseException e) throws SAXException {
  +        log.info("Parsing warning (ignored)", e);
       }
   
       public void error(SAXParseException e) throws SAXException {
  +        log.info("Parsing error (ignored)", e);
       }
   
       public void fatalError(SAXParseException e) throws SAXException {
  +        log.warn("Parsing fatal error", e);
           throw e;
       }