sboag 01/06/26 22:52:17
Modified: java/src/org/apache/xalan/transformer
TransformerHandlerImpl.java
Log:
If the incremental flag is off, then don't use threads at all...
tweak stuff in clearCoRoutine so that we call waitTransformThread,
so we don't exit before the transform thread has finished.
Revision Changes Path
1.7 +34 -20
xml-xalan/java/src/org/apache/xalan/transformer/TransformerHandlerImpl.java
Index: TransformerHandlerImpl.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/transformer/TransformerHandlerImpl.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- TransformerHandlerImpl.java 2001/06/27 03:01:03 1.6
+++ TransformerHandlerImpl.java 2001/06/27 05:52:16 1.7
@@ -170,8 +170,22 @@
if(null != ex)
{
sp.getCoroutineManager().co_exit(sp.getParserCoroutineID());
+ sp.doMore(false, sax2dtm.getAppCoroutineID());
+
+ // Actually, I think we're always incremental here...
+ if(DTMManager.getIncremental())
+ {
+ try
+ {
+ m_transformer.waitTransformThread();
+ }
+ catch(SAXException se){}
+ }
+ }
+ else
+ {
+ sp.doMore(false, sax2dtm.getAppCoroutineID());
}
- sp.doMore(false, sax2dtm.getAppCoroutineID());
}
}
@@ -182,17 +196,6 @@
m_errorHandler = null;
m_lexicalHandler = null;
- if(null != ex)
- {
- Thread thread = m_transformer.getTransformThread();
- if(null != thread)
- {
- thread.interrupt();
- // Damn... we can't stop() it, since stop() is deprecated.
- }
- // I don't think we need to do anything else with the exception.
- }
-
if(DEBUG)
System.out.println("...exiting clearCoRoutine");
}
@@ -390,13 +393,16 @@
// Thread listener = new Thread(m_transformer);
//m_transformer.setTransformThread(listener);
- m_transformer.setSourceTreeDocForThread(m_dtm.getDocument());
-
- int cpriority = Thread.currentThread().getPriority();
-
- // runTransformThread is equivalent with the 2.0.1 code,
- // except that the Thread may come from a pool.
- m_transformer.runTransformThread( cpriority );
+ if(DTMManager.getIncremental())
+ {
+ m_transformer.setSourceTreeDocForThread(m_dtm.getDocument());
+
+ int cpriority = Thread.currentThread().getPriority();
+
+ // runTransformThread is equivalent with the 2.0.1 code,
+ // except that the Thread may come from a pool.
+ m_transformer.runTransformThread( cpriority );
+ }
//listener.setDaemon(false);
//listener.start();
@@ -427,7 +433,15 @@
m_contentHandler.endDocument();
}
- m_transformer.waitTransformThread();
+ if(DTMManager.getIncremental())
+ {
+ m_transformer.waitTransformThread();
+ }
+ else
+ {
+ m_transformer.setSourceTreeDocForThread(m_dtm.getDocument());
+ m_transformer.run();
+ }
/* Thread transformThread = m_transformer.getTransformThread();
if (null != transformThread)
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]