santiagopg 2003/11/21 10:34:42
Modified: java/src/org/apache/xalan/xsltc/trax Util.java
TransformerFactoryImpl.java
Log:
Updated patch for Bugzilla 24695 by Bhakti Metha. This patch gets an
XMLReader from a SAXParserFactory if unable to obtain one from an
XMLReaderFactory.
Revision Changes Path
1.9 +27 -5 xml-xalan/java/src/org/apache/xalan/xsltc/trax/Util.java
Index: Util.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/trax/Util.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- Util.java 17 Nov 2003 20:01:59 -0000 1.8
+++ Util.java 21 Nov 2003 18:34:41 -0000 1.9
@@ -65,6 +65,10 @@
import java.io.InputStream;
import java.io.Reader;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.SAXParserFactory;
+
import javax.xml.transform.Source;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.dom.DOMSource;
@@ -128,12 +132,30 @@
*/
if (reader == null) {
- reader= XMLReaderFactory.createXMLReader();
- reader.setFeature
+ try {
+ reader= XMLReaderFactory.createXMLReader();
+ } catch (Exception e ) {
+ try {
+
+ //Incase there is an exception thrown
+ // resort to JAXP
+ SAXParserFactory parserFactory =
+ SAXParserFactory.newInstance();
+ parserFactory.setNamespaceAware(true);
+ reader = parserFactory.newSAXParser()
+ .getXMLReader();
+
+
+ } catch (ParserConfigurationException pce ) {
+ throw new TransformerConfigurationException
+ ("ParserConfigurationException" ,pce);
+ }
+ }
+ }
+ reader.setFeature
("http://xml.org/sax/features/namespaces",true);
- reader.setFeature
+ reader.setFeature
("http://xml.org/sax/features/namespace-prefixes",false);
- }
xsltc.setXMLReader(reader);
}catch (SAXNotRecognizedException snre ) {
1.69 +8 -7
xml-xalan/java/src/org/apache/xalan/xsltc/trax/TransformerFactoryImpl.java
Index: TransformerFactoryImpl.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/trax/TransformerFactoryImpl.java,v
retrieving revision 1.68
retrieving revision 1.69
diff -u -r1.68 -r1.69
--- TransformerFactoryImpl.java 20 Nov 2003 18:01:49 -0000 1.68
+++ TransformerFactoryImpl.java 21 Nov 2003 18:34:41 -0000 1.69
@@ -81,6 +81,8 @@
import javax.xml.parsers.SAXParserFactory;
import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.ParserConfigurationException;
+
import javax.xml.transform.ErrorListener;
import javax.xml.transform.Source;
import javax.xml.transform.Templates;
@@ -1064,13 +1066,12 @@
}
catch (Exception e) {
try {
- // If unable to create an instance, let's try to use
Xerces
- Class clazz =
Thread.currentThread().getContextClassLoader()
- .loadClass("org.apache.xerces.parsers.SAXParser");
- result = (XMLReader) clazz.newInstance();
+ // If unable to create an instance, let's try to use
+ // the XMLReader from JAXP
+ result = _parserFactory.newSAXParser().getXMLReader();
}
- catch (ClassNotFoundException cnfe) {
- throw e; // ignore cnfe
+ catch (ParserConfigurationException pce) {
+ throw e; // ignore pce
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]