You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by jk...@apache.org on 2001/05/16 23:05:48 UTC
cvs commit: xml-xalan/java/src/org/apache/xml/dtm CoroutineSAXFilterTest.java
jkesselm 01/05/16 14:05:48
Modified: java/src/org/apache/xml/dtm Tag: DTM_EXP
CoroutineSAXFilterTest.java
Log:
Filter-mode doMore(false) now runs the event stream to
completion rather than throwing an exception. I do _not_
like this solution -- it wastes cycles -- but we've decided it
would be impolite to do the (almost standardized) trick of
using an exception to stop parsing early when we aren't
the ones who could catch it and thus know to discard it.
This is made considerably uglier by our current "do you want
another file" dialog. Cutting over to a "pure" CoroutineSAXFilter
architecture would clean up the code considerably.
Note too: It is now a Requirement that any event stream we're
filtering end with either endDocument() or fatalError(). SAX may
not guarantee that fatalError() will be invoked for exceptions
thrown by the ContentHandler. If it doesn't, it will the event
source's responsibility to catch those errors and send them to
us -- otherwise, coroutines will be left hanging.
Revision Changes Path
No revision
No revision
1.1.2.2 +4 -6 xml-xalan/java/src/org/apache/xml/dtm/Attic/CoroutineSAXFilterTest.java
Index: CoroutineSAXFilterTest.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xml/dtm/Attic/CoroutineSAXFilterTest.java,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -u -r1.1.2.1 -r1.1.2.2
--- CoroutineSAXFilterTest.java 2001/05/16 00:42:11 1.1.2.1
+++ CoroutineSAXFilterTest.java 2001/05/16 21:05:41 1.1.2.2
@@ -2,8 +2,6 @@
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
-import org.xml.sax.SAXNotRecognizedException;
-import org.xml.sax.SAXNotSupportedException;
import org.xml.sax.ext.LexicalHandler;
import org.xml.sax.ContentHandler;
import org.xml.sax.Locator;
@@ -56,7 +54,7 @@
// Note that this is a global -- sloppy connection to the thread.
filter=new CoroutineSAXParser(co, appCoroutineID);
- // Convenience function...
+ // Convenience function... Set handlers
filter.setXMLReader(theSAXParser);
// Use a serializer as our sample output
@@ -115,14 +113,14 @@
(result instanceof Boolean && ((Boolean)result)==Boolean.TRUE);
result = filter.doMore(more, appCoroutineID))
{
- System.out.println("\nSome parsing successful, trying more.\n");
-
// Special test: Terminate parsing early.
if(TEST_EARLY_STOP)
{
+ System.out.println("\nSome parsing successful, trying to stop.\n");
more=false;
}
-
+ else
+ System.out.println("\nSome parsing successful, trying more.\n");
}
if (result instanceof Boolean && ((Boolean)result)==Boolean.FALSE)
---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-cvs-help@xml.apache.org