tmiller     02/04/29 12:28:38

  Modified:    java/src/org/apache/xalan/xsltc/trax TransformerImpl.java
  Log:
  fixed null ptr exception with sax sources that did
  not specify an xml reader
  
  Revision  Changes    Path
  1.39      +14 -4     
xml-xalan/java/src/org/apache/xalan/xsltc/trax/TransformerImpl.java
  
  Index: TransformerImpl.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/trax/TransformerImpl.java,v
  retrieving revision 1.38
  retrieving revision 1.39
  diff -u -r1.38 -r1.39
  --- TransformerImpl.java      24 Apr 2002 17:03:17 -0000      1.38
  +++ TransformerImpl.java      29 Apr 2002 19:28:38 -0000      1.39
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: TransformerImpl.java,v 1.38 2002/04/24 17:03:17 santiagopg Exp $
  + * @(#)$Id: TransformerImpl.java,v 1.39 2002/04/29 19:28:38 tmiller Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -382,10 +382,18 @@
            if (source instanceof SAXSource) {
                // Get all info from the input SAXSource object
                final SAXSource   sax    = (SAXSource)source;
  -             final XMLReader   reader = sax.getXMLReader();
  +             XMLReader   reader = sax.getXMLReader();
                final InputSource input  = sax.getInputSource();
                final String      systemId = sax.getSystemId();
   
  +             // if reader was not set with setXMLReader by user,
  +             // then we must create one ourselves.
  +             if (reader == null) {
  +                 SAXParserFactory pfactory= SAXParserFactory.newInstance();
  +                 pfactory.setNamespaceAware(true);
  +                 reader = pfactory.newSAXParser().getXMLReader();
  +             }
  +
                // Create a DTD monitor to trap all DTD/declarative events
                dtd = new DTDMonitor();
                dtd.handleDTD(reader);
  @@ -544,10 +552,12 @@
            TextOutput handler;
   
            // Check if the ContentHandler also implements LexicalHandler
  -         if (sax instanceof LexicalHandler)
  +         if (sax instanceof LexicalHandler) {
                handler = new TextOutput(sax, (LexicalHandler)sax, encoding);
  -         else
  +         }
  +         else {
                handler = new TextOutput(sax, encoding);
  +         }
            _translet.transform(dom, handler);
        }
        catch (TransletException e) {
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to