[ http://issues.apache.org/jira/browse/NUTCH-17?page=comments#action_66226 ] Andrzej Bialecki commented on NUTCH-17: ----------------------------------------
The code has been changed to use DOMParser. However, using the newer neko-0.9.4.jar DOMFragmentParser I cannot reproduce this problem. >From the JavaDoc to DOMParser and DOMFragmentParser it seems that the latter >has a better chance to parse broken HTML, so we may want to revisit this issue. Neither parser is able to process HTML with multiple or incorrectly nested <html> <body> tags. > NekoHTML's DOMFragmentParser hangs on certain URLs > -------------------------------------------------- > > Key: NUTCH-17 > URL: http://issues.apache.org/jira/browse/NUTCH-17 > Project: Nutch > Type: Bug > Components: fetcher > Environment: Linux and Windows > Reporter: Kelvin Tan > > I've tracked down occasional fetcher hangs to NekoHTML's DOMFragmentParser > hanging certain HTML documents, for example, > http://www.inlandrevenue.gov.uk/charities/chapter_3.htm. > The thread dump on the hung parser is: > "CompilerThread0" daemon prio=1 tid=0x080c4c18 nid=0x47da waiting on > condition [0x00000000..0x8a3daf68] > "Signal Dispatcher" daemon prio=1 tid=0x080c3d60 nid=0x47d9 waiting on > condition [0x00000000..0x00000000] > "Finalizer" daemon prio=1 tid=0x080b8818 nid=0x47d8 in Object.wait() > [0x8a2a0000..0x8a2a0680] > at java.lang.Object.wait(Native Method) > - waiting on <0x4a60d058> (a java.lang.ref.ReferenceQueue$Lock) > at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116) > - locked <0x4a60d058> (a java.lang.ref.ReferenceQueue$Lock) > at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132) > at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159) > "Reference Handler" daemon prio=1 tid=0x080b7b50 nid=0x47d7 in Object.wait() > [0x8a21f000..0x8a21f800] > at java.lang.Object.wait(Native Method) > - waiting on <0x4a60d0d8> (a java.lang.ref.Reference$Lock) > at java.lang.Object.wait(Object.java:474) > at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116) > - locked <0x4a60d0d8> (a java.lang.ref.Reference$Lock) > "main" prio=1 tid=0x0805c170 nid=0x47d1 waiting on condition > [0xbfffc000..0xbfffcec8] > at > java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:99) > at > java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:393) > at java.lang.StringBuffer.append(StringBuffer.java:225) > - locked <0x45910118> (a java.lang.StringBuffer) > at org.apache.xerces.dom.CharacterDataImpl.appendData(Unknown Source) > at org.cyberneko.html.parsers.DOMFragmentParser.characters(Unknown > Source) > at org.cyberneko.html.filters.DefaultFilter.characters(Unknown Source) > at org.cyberneko.html.HTMLTagBalancer.characters(Unknown Source) > at > org.cyberneko.html.HTMLScanner$ContentScanner.scanCharacters(Unknown Source) > at org.cyberneko.html.HTMLScanner$ContentScanner.scan(Unknown Source) > at org.cyberneko.html.HTMLScanner.scanDocument(Unknown Source) > at org.cyberneko.html.HTMLConfiguration.parse(Unknown Source) > at org.cyberneko.html.HTMLConfiguration.parse(Unknown Source) > at org.cyberneko.html.parsers.DOMFragmentParser.parse(Unknown Source) > at net.nutch.parse.html.HtmlParser.getParse(HtmlParser.java:157) > at net.nutch.parse.ParserChecker.main(ParserChecker.java:74) > "VM Thread" prio=1 tid=0x080b4f30 nid=0x47d6 runnable > "VM Periodic Task Thread" prio=1 tid=0x080c75f8 nid=0x47dc waiting on > condition > Using the URL mentioned above, I was able to successfully parse the file > using a normal NekoHTML DocumentParser. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira
