Author: johnh
Date: Tue Jan 12 02:59:33 2010
New Revision: 898161
URL: http://svn.apache.org/viewvc?rev=898161&view=rev
Log:
Don't crash in Neko-based parser when comment appears before <html>
Resolves SHINDIG-1255. Thanks to Jas Nagra for the find, and Nick Elsberry for
the fix.
Test added to the base suite verifying same.
Added:
incubator/shindig/trunk/java/gadgets/src/test/resources/org/apache/shindig/gadgets/parse/test-startswithcomment-expected.html
incubator/shindig/trunk/java/gadgets/src/test/resources/org/apache/shindig/gadgets/parse/test-startswithcomment.html
Modified:
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/parse/nekohtml/NekoSimplifiedHtmlParser.java
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/parse/AbstractParserAndSerializerTest.java
Modified:
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/parse/nekohtml/NekoSimplifiedHtmlParser.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/parse/nekohtml/NekoSimplifiedHtmlParser.java?rev=898161&r1=898160&r2=898161&view=diff
==============================================================================
---
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/parse/nekohtml/NekoSimplifiedHtmlParser.java
(original)
+++
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/parse/nekohtml/NekoSimplifiedHtmlParser.java
Tue Jan 12 02:59:33 2010
@@ -107,7 +107,7 @@
}
Document document = handler.getDocument();
- document.appendChild(handler.getFragment().getFirstChild());
+ document.appendChild(DomUtil.getFirstNamedChildNode(handler.getFragment(),
"html"));
fixNekoWeirdness(document);
return document;
}
Modified:
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/parse/AbstractParserAndSerializerTest.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/parse/AbstractParserAndSerializerTest.java?rev=898161&r1=898160&r2=898161&view=diff
==============================================================================
---
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/parse/AbstractParserAndSerializerTest.java
(original)
+++
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/parse/AbstractParserAndSerializerTest.java
Tue Jan 12 02:59:33 2010
@@ -53,6 +53,14 @@
assertNull(parser.parseDom(content).getDoctype());
parseAndCompareBalanced(content, expected, parser);
}
+
+ @Test
+ public void docStartsWithHeader() throws Exception {
+ String content =
loadFile("org/apache/shindig/gadgets/parse/test-startswithcomment.html");
+ String expected =
+
loadFile("org/apache/shindig/gadgets/parse/test-startswithcomment-expected.html");
+ parseAndCompareBalanced(content, expected, parser);
+ }
@Test
public void notADocument() throws Exception {
Added:
incubator/shindig/trunk/java/gadgets/src/test/resources/org/apache/shindig/gadgets/parse/test-startswithcomment-expected.html
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/resources/org/apache/shindig/gadgets/parse/test-startswithcomment-expected.html?rev=898161&view=auto
==============================================================================
---
incubator/shindig/trunk/java/gadgets/src/test/resources/org/apache/shindig/gadgets/parse/test-startswithcomment-expected.html
(added)
+++
incubator/shindig/trunk/java/gadgets/src/test/resources/org/apache/shindig/gadgets/parse/test-startswithcomment-expected.html
Tue Jan 12 02:59:33 2010
@@ -0,0 +1,7 @@
+<html>
+ <head><style>CSS</style></head>
+ <body>
+ <!-- This is a full doc with no doctype -->
+ <div id="mydiv">DIV</div>
+ </body>
+</html>
Added:
incubator/shindig/trunk/java/gadgets/src/test/resources/org/apache/shindig/gadgets/parse/test-startswithcomment.html
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/resources/org/apache/shindig/gadgets/parse/test-startswithcomment.html?rev=898161&view=auto
==============================================================================
---
incubator/shindig/trunk/java/gadgets/src/test/resources/org/apache/shindig/gadgets/parse/test-startswithcomment.html
(added)
+++
incubator/shindig/trunk/java/gadgets/src/test/resources/org/apache/shindig/gadgets/parse/test-startswithcomment.html
Tue Jan 12 02:59:33 2010
@@ -0,0 +1,8 @@
+<!-- This is a comment -->
+<html>
+ <head><style>CSS</style></head>
+ <body>
+ <!-- This is a full doc with no doctype -->
+ <div id="mydiv">DIV</div>
+ </body>
+</html>