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;
}