From d463e0c4ae2d4d65d0be89e2942341a8de06b056 Mon Sep 17 00:00:00 2001 From: Dmitry Markov Date: Tue, 21 May 2013 03:20:27 +0400 Subject: [PATCH] 7011777: JDK 6 parses html text with script tags within comments differently from previous releases Reviewed-by: alexsch --- .../javax/swing/text/html/parser/Parser.java | 12 +++- .../parser/Parser/7011777/bug7011777.java | 63 +++++++++++++++++++ 2 files changed, 73 insertions(+), 2 deletions(-) create mode 100644 jdk/test/javax/swing/text/html/parser/Parser/7011777/bug7011777.java diff --git a/jdk/src/share/classes/javax/swing/text/html/parser/Parser.java b/jdk/src/share/classes/javax/swing/text/html/parser/Parser.java index bd0cebc7373..d511109c10b 100644 --- a/jdk/src/share/classes/javax/swing/text/html/parser/Parser.java +++ b/jdk/src/share/classes/javax/swing/text/html/parser/Parser.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -1980,11 +1980,12 @@ class Parser implements DTDConstants { void parseScript() throws IOException { char[] charsToAdd = new char[SCRIPT_END_TAG.length]; + boolean insideComment = false; /* Here, ch should be the first character after \";\n" + + " var tag2 = \"
\";\n" + + " var tag3 = \"
\";\n" + + " var tag4 = \""; + public static void main(String[] args) throws Exception { + new ParserDelegator().parse(new StringReader(html), new MyParserCallback(), true); + } + + static class MyParserCallback extends HTMLEditorKit.ParserCallback { + + @Override + public void handleComment(char[] data, int pos) { + String commentWithoutTags = comment.substring("".length()); + String str = new String(data); + if (!commentWithoutTags.equals(str)) { + System.out.println("Sample string:\n" + commentWithoutTags); + System.out.println("Returned string:\n" + str); + throw new RuntimeException("Test Failed, sample and returned strings are mismatched!"); + } + } + } + +}