/* * Copyright (c) 2017, 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 * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. */ import javax.swing.*; import javax.swing.text.MutableAttributeSet; import javax.swing.text.html.HTML; import javax.swing.text.html.HTMLDocument; import javax.swing.text.html.HTMLEditorKit; import java.io.*; import java.lang.reflect.InvocationTargetException; /* @test @bug 8177450 @summary javax.swing.text.html.parser.Parser parseScript ignores a character after commend end @author Mikhail Cherkasov @run main bug8177450 */ public class bug8177450 { private static volatile boolean failed = false; public static void main(String[] args) throws IOException, InvocationTargetException, InterruptedException { SwingUtilities.invokeAndWait(() -> { MyParser cb = new MyParser(); HTMLEditorKit htmlKit = new HTMLEditorKit(); HTMLDocument htmlDoc = (HTMLDocument) htmlKit.createDefaultDocument(); FileReader reader = null; try { reader = new FileReader(getDirURL() + "test.html"); htmlDoc.getParser().parse(reader, cb, true); if(failed) { throw new RuntimeException("Test failed"); } } catch (IOException e) { throw new RuntimeException(e); } }); } private static String getDirURL() { return new File(System.getProperty("test.src", ".")).getAbsolutePath() + File.separator; } private static class MyParser extends HTMLEditorKit.ParserCallback { @Override public void handleError(String errorMsg, int pos) { failed = errorMsg.contains("eof.script"); } } }