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>


Reply via email to