8048806: Javadoc errors out on some valid HTML tags

Reviewed-by: bpatel
This commit is contained in:
Jonathan Gibbons 2014-07-11 18:51:32 -07:00
parent 0dd95d497b
commit 84e4fca0c8
2 changed files with 72 additions and 6 deletions

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2010, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -30,12 +30,12 @@ import java.util.Collections;
import java.util.EnumMap; import java.util.EnumMap;
import java.util.EnumSet; import java.util.EnumSet;
import java.util.HashMap; import java.util.HashMap;
import java.util.Locale;
import java.util.Map; import java.util.Map;
import javax.lang.model.element.Name; import javax.lang.model.element.Name;
import static com.sun.tools.doclint.HtmlTag.Attr.*; import static com.sun.tools.doclint.HtmlTag.Attr.*;
import com.sun.tools.javac.util.StringUtils; import com.sun.tools.javac.util.StringUtils;
/** /**
@ -58,6 +58,15 @@ public enum HtmlTag {
A(BlockType.INLINE, EndKind.REQUIRED, A(BlockType.INLINE, EndKind.REQUIRED,
attrs(AttrKind.OK, HREF, TARGET, NAME)), attrs(AttrKind.OK, HREF, TARGET, NAME)),
ABBR(BlockType.INLINE, EndKind.REQUIRED,
EnumSet.of(Flag.EXPECT_CONTENT, Flag.NO_NEST)),
ACRONYM(BlockType.INLINE, EndKind.REQUIRED,
EnumSet.of(Flag.EXPECT_CONTENT, Flag.NO_NEST)),
ADDRESS(BlockType.INLINE, EndKind.REQUIRED,
EnumSet.of(Flag.EXPECT_CONTENT, Flag.NO_NEST)),
B(BlockType.INLINE, EndKind.REQUIRED, B(BlockType.INLINE, EndKind.REQUIRED,
EnumSet.of(Flag.EXPECT_CONTENT, Flag.NO_NEST)), EnumSet.of(Flag.EXPECT_CONTENT, Flag.NO_NEST)),
@ -87,6 +96,10 @@ public enum HtmlTag {
DD(BlockType.LIST_ITEM, EndKind.OPTIONAL, DD(BlockType.LIST_ITEM, EndKind.OPTIONAL,
EnumSet.of(Flag.ACCEPTS_BLOCK, Flag.ACCEPTS_INLINE, Flag.EXPECT_CONTENT)), EnumSet.of(Flag.ACCEPTS_BLOCK, Flag.ACCEPTS_INLINE, Flag.EXPECT_CONTENT)),
DEL(BlockType.INLINE, EndKind.REQUIRED,
EnumSet.of(Flag.EXPECT_CONTENT, Flag.NO_NEST),
attrs(AttrKind.OK, Attr.CITE, Attr.DATETIME)),
DFN(BlockType.INLINE, EndKind.REQUIRED, DFN(BlockType.INLINE, EndKind.REQUIRED,
EnumSet.of(Flag.EXPECT_CONTENT, Flag.NO_NEST)), EnumSet.of(Flag.EXPECT_CONTENT, Flag.NO_NEST)),
@ -138,6 +151,13 @@ public enum HtmlTag {
attrs(AttrKind.OBSOLETE, NAME), attrs(AttrKind.OBSOLETE, NAME),
attrs(AttrKind.USE_CSS, ALIGN, HSPACE, VSPACE, BORDER)), attrs(AttrKind.USE_CSS, ALIGN, HSPACE, VSPACE, BORDER)),
INS(BlockType.INLINE, EndKind.REQUIRED,
EnumSet.of(Flag.EXPECT_CONTENT, Flag.NO_NEST),
attrs(AttrKind.OK, Attr.CITE, Attr.DATETIME)),
KBD(BlockType.INLINE, EndKind.REQUIRED,
EnumSet.of(Flag.EXPECT_CONTENT, Flag.NO_NEST)),
LI(BlockType.LIST_ITEM, EndKind.OPTIONAL, LI(BlockType.LIST_ITEM, EndKind.OPTIONAL,
EnumSet.of(Flag.ACCEPTS_BLOCK, Flag.ACCEPTS_INLINE), EnumSet.of(Flag.ACCEPTS_BLOCK, Flag.ACCEPTS_INLINE),
attrs(AttrKind.OK, VALUE)), attrs(AttrKind.OK, VALUE)),
@ -183,6 +203,15 @@ public enum HtmlTag {
} }
}, },
Q(BlockType.INLINE, EndKind.REQUIRED,
EnumSet.of(Flag.EXPECT_CONTENT, Flag.NO_NEST)),
S(BlockType.INLINE, EndKind.REQUIRED,
EnumSet.of(Flag.EXPECT_CONTENT, Flag.NO_NEST)),
SAMP(BlockType.INLINE, EndKind.REQUIRED,
EnumSet.of(Flag.EXPECT_CONTENT, Flag.NO_NEST)),
SCRIPT(BlockType.OTHER, EndKind.REQUIRED), SCRIPT(BlockType.OTHER, EndKind.REQUIRED),
SMALL(BlockType.INLINE, EndKind.REQUIRED, SMALL(BlockType.INLINE, EndKind.REQUIRED,
@ -191,6 +220,9 @@ public enum HtmlTag {
SPAN(BlockType.INLINE, EndKind.REQUIRED, SPAN(BlockType.INLINE, EndKind.REQUIRED,
EnumSet.of(Flag.EXPECT_CONTENT)), EnumSet.of(Flag.EXPECT_CONTENT)),
STRIKE(BlockType.INLINE, EndKind.REQUIRED,
EnumSet.of(Flag.EXPECT_CONTENT)),
STRONG(BlockType.INLINE, EndKind.REQUIRED, STRONG(BlockType.INLINE, EndKind.REQUIRED,
EnumSet.of(Flag.EXPECT_CONTENT)), EnumSet.of(Flag.EXPECT_CONTENT)),
@ -229,7 +261,7 @@ public enum HtmlTag {
TD(BlockType.TABLE_ITEM, EndKind.OPTIONAL, TD(BlockType.TABLE_ITEM, EndKind.OPTIONAL,
EnumSet.of(Flag.ACCEPTS_BLOCK, Flag.ACCEPTS_INLINE), EnumSet.of(Flag.ACCEPTS_BLOCK, Flag.ACCEPTS_INLINE),
attrs(AttrKind.OK, COLSPAN, ROWSPAN, HEADERS, SCOPE, ABBR, AXIS, attrs(AttrKind.OK, COLSPAN, ROWSPAN, HEADERS, SCOPE, Attr.ABBR, AXIS,
ALIGN, CHAR, CHAROFF, VALIGN), ALIGN, CHAR, CHAROFF, VALIGN),
attrs(AttrKind.USE_CSS, WIDTH, BGCOLOR, HEIGHT, NOWRAP)), attrs(AttrKind.USE_CSS, WIDTH, BGCOLOR, HEIGHT, NOWRAP)),
@ -243,7 +275,7 @@ public enum HtmlTag {
TH(BlockType.TABLE_ITEM, EndKind.OPTIONAL, TH(BlockType.TABLE_ITEM, EndKind.OPTIONAL,
EnumSet.of(Flag.ACCEPTS_BLOCK, Flag.ACCEPTS_INLINE), EnumSet.of(Flag.ACCEPTS_BLOCK, Flag.ACCEPTS_INLINE),
attrs(AttrKind.OK, COLSPAN, ROWSPAN, HEADERS, SCOPE, ABBR, AXIS, attrs(AttrKind.OK, COLSPAN, ROWSPAN, HEADERS, SCOPE, Attr.ABBR, AXIS,
ALIGN, CHAR, CHAROFF, VALIGN), ALIGN, CHAR, CHAROFF, VALIGN),
attrs(AttrKind.USE_CSS, WIDTH, BGCOLOR, HEIGHT, NOWRAP)), attrs(AttrKind.USE_CSS, WIDTH, BGCOLOR, HEIGHT, NOWRAP)),
@ -321,11 +353,13 @@ public enum HtmlTag {
CELLPADDING, CELLPADDING,
CHAR, CHAR,
CHAROFF, CHAROFF,
CITE,
CLEAR, CLEAR,
CLASS, CLASS,
COLOR, COLOR,
COLSPAN, COLSPAN,
COMPACT, COMPACT,
DATETIME,
FACE, FACE,
FRAME, FRAME,
HEADERS, HEADERS,

View file

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -23,7 +23,7 @@
/* /*
* @test * @test
* @bug 8004832 * @bug 8004832 8048806
* @summary Add new doclint package * @summary Add new doclint package
* @build DocLintTester * @build DocLintTester
* @run main DocLintTester ValidTest.java * @run main DocLintTester ValidTest.java
@ -35,6 +35,38 @@ class ValidTest {
*/ */
void entities() { } void entities() { }
/**
* <abbr>abbreviation<abbr>
* <acronym>ABC</acronym>
* <cite>citation</cite>
* <code>code</code>
* <dfn>defining instance</dfn>
* <em>emphasis</em>
* <kbd>keyboard<kbd>
* <samp>sample</samp>
* <var>variable</var>
* <strong>strong</strong>
*/
void phraseElements() { }
/**
* <address>1 Main St., USA</address>
*/
void address() { }
/**
* <del>deleted</del>
* <ins>inserted</del>
*/
void docChanges() {}
/**
* <blockquote>
* A fine thing.
* </blockquote>
* <q>A fine thing.</q>
*/
/** /**
* <h1> ... </h1> * <h1> ... </h1>
* <h2> ... </h2> * <h2> ... </h2>