originally it work, but why now I get the error "org.xml.sax.SAXException: XML-22900: (Fatal Error) An internal error condition occurred."

545 views
Skip to first unread message

Bin Dong

unread,
Apr 21, 2014, 8:29:29 PM4/21/14
to dais...@googlegroups.com
I implement below method, originally it works, but now I always get  java.lang.IllegalStateException in the line cleaner.cleanAndParse(oldSource, oldHandler);

the version of daisydiff is 1.2

Anybody can help me? thanks a lot

private static String diff(InputStream html1, InputStream html2) {

SAXTransformerFactory tf = (SAXTransformerFactory) TransformerFactory.newInstance();

TransformerHandler result = tf.newTransformerHandler();
StringWriter resultWriter = new StringWriter();
result.setResult(new StreamResult(resultWriter));

Locale locale = Locale.getDefault();
String prefix = "diff";

HtmlCleaner cleaner = new HtmlCleaner();

InputSource oldSource = new InputSource(htmlOld);
InputSource newSource = new InputSource(htmlNew);

DomTreeBuilder oldHandler = new DomTreeBuilder();
cleaner.cleanAndParse(oldSource, oldHandler);
TextNodeComparator leftComparator = new TextNodeComparator(oldHandler, locale);

DomTreeBuilder newHandler = new DomTreeBuilder();
cleaner.cleanAndParse(newSource, newHandler);
TextNodeComparator rightComparator = new TextNodeComparator(newHandler, locale);

result.startDocument();
HtmlSaxDiffOutput output = new HtmlSaxDiffOutput(result, prefix);

HTMLDiffer differ = new HTMLDiffer(output);
differ.diff(leftComparator, rightComparator);
result.endDocument();
return resultWriter.toString();
}



Caused by: org.xml.sax.SAXException: XML-22900: (Fatal Error) An internal error condition occurred.
javax.xml.transform.TransformerException: XML-22900: (Fatal Error) An internal error condition occurred.
        at oracle.xml.jaxp.JXTransformerHandler.endDocument(JXTransformerHandler.java:156)
        at org.outerj.daisy.diff.helper.MergeCharacterEventsHandler.endDocument(Unknown Source)
        at org.outerj.daisy.diff.helper.NekoHtmlParser$RemoveNamespacesHandler.endDocument(Unknown Source)
        at org.apache.xerces.parsers.AbstractSAXParser.endDocument(Unknown Source)
        at org.cyberneko.html.filters.DefaultFilter.endDocument(DefaultFilter.java:217)
        at org.cyberneko.html.HTMLTagBalancer.endDocument(HTMLTagBalancer.java:446)
        at org.cyberneko.html.HTMLScanner$ContentScanner.scan(HTMLScanner.java:2060)
        at org.cyberneko.html.HTMLScanner.scanDocument(HTMLScanner.java:910)
        at org.cyberneko.html.HTMLConfiguration.parse(HTMLConfiguration.java:499)
        at org.cyberneko.html.HTMLConfiguration.parse(HTMLConfiguration.java:452)
        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
        at org.outerj.daisy.diff.helper.NekoHtmlParser.parse(Unknown Source)
        at org.outerj.daisy.diff.HtmlCleaner.cleanAndParse(Unknown Source)
        at com.agile.pc.cmserver.base.BaseTableDAO.diff(BaseTableDAO.java:3265)
        ... 49 more
Caused by: javax.xml.transform.TransformerException: XML-22900: (Fatal Error) An internal error condition occurred.
        at oracle.xml.jaxp.JXTransformer.reportException(JXTransformer.java:915)
        at oracle.xml.jaxp.JXTransformer.transform(JXTransformer.java:502)
        at oracle.xml.jaxp.JXTransformerHandler.endDocument(JXTransformerHandler.java:152)
        ... 63 more
Caused by: java.lang.IllegalStateException
        at org.outerj.daisy.diff.html.dom.DomTreeBuilder.startElement(Unknown Source)
        at oracle.xml.xslt.XSLEventHandler.reportStartElement(XSLEventHandler.java:271)
        at oracle.xml.xslt.XSLEventHandler.startElement(XSLEventHandler.java:389)
        at oracle.xml.xslt.XSLResultElement.processAction(XSLResultElement.java:156)
        at oracle.xml.xslt.XSLNode.processChildren(XSLNode.java:497)
        at oracle.xml.xslt.XSLTemplate.processAction(XSLTemplate.java:205)
        at oracle.xml.xslt.XSLStylesheet.execute(XSLStylesheet.java:585)
        at oracle.xml.xslt.XSLStylesheet.execute(XSLStylesheet.java:551)
        at oracle.xml.xslt.XSLProcessor.processXSL(XSLProcessor.java:345)
        at oracle.xml.jaxp.JXTransformer.transform(JXTransformer.java:485)
        ... 64 more

Reply all
Reply to author
Forward
0 new messages