From: Kristian R. <kri...@gm...> - 2013-01-28 13:05:15
|
My code re-uses the same DOMFragmentParser instance to parse multiple files in a row. This starts failing with r308, since it seems to not reset all the required state. The enclosed patch fixes it. Index: src/org/cyberneko/html/HTMLTagBalancer.java =================================================================== --- src/org/cyberneko/html/HTMLTagBalancer.java (date 1348829655000) +++ src/org/cyberneko/html/HTMLTagBalancer.java (revision ) @@ -340,6 +340,7 @@ fErrorReporter = (HTMLErrorReporter)manager.getProperty(ERROR_REPORTER); fragmentContextStack_ = (QName[]) manager.getProperty(FRAGMENT_CONTEXT_STACK); + fSeenFramesetElement = false; } // reset(XMLComponentManager) I can't even get the test suite to compile on trunk, but a test along these lines should do it: public void testInstanceReuse() throws IOException, SAXException { DOMFragmentParser parser = new DOMFragmentParser(); HTMLDocument document = new HTMLDocumentImpl(); DocumentFragment fragment = document.createDocumentFragment(); String s = "<html><body/></html>"; InputSource source = new InputSource(new StringReader(s)); parser.parse(source, fragment); DocumentFragment fragment2 = document.createDocumentFragment(); parser.parse(source, fragment2); } fragment2 is simply not correct. Since I can't run it, I can't really make any sensible assertions, so it's a bit of a guessing game. Kristian |