sboag 01/05/16 08:14:34
Modified: java/src/org/apache/xalan/transformer Tag: DTM_EXP
TransformerHandlerImpl.java TransformerImpl.java
java/src/org/apache/xalan/xslt Tag: DTM_EXP Process.java
java/src/org/apache/xml/dtm Tag: DTM_EXP
DTMManagerDefault.java
Log:
The TransformerHandlerImpl is basically working. It will hang if
you throw an error from the tranform... i.e. error handling TBD.
You can test by -flavor th from the command line.
Revision Changes Path
No revision
No revision
1.1.2.2 +37 -2
xml-xalan/java/src/org/apache/xalan/transformer/Attic/TransformerHandlerImpl.java
Index: TransformerHandlerImpl.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/transformer/Attic/TransformerHandlerImpl.java,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -u -r1.1.2.1 -r1.1.2.2
--- TransformerHandlerImpl.java 2001/05/16 05:35:25 1.1.2.1
+++ TransformerHandlerImpl.java 2001/05/16 15:13:54 1.1.2.2
@@ -138,8 +138,17 @@
public void setResult(Result result) throws IllegalArgumentException
{
- if (null == result)
- throw new IllegalArgumentException("result can not be null!");
+ if(null == result)
+ throw new IllegalArgumentException("result should not be null");
+ try
+ {
+ ContentHandler handler =
m_transformer.createResultContentHandler(result);
+ m_transformer.setContentHandler(handler);
+ }
+ catch(javax.xml.transform.TransformerException te)
+ {
+ throw new IllegalArgumentException("result could not be set");
+ }
m_result = result;
}
@@ -285,6 +294,11 @@
public void startDocument() throws SAXException
{
+ Thread listener=new Thread(m_transformer);
+ m_transformer.setTransformThread(listener);
+ listener.setDaemon(false);
+ listener.start();
+
if (m_contentHandler != null)
{
m_contentHandler.startDocument();
@@ -305,6 +319,27 @@
{
m_contentHandler.endDocument();
}
+
+ Thread transformThread = m_transformer.getTransformThread();
+
+ if (null != transformThread)
+ {
+ try
+ {
+
+ // This should wait until the transformThread is considered not
alive.
+ transformThread.join();
+ if(!m_transformer.hasTransformThreadErrorCatcher())
+ {
+ Exception e = m_transformer.getExceptionThrown();
+ if(null != e)
+ throw new org.xml.sax.SAXException(e);
+ }
+ m_transformer.setTransformThread(null);
+ }
+ catch (InterruptedException ie){}
+ }
+
}
/**
1.90.2.9 +16 -24
xml-xalan/java/src/org/apache/xalan/transformer/TransformerImpl.java
Index: TransformerImpl.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/transformer/TransformerImpl.java,v
retrieving revision 1.90.2.8
retrieving revision 1.90.2.9
diff -u -r1.90.2.8 -r1.90.2.9
--- TransformerImpl.java 2001/05/16 05:32:56 1.90.2.8
+++ TransformerImpl.java 2001/05/16 15:14:01 1.90.2.9
@@ -2842,34 +2842,26 @@
{
// int n = ((SourceTreeHandler)getInputContentHandler()).getDTMRoot();
// transformNode(n);
- if (isParserEventsOnMain())
+ try
{
- try
- {
- m_isTransformDone = false;
+ m_isTransformDone = false;
+
+ transformNode(m_doc);
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ // Strange that the other catch won't catch this...
+ postExceptionFromThread(e);
+ }
+ finally
+ {
+ m_isTransformDone = true;
- transformNode(m_doc);
- }
- catch (Exception e)
+ synchronized (this)
{
- // e.printStackTrace();
- // Strange that the other catch won't catch this...
- postExceptionFromThread(e);
+ notifyAll();
}
- finally
- {
- m_isTransformDone = true;
-
- synchronized (this)
- {
- notifyAll();
- }
- }
- }
- else
- {
- InputSource isource = SAXSource.sourceToInputSource(m_xmlSource);
- getXPathContext().getPrimaryReader().parse(isource);
}
}
catch (Exception e)
No revision
No revision
1.32.2.1 +276 -147 xml-xalan/java/src/org/apache/xalan/xslt/Process.java
Index: Process.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/xslt/Process.java,v
retrieving revision 1.32
retrieving revision 1.32.2.1
diff -u -r1.32 -r1.32.2.1
--- Process.java 2001/03/14 19:51:02 1.32
+++ Process.java 2001/05/16 15:14:15 1.32.2.1
@@ -105,12 +105,13 @@
import javax.xml.transform.OutputKeys;
import javax.xml.transform.TransformerException;
import javax.xml.transform.URIResolver;
-
import javax.xml.transform.dom.*;
import javax.xml.transform.sax.*;
import javax.xml.parsers.*;
+
import org.w3c.dom.Node;
import org.w3c.dom.Document;
+
import org.xml.sax.InputSource;
import org.xml.sax.EntityResolver;
import org.xml.sax.ContentHandler;
@@ -144,6 +145,7 @@
// System.out.println(resbundle.getString("optionE")); //" [-E (Do not
expand entity refs)]");
System.out.println(resbundle.getString("optionV")); //" [-V (Version
info)]");
System.out.println(resbundle.getString("optionQC")); //" [-QC (Quiet
Pattern Conflicts Warnings)]");
+
// System.out.println(resbundle.getString("optionQ")); //" [-Q
(Quiet Mode)]"); // sc 28-Feb-01 commented out
System.out.println(resbundle.getString("optionTT")); //" [-TT (Trace
the templates as they are being called.)]");
System.out.println(resbundle.getString("optionTG")); //" [-TG (Trace
each generation event.)]");
@@ -157,19 +159,20 @@
System.out.println(resbundle.getString("optionTEXT")); //" [-TEXT
(Use simple Text formatter.)]");
System.out.println(resbundle.getString("optionHTML")); //" [-HTML
(Use HTML formatter.)]");
System.out.println(resbundle.getString("optionPARAM")); //" [-PARAM
name expression (Set a stylesheet parameter)]");
+
// sc 28-Feb-01 these below should really be added as resources
System.out.println(
" [-MEDIA mediaType (use media attribute to find stylesheet
associated with a document.)]");
System.out.println(
- " [-FLAVOR flavorName (Explicitly use s2s=SAX or d2d=DOM to do
transform.)]"); // Added by sboag/scurcuru; experimental
+ " [-FLAVOR flavorName (Explicitly use s2s=SAX or d2d=DOM to do
transform.)]"); // Added by sboag/scurcuru; experimental
System.out.println(
" [-DIAG (Print overall milliseconds transform took.)]");
- System.out.println(resbundle.getString("optionURIRESOLVER"));
//" [-URIRESOLVER full class name (URIResolver to be used to resolve URIs)]");
-
System.out.println(resbundle.getString("optionENTITYRESOLVER")); //"
[-ENTITYRESOLVER full class name (EntityResolver to be used to resolve
entities)]");
-
System.out.println(resbundle.getString("optionCONTENTHANDLER")); //"
[-CONTENTHANDLER full class name (ContentHandler to be used to serialize
output)]");
+ System.out.println(resbundle.getString("optionURIRESOLVER")); //"
[-URIRESOLVER full class name (URIResolver to be used to resolve URIs)]");
+ System.out.println(resbundle.getString("optionENTITYRESOLVER")); //"
[-ENTITYRESOLVER full class name (EntityResolver to be used to resolve
entities)]");
+ System.out.println(resbundle.getString("optionCONTENTHANDLER")); //"
[-CONTENTHANDLER full class name (ContentHandler to be used to serialize
output)]");
}
- /** Default properties file */
+ /** Default properties file */
static String XSLT_PROPERTIES =
"/org/apache/xalan/res/XSLTInfo.properties";
/**
@@ -199,7 +202,6 @@
XSLTErrorResources resbundle =
(XSLTErrorResources) (XSLMessages.loadResourceBundle(
org.apache.xml.utils.res.XResourceBundle.ERROR_RESOURCES));
-
String flavor = "s2s";
// loadPropertyFileToSystem(XSLT_PROPERTIES);
@@ -238,9 +240,9 @@
String media = null;
Vector params = new Vector();
boolean quietConflictWarnings = false;
- URIResolver uriResolver = null;
- EntityResolver entityResolver = null;
- ContentHandler contentHandler = null;
+ URIResolver uriResolver = null;
+ EntityResolver entityResolver = null;
+ ContentHandler contentHandler = null;
for (int i = 0; i < argv.length; i++)
{
@@ -366,7 +368,7 @@
XSLTErrorResources.ER_MISSING_ARG_FOR_OPTION,
new Object[]{ "-PARAM" })); //"Missing argument for);
}
- else if ("-treedump".equalsIgnoreCase(argv[i])) // sc 28-Feb-01
appears to be unused; can we remove?
+ else if ("-treedump".equalsIgnoreCase(argv[i])) // sc 28-Feb-01
appears to be unused; can we remove?
{
if (i + 1 < argv.length)
treedumpFileName = argv[++i];
@@ -376,7 +378,7 @@
XSLTErrorResources.ER_MISSING_ARG_FOR_OPTION,
new Object[]{ "-treedump" })); //"Missing argument for);
}
- else if ("-F".equalsIgnoreCase(argv[i])) // sc 28-Feb-01 appears to
be unused; can we remove?
+ else if ("-F".equalsIgnoreCase(argv[i])) // sc 28-Feb-01 appears to
be unused; can we remove?
{
formatOutput = true;
}
@@ -444,81 +446,88 @@
dumpFileName = argv[++i];
}
}
- else if
("-URIRESOLVER".equalsIgnoreCase(argv[i]))
+ else if ("-URIRESOLVER".equalsIgnoreCase(argv[i]))
{
if (i + 1 < argv.length)
- {
- try{
- uriResolver =
(URIResolver)Class.forName(argv[++i]).newInstance();
-
tfactory.setURIResolver(uriResolver);
- }
- catch(Exception cnfe)
- {
- System.err.println(
- XSLMessages.createMessage(
- XSLTErrorResources.ER_CLASS_NOT_FOUND_FOR_OPTION,
- new Object[]{ "-URIResolver" }));
- System.exit(-1);
- }
- }
- else
- {
+ {
+ try
+ {
+ uriResolver =
+ (URIResolver) Class.forName(argv[++i]).newInstance();
+
+ tfactory.setURIResolver(uriResolver);
+ }
+ catch (Exception cnfe)
+ {
+ System.err.println(
+ XSLMessages.createMessage(
+ XSLTErrorResources.ER_CLASS_NOT_FOUND_FOR_OPTION,
+ new Object[]{ "-URIResolver" }));
+ System.exit(-1);
+ }
+ }
+ else
+ {
System.err.println(
XSLMessages.createMessage(
XSLTErrorResources.ER_MISSING_ARG_FOR_OPTION,
new Object[]{ "-URIResolver" })); //"Missing argument for);
- System.exit(-1);
- }
- }
- else if
("-ENTITYRESOLVER".equalsIgnoreCase(argv[i]))
+ System.exit(-1);
+ }
+ }
+ else if ("-ENTITYRESOLVER".equalsIgnoreCase(argv[i]))
{
if (i + 1 < argv.length)
- {
- try{
- entityResolver =
(EntityResolver)Class.forName(argv[++i]).newInstance();
- }
- catch(Exception cnfe)
- {
- System.err.println(
- XSLMessages.createMessage(
- XSLTErrorResources.ER_CLASS_NOT_FOUND_FOR_OPTION,
- new Object[]{ "-EntityResolver" }));
- System.exit(-1);
- }
- }
+ {
+ try
+ {
+ entityResolver =
+ (EntityResolver) Class.forName(argv[++i]).newInstance();
+ }
+ catch (Exception cnfe)
+ {
+ System.err.println(
+ XSLMessages.createMessage(
+ XSLTErrorResources.ER_CLASS_NOT_FOUND_FOR_OPTION,
+ new Object[]{ "-EntityResolver" }));
+ System.exit(-1);
+ }
+ }
else
- {
+ {
System.err.println(
XSLMessages.createMessage(
XSLTErrorResources.ER_MISSING_ARG_FOR_OPTION,
new Object[]{ "-EntityResolver" })); //"Missing argument
for);
- System.exit(-1);
- }
+ System.exit(-1);
+ }
}
- else if
("-CONTENTHANDLER".equalsIgnoreCase(argv[i]))
+ else if ("-CONTENTHANDLER".equalsIgnoreCase(argv[i]))
{
if (i + 1 < argv.length)
- {
- try{
- contentHandler =
(ContentHandler)Class.forName(argv[++i]).newInstance();
- }
- catch(Exception cnfe)
- {
- System.err.println(
- XSLMessages.createMessage(
- XSLTErrorResources.ER_CLASS_NOT_FOUND_FOR_OPTION,
- new Object[]{ "-ContentHandler" }));
- System.exit(-1);
- }
- }
+ {
+ try
+ {
+ contentHandler =
+ (ContentHandler) Class.forName(argv[++i]).newInstance();
+ }
+ catch (Exception cnfe)
+ {
+ System.err.println(
+ XSLMessages.createMessage(
+ XSLTErrorResources.ER_CLASS_NOT_FOUND_FOR_OPTION,
+ new Object[]{ "-ContentHandler" }));
+ System.exit(-1);
+ }
+ }
else
- {
+ {
System.err.println(
XSLMessages.createMessage(
XSLTErrorResources.ER_MISSING_ARG_FOR_OPTION,
new Object[]{ "-ContentHandler" })); //"Missing argument
for);
- System.exit(-1);
- }
+ System.exit(-1);
+ }
}
else
System.err.println(
@@ -536,26 +545,35 @@
{
dumpWriter = new PrintWriter(new FileWriter(dumpFileName));
}
+
Templates stylesheet = null;
- if(null != xslFileName)
+
+ if (null != xslFileName)
{
- if(flavor.equals("d2d"))
+ if (flavor.equals("d2d"))
{
+
// Parse in the xml data into a DOM
- DocumentBuilderFactory dfactory =
DocumentBuilderFactory.newInstance();
+ DocumentBuilderFactory dfactory =
+ DocumentBuilderFactory.newInstance();
+
dfactory.setNamespaceAware(true);
+
DocumentBuilder docBuilder = dfactory.newDocumentBuilder();
- Node xslDOM =
docBuilder.parse(new InputSource(xslFileName));
- stylesheet = tfactory.newTemplates(new DOMSource(xslDOM,
xslFileName));
+ Node xslDOM = docBuilder.parse(new InputSource(xslFileName));
+
+ stylesheet = tfactory.newTemplates(new DOMSource(xslDOM,
+ xslFileName));
}
else
- {
+ {
stylesheet = tfactory.newTemplates(new
StreamSource(xslFileName));
}
}
-
+
PrintWriter resultWriter;
StreamResult strResult;
+
if (null != outFileName)
{
strResult = new StreamResult(new File(outFileName));
@@ -564,40 +582,39 @@
{
strResult = new StreamResult(System.out);
}
-
- SAXTransformerFactory stf = (SAXTransformerFactory)tfactory;
+ SAXTransformerFactory stf = (SAXTransformerFactory) tfactory;
// Did they pass in a stylesheet, or should we get it from the
// document?
if (null == stylesheet)
{
Source source =
- stf.getAssociatedStylesheet(new StreamSource(inFileName),
- media, null, null);
+ stf.getAssociatedStylesheet(new StreamSource(inFileName), media,
+ null, null);
if (null != source)
stylesheet = tfactory.newTemplates(source);
else
{
if (null != media)
- throw new TransformerException("No stylesheet found in: " +
inFileName
- + ", media=" + media);
+ throw new TransformerException("No stylesheet found in: "
+ + inFileName + ", media="
+ + media);
else
throw new TransformerException("No xml-stylesheet PI found in:
"
- + inFileName);
+ + inFileName);
}
}
if (null != stylesheet)
{
- Transformer transformer = stylesheet.newTransformer();
+ Transformer transformer = flavor.equals("th") ? null :
stylesheet.newTransformer();
// Override the output format?
if (null != outputType)
{
- transformer.setOutputProperty(OutputKeys.METHOD,
- outputType);
+ transformer.setOutputProperty(OutputKeys.METHOD, outputType);
}
if (transformer instanceof TransformerImpl)
@@ -621,84 +638,196 @@
transformer.setParameter((String) params.elementAt(i),
(String) params.elementAt(i + 1));
}
- if (uriResolver != null)
-
transformer.setURIResolver(uriResolver);
+ if (uriResolver != null)
+ transformer.setURIResolver(uriResolver);
+
if (null != inFileName)
{
- if(flavor.equals("d2d"))
+ if (flavor.equals("d2d"))
{
+
// Parse in the xml data into a DOM
- DocumentBuilderFactory dfactory =
DocumentBuilderFactory.newInstance();
+ DocumentBuilderFactory dfactory =
+ DocumentBuilderFactory.newInstance();
+
dfactory.setCoalescing(true);
dfactory.setNamespaceAware(true);
+
DocumentBuilder docBuilder = dfactory.newDocumentBuilder();
- if (entityResolver !=
null)
-
docBuilder.setEntityResolver(entityResolver);
+
+ if (entityResolver != null)
+ docBuilder.setEntityResolver(entityResolver);
+
Node xmlDoc = docBuilder.parse(new InputSource(inFileName));
Document doc = docBuilder.newDocument();
- org.w3c.dom.DocumentFragment outNode =
doc.createDocumentFragment();
- transformer.transform(new DOMSource(xmlDoc, inFileName),
+ org.w3c.dom.DocumentFragment outNode =
+ doc.createDocumentFragment();
+
+ transformer.transform(new DOMSource(xmlDoc, inFileName),
new DOMResult(outNode));
-
+
// Now serialize output to disk with identity transformer
Transformer serializer = stf.newTransformer();
- Properties serializationProps =
stylesheet.getOutputProperties();
+ Properties serializationProps =
+ stylesheet.getOutputProperties();
+
serializer.setOutputProperties(serializationProps);
- if (contentHandler !=
null)
- {
- SAXResult
result = new SAXResult(contentHandler);
-
serializer.transform(new DOMSource(outNode), result);
- }
- else
-
serializer.transform(new DOMSource(outNode), strResult);
- }
+
+ if (contentHandler != null)
+ {
+ SAXResult result = new SAXResult(contentHandler);
+
+ serializer.transform(new DOMSource(outNode), result);
+ }
+ else
+ serializer.transform(new DOMSource(outNode), strResult);
+ }
+ else if (flavor.equals("th"))
+ {
+ System.out.println("Testing the TransformerHandler...");
+
+ // ===============
+ XMLReader reader = null;
+
+ // Use JAXP1.1 ( if possible )
+ try
+ {
+ javax.xml.parsers.SAXParserFactory factory =
+ javax.xml.parsers.SAXParserFactory.newInstance();
+
+ factory.setNamespaceAware(true);
+
+ javax.xml.parsers.SAXParser jaxpParser =
+ factory.newSAXParser();
+
+ reader = jaxpParser.getXMLReader();
+ }
+ catch (javax.xml.parsers.ParserConfigurationException ex)
+ {
+ throw new org.xml.sax.SAXException(ex);
+ }
+ catch (javax.xml.parsers.FactoryConfigurationError ex1)
+ {
+ throw new org.xml.sax.SAXException(ex1.toString());
+ }
+ catch (NoSuchMethodError ex2){}
+ catch (AbstractMethodError ame){}
+
+ if (null == reader)
+ {
+ reader = XMLReaderFactory.createXMLReader();
+ }
+
+ TransformerHandler th = stf.newTransformerHandler(stylesheet);
+
+ reader.setContentHandler(th);
+ reader.setDTDHandler(th);
+
+ if(th instanceof org.xml.sax.ErrorHandler)
+ reader.setErrorHandler((org.xml.sax.ErrorHandler)th);
+
+ try
+ {
+ reader.setProperty(
+ "http://xml.org/sax/properties/lexical-handler", th);
+ }
+ catch (org.xml.sax.SAXNotRecognizedException e){}
+ catch (org.xml.sax.SAXNotSupportedException e){}
+ try
+ {
+
reader.setFeature("http://xml.org/sax/features/namespace-prefixes",
+ true);
+ } catch (org.xml.sax.SAXException se) {}
+
+ try
+ {
+
reader.setFeature("http://apache.org/xml/features/validation/dynamic",
+ true);
+ } catch (org.xml.sax.SAXException se) {}
+
+ th.setResult(strResult);
+
+ // System.out.println("sending parse events to the
handler...");
+ reader.parse(new InputSource(inFileName));
+
+// if (contentHandler != null)
+// {
+// SAXResult result = new SAXResult(contentHandler);
+//
+// transformer.transform(
+// new SAXSource(reader, new InputSource(inFileName)),
result);
+// }
+// else
+// {
+// transformer.transform(
+// new SAXSource(reader, new InputSource(inFileName)),
+// strResult);
+// }
+
+ // ===============
+ }
else
{
- if (entityResolver != null)
- {
- XMLReader reader=null;
- // Use JAXP1.1 ( if possible )
- try {
- javax.xml.parsers.SAXParserFactory factory=
-
javax.xml.parsers.SAXParserFactory.newInstance();
- factory.setNamespaceAware( true );
- javax.xml.parsers.SAXParser jaxpParser=
- factory.newSAXParser();
- reader=jaxpParser.getXMLReader();
-
- } catch( javax.xml.parsers.ParserConfigurationException
ex ) {
- throw new org.xml.sax.SAXException( ex );
- } catch( javax.xml.parsers.FactoryConfigurationError
ex1 ) {
- throw new org.xml.sax.SAXException( ex1.toString()
);
- } catch( NoSuchMethodError ex2 ) {
- }
- catch (AbstractMethodError ame){}
- if (null == reader) {
- reader = XMLReaderFactory.createXMLReader();
- }
-
- reader.setEntityResolver(entityResolver);
- if (contentHandler != null)
- {
- SAXResult result = new
SAXResult(contentHandler);
- transformer.transform(new SAXSource(reader, new
InputSource(inFileName)),
- result);
- }
- else
- {
- transformer.transform(new SAXSource(reader, new
InputSource(inFileName)),
- strResult);
- }
- }
- else if (contentHandler != null)
- {
- SAXResult result = new SAXResult(contentHandler);
- transformer.transform(new StreamSource(inFileName),
- result);
- }
- else
- transformer.transform(new StreamSource(inFileName),
strResult);
+ if (entityResolver != null)
+ {
+ XMLReader reader = null;
+
+ // Use JAXP1.1 ( if possible )
+ try
+ {
+ javax.xml.parsers.SAXParserFactory factory =
+ javax.xml.parsers.SAXParserFactory.newInstance();
+
+ factory.setNamespaceAware(true);
+
+ javax.xml.parsers.SAXParser jaxpParser =
+ factory.newSAXParser();
+
+ reader = jaxpParser.getXMLReader();
+ }
+ catch (javax.xml.parsers.ParserConfigurationException ex)
+ {
+ throw new org.xml.sax.SAXException(ex);
+ }
+ catch (javax.xml.parsers.FactoryConfigurationError ex1)
+ {
+ throw new org.xml.sax.SAXException(ex1.toString());
+ }
+ catch (NoSuchMethodError ex2){}
+ catch (AbstractMethodError ame){}
+
+ if (null == reader)
+ {
+ reader = XMLReaderFactory.createXMLReader();
+ }
+
+ reader.setEntityResolver(entityResolver);
+
+ if (contentHandler != null)
+ {
+ SAXResult result = new SAXResult(contentHandler);
+
+ transformer.transform(
+ new SAXSource(reader, new InputSource(inFileName)),
+ result);
+ }
+ else
+ {
+ transformer.transform(
+ new SAXSource(reader, new InputSource(inFileName)),
+ strResult);
+ }
+ }
+ else if (contentHandler != null)
+ {
+ SAXResult result = new SAXResult(contentHandler);
+
+ transformer.transform(new StreamSource(inFileName), result);
+ }
+ else
+ transformer.transform(new StreamSource(inFileName),
+ strResult);
}
}
else
@@ -740,7 +869,8 @@
doStackDumpOnError = true;
diagnosticsWriter.println();
- if (doStackDumpOnError)
+
+ if (doStackDumpOnError)
throwable.printStackTrace(dumpWriter);
else
diagnosticsWriter.println(
@@ -774,5 +904,4 @@
diagnosticsWriter.println(""); //"Xalan: done");
}
}
-
}
No revision
No revision
1.1.2.13 +12 -9
xml-xalan/java/src/org/apache/xml/dtm/Attic/DTMManagerDefault.java
Index: DTMManagerDefault.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xml/dtm/Attic/DTMManagerDefault.java,v
retrieving revision 1.1.2.12
retrieving revision 1.1.2.13
diff -u -r1.1.2.12 -r1.1.2.13
--- DTMManagerDefault.java 2001/05/16 05:33:20 1.1.2.12
+++ DTMManagerDefault.java 2001/05/16 15:14:24 1.1.2.13
@@ -216,8 +216,11 @@
{
// Create a CoroutineSAXParser that will run on the secondary
thread.
- coParser = new CoroutineSAXParser(coroutineManager, appCoroutine,
- reader);
+ if(null == reader)
+ coParser = new CoroutineSAXParser(coroutineManager,
appCoroutine);
+ else
+ coParser = new CoroutineSAXParser(coroutineManager,
appCoroutine,
+ reader);
}
// Have the DTM set itself up as the CoroutineSAXParser's listener.
@@ -226,6 +229,13 @@
// Get the parser's CoRoutine ID.
int parserCoroutine = coParser.getParserCoroutineID();
+ if (null == xmlSource)
+ {
+
+ // Then the user will construct it themselves.
+ return dtm;
+ }
+
// System.out.println("parserCoroutine (mgr): "+parserCoroutine);
// %TBD% It's probably OK to have these bypass the CoRoutine
stuff??
// Or maybe not?
@@ -236,13 +246,6 @@
reader.setDTDHandler(dtm);
reader.setErrorHandler(dtm);
- if (null == xmlSource)
- {
-
- // Then the user will construct it themselves.
- return dtm;
- }
-
try
{
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]