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]