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]

Reply via email to