diff options
Diffstat (limited to 'java/openjdk6/files/icedtea/openjdk/6786690-wcag_dl.patch')
-rw-r--r-- | java/openjdk6/files/icedtea/openjdk/6786690-wcag_dl.patch | 3230 |
1 files changed, 3230 insertions, 0 deletions
diff --git a/java/openjdk6/files/icedtea/openjdk/6786690-wcag_dl.patch b/java/openjdk6/files/icedtea/openjdk/6786690-wcag_dl.patch new file mode 100644 index 000000000000..1e85fea140d3 --- /dev/null +++ b/java/openjdk6/files/icedtea/openjdk/6786690-wcag_dl.patch @@ -0,0 +1,3230 @@ +# HG changeset patch +# User andrew +# Date 1371571959 18000 +# Node ID 9cad0410f52a47fdd3b294a10f076e7456a47e9a +# Parent 9b884c583c41a545352b035d11d1ccacb96fbb2f +6786690: Javadoc HTML WCAG 2.0 accessibility issues in standard doclet - DL tag and nesting issue +Reviewed-by: jjg + +diff --git a/src/share/classes/com/sun/tools/doclets/formats/html/AbstractIndexWriter.java b/src/share/classes/com/sun/tools/doclets/formats/html/AbstractIndexWriter.java +--- langtools/src/share/classes/com/sun/tools/doclets/formats/html/AbstractIndexWriter.java ++++ langtools/src/share/classes/com/sun/tools/doclets/formats/html/AbstractIndexWriter.java +@@ -25,11 +25,11 @@ + + package com.sun.tools.doclets.formats.html; + +-import com.sun.tools.doclets.internal.toolkit.util.*; ++import java.io.*; ++import java.util.*; + + import com.sun.javadoc.*; +-import java.io.*; +-import java.util.*; ++import com.sun.tools.doclets.internal.toolkit.util.*; + + /** + * Generate Index for all the Member Names with Indexing in +@@ -100,18 +100,22 @@ + h2(); + strong(unicode.toString()); + h2End(); +- dl(); +- for (int i = 0; i < memberlist.size(); i++) { +- Doc element = (Doc)memberlist.get(i); +- if (element instanceof MemberDoc) { +- printDescription((MemberDoc)element); +- } else if (element instanceof ClassDoc) { +- printDescription((ClassDoc)element); +- } else if (element instanceof PackageDoc) { +- printDescription((PackageDoc)element); ++ int memberListSize = memberlist.size(); ++ // Display the list only if there are elements to be displayed. ++ if (memberListSize > 0) { ++ dl(); ++ for (int i = 0; i < memberListSize; i++) { ++ Doc element = memberlist.get(i); ++ if (element instanceof MemberDoc) { ++ printDescription((MemberDoc)element); ++ } else if (element instanceof ClassDoc) { ++ printDescription((ClassDoc)element); ++ } else if (element instanceof PackageDoc) { ++ printDescription((PackageDoc)element); ++ } + } ++ dlEnd(); + } +- dlEnd(); + hr(); + } + +@@ -126,8 +130,10 @@ + printPackageLink(pkg, Util.getPackageName(pkg), true); + print(" - "); + print(configuration.getText("doclet.package") + " " + pkg.name()); ++ dtEnd(); + dd(); + printSummaryComment(pkg); ++ ddEnd(); + } + + /** +@@ -140,8 +146,10 @@ + printLink(new LinkInfoImpl(LinkInfoImpl.CONTEXT_INDEX, cd, true)); + print(" - "); + printClassInfo(cd); ++ dtEnd(); + dd(); + printComment(cd); ++ ddEnd(); + } + + /** +@@ -178,8 +186,10 @@ + println(" - "); + printMemberDesc(member); + println(); ++ dtEnd(); + dd(); + printComment(member); ++ ddEnd(); + println(); + } + +diff --git a/src/share/classes/com/sun/tools/doclets/formats/html/AbstractMemberWriter.java b/src/share/classes/com/sun/tools/doclets/formats/html/AbstractMemberWriter.java +--- langtools/src/share/classes/com/sun/tools/doclets/formats/html/AbstractMemberWriter.java ++++ langtools/src/share/classes/com/sun/tools/doclets/formats/html/AbstractMemberWriter.java +@@ -25,19 +25,20 @@ + + package com.sun.tools.doclets.formats.html; + ++import java.lang.reflect.Modifier; ++import java.util.*; ++ ++import com.sun.javadoc.*; + import com.sun.tools.doclets.internal.toolkit.util.*; + import com.sun.tools.doclets.internal.toolkit.taglets.*; + +-import com.sun.javadoc.*; +-import java.util.*; +-import java.lang.reflect.Modifier; +- + /** + * The base class for member writers. + * + * @author Robert Field + * @author Atul M Dambalkar + * @author Jamie Ho (Re-write) ++ * @author Bhavesh Patel (Modified) + */ + public abstract class AbstractMemberWriter { + +@@ -232,10 +233,26 @@ + } + } + ++ /** ++ * Print the deprecated output for the given member. ++ * ++ * @param member the member being documented. ++ */ ++ protected void printDeprecated(ProgramElementDoc member) { ++ String output = (new DeprecatedTaglet()).getTagletOutput(member, ++ writer.getTagletWriterInstance(false)).toString().trim(); ++ if (!output.isEmpty()) { ++ writer.printMemberDetailsListStartTag(); ++ writer.print(output); ++ } ++ } ++ + protected void printComment(ProgramElementDoc member) { + if (member.inlineTags().length > 0) { ++ writer.printMemberDetailsListStartTag(); + writer.dd(); + writer.printInlineComment(member); ++ writer.ddEnd(); + } + } + +@@ -267,6 +284,14 @@ + } + + /** ++ * Write the member footer. ++ */ ++ protected void printMemberFooter() { ++ writer.printMemberDetailsListEndTag(); ++ assert !writer.getMemberDetailsListPrinted(); ++ } ++ ++ /** + * Forward to containing writer + */ + public void printSummaryHeader(ClassDoc cd) { +diff --git a/src/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeOptionalMemberWriterImpl.java b/src/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeOptionalMemberWriterImpl.java +--- langtools/src/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeOptionalMemberWriterImpl.java ++++ langtools/src/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeOptionalMemberWriterImpl.java +@@ -25,10 +25,10 @@ + + package com.sun.tools.doclets.formats.html; + ++import java.io.*; ++ ++import com.sun.javadoc.*; + import com.sun.tools.doclets.internal.toolkit.*; +-import com.sun.javadoc.*; +- +-import java.io.*; + + /** + * Writes annotation type optional member documentation in HTML format. +@@ -63,14 +63,20 @@ + * {@inheritDoc} + */ + public void writeDefaultValueInfo(MemberDoc member) { +- writer.dl(); +- writer.dt(); +- writer.strong(ConfigurationImpl.getInstance(). +- getText("doclet.Default")); +- writer.dd(); +- writer.print(((AnnotationTypeElementDoc) member).defaultValue()); +- writer.ddEnd(); +- writer.dlEnd(); ++ if (((AnnotationTypeElementDoc) member).defaultValue() != null) { ++ writer.printMemberDetailsListStartTag(); ++ writer.dd(); ++ writer.dl(); ++ writer.dt(); ++ writer.strong(ConfigurationImpl.getInstance(). ++ getText("doclet.Default")); ++ writer.dtEnd(); ++ writer.dd(); ++ writer.print(((AnnotationTypeElementDoc) member).defaultValue()); ++ writer.ddEnd(); ++ writer.dlEnd(); ++ writer.ddEnd(); ++ } + } + + /** +diff --git a/src/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeRequiredMemberWriterImpl.java b/src/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeRequiredMemberWriterImpl.java +--- langtools/src/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeRequiredMemberWriterImpl.java ++++ langtools/src/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeRequiredMemberWriterImpl.java +@@ -25,11 +25,10 @@ + + package com.sun.tools.doclets.formats.html; + ++import java.io.*; ++ ++import com.sun.javadoc.*; + import com.sun.tools.doclets.internal.toolkit.*; +-import com.sun.tools.doclets.internal.toolkit.taglets.*; +-import com.sun.javadoc.*; +- +-import java.io.*; + + /** + * Writes annotation type required member documentation in HTML format. +@@ -134,17 +133,14 @@ + strong(member.name()); + } + writer.preEnd(); +- writer.dl(); ++ assert !writer.getMemberDetailsListPrinted(); + } + + /** + * {@inheritDoc} + */ + public void writeComments(MemberDoc member) { +- if (member.inlineTags().length > 0) { +- writer.dd(); +- writer.printInlineComment(member); +- } ++ printComment(member); + } + + /** +@@ -160,7 +156,7 @@ + * Write the annotation type member footer. + */ + public void writeMemberFooter() { +- writer.dlEnd(); ++ printMemberFooter(); + } + + /** +@@ -267,9 +263,7 @@ + * {@inheritDoc} + */ + public void writeDeprecated(MemberDoc member) { +- print(((TagletOutputImpl) +- (new DeprecatedTaglet()).getTagletOutput(member, +- writer.getTagletWriterInstance(false))).toString()); ++ printDeprecated(member); + } + + private Type getType(MemberDoc member) { +diff --git a/src/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeWriterImpl.java b/src/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeWriterImpl.java +--- langtools/src/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeWriterImpl.java ++++ langtools/src/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeWriterImpl.java +@@ -25,10 +25,10 @@ + + package com.sun.tools.doclets.formats.html; + ++import com.sun.javadoc.*; + import com.sun.tools.doclets.internal.toolkit.*; + import com.sun.tools.doclets.internal.toolkit.util.*; + import com.sun.tools.doclets.internal.toolkit.builders.*; +-import com.sun.javadoc.*; + + /** + * Generate the Class Information Page. +@@ -165,8 +165,6 @@ + * {@inheritDoc} + */ + public void writeAnnotationTypeSignature(String modifiers) { +- dl(); +- dt(); + preNoNewLine(); + writeAnnotationInfo(annotationType); + print(modifiers); +@@ -178,7 +176,6 @@ + } else { + strong(name); + } +- dlEnd(); + preEnd(); + p(); + } +@@ -334,6 +331,7 @@ + } else { + strongText("doclet.Enclosing_Class"); + } ++ dtEnd(); + dd(); + printLink(new LinkInfoImpl(LinkInfoImpl.CONTEXT_CLASS, outerClass, + false)); +diff --git a/src/share/classes/com/sun/tools/doclets/formats/html/ClassWriterImpl.java b/src/share/classes/com/sun/tools/doclets/formats/html/ClassWriterImpl.java +--- langtools/src/share/classes/com/sun/tools/doclets/formats/html/ClassWriterImpl.java ++++ langtools/src/share/classes/com/sun/tools/doclets/formats/html/ClassWriterImpl.java +@@ -25,12 +25,12 @@ + + package com.sun.tools.doclets.formats.html; + ++import java.util.*; ++ ++import com.sun.javadoc.*; + import com.sun.tools.doclets.internal.toolkit.*; + import com.sun.tools.doclets.internal.toolkit.util.*; + import com.sun.tools.doclets.internal.toolkit.builders.*; +-import com.sun.javadoc.*; +- +-import java.util.*; + import com.sun.tools.doclets.internal.toolkit.taglets.*; + + /** +@@ -171,8 +171,6 @@ + */ + public void writeClassSignature(String modifiers) { + boolean isInterface = classDoc.isInterface(); +- dl(); +- dt(); + preNoNewLine(); + writeAnnotationInfo(classDoc); + print(modifiers); +@@ -191,7 +189,7 @@ + Type superclass = Util.getFirstVisibleSuperClass(classDoc, + configuration()); + if (superclass != null) { +- dt(); ++ println(); + print("extends "); + printLink(new LinkInfoImpl( + LinkInfoImpl.CONTEXT_CLASS_SIGNATURE_PARENT_NAME, +@@ -208,7 +206,7 @@ + continue; + } + if (counter == 0) { +- dt(); ++ println(); + print(isInterface? "extends " : "implements "); + } else { + print(", "); +@@ -219,7 +217,6 @@ + counter++; + } + } +- dlEnd(); + preEnd(); + p(); + } +@@ -342,6 +339,7 @@ + TagletOutput output = (new ParamTaglet()).getTagletOutput(classDoc, + getTagletWriterInstance(false)); + print(output.toString()); ++ dtEnd(); + dlEnd(); + } + } +@@ -360,8 +358,10 @@ + dl(); + dt(); + strongText("doclet.Subclasses"); ++ dtEnd(); + writeClassLinks(LinkInfoImpl.CONTEXT_SUBCLASSES, + subclasses); ++ dlEnd(); + } + } + } +@@ -376,8 +376,10 @@ + dl(); + dt(); + strongText("doclet.Subinterfaces"); ++ dtEnd(); + writeClassLinks(LinkInfoImpl.CONTEXT_SUBINTERFACES, + subInterfaces); ++ dlEnd(); + } + } + } +@@ -398,8 +400,10 @@ + dl(); + dt(); + strongText("doclet.Implementing_Classes"); ++ dtEnd(); + writeClassLinks(LinkInfoImpl.CONTEXT_IMPLEMENTED_CLASSES, + implcl); ++ dlEnd(); + } + } + +@@ -414,8 +418,10 @@ + dl(); + dt(); + strongText("doclet.All_Implemented_Interfaces"); ++ dtEnd(); + writeClassLinks(LinkInfoImpl.CONTEXT_IMPLEMENTED_INTERFACES, + interfaceArray); ++ dlEnd(); + } + } + +@@ -430,8 +436,10 @@ + dl(); + dt(); + strongText("doclet.All_Superinterfaces"); ++ dtEnd(); + writeClassLinks(LinkInfoImpl.CONTEXT_SUPER_INTERFACES, + interfaceArray); ++ dlEnd(); + } + } + +@@ -455,7 +463,6 @@ + } + } + ddEnd(); +- dlEnd(); + } + + protected void navLinkTree() { +@@ -574,6 +581,7 @@ + } else { + strongText("doclet.Enclosing_Class"); + } ++ dtEnd(); + dd(); + printLink(new LinkInfoImpl(LinkInfoImpl.CONTEXT_CLASS, outerClass, + false)); +diff --git a/src/share/classes/com/sun/tools/doclets/formats/html/ConstructorWriterImpl.java b/src/share/classes/com/sun/tools/doclets/formats/html/ConstructorWriterImpl.java +--- langtools/src/share/classes/com/sun/tools/doclets/formats/html/ConstructorWriterImpl.java ++++ langtools/src/share/classes/com/sun/tools/doclets/formats/html/ConstructorWriterImpl.java +@@ -25,12 +25,12 @@ + + package com.sun.tools.doclets.formats.html; + ++import java.io.*; ++import java.util.*; ++ ++import com.sun.javadoc.*; + import com.sun.tools.doclets.internal.toolkit.*; + import com.sun.tools.doclets.internal.toolkit.util.*; +-import com.sun.tools.doclets.internal.toolkit.taglets.*; +-import com.sun.javadoc.*; +-import java.util.*; +-import java.io.*; + + /** + * Writes constructor documentation. +@@ -149,7 +149,7 @@ + writeParameters(constructor); + writeExceptions(constructor); + writer.preEnd(); +- writer.dl(); ++ assert !writer.getMemberDetailsListPrinted(); + } + + /** +@@ -158,12 +158,7 @@ + * @param constructor the constructor being documented. + */ + public void writeDeprecated(ConstructorDoc constructor) { +- String output = ((TagletOutputImpl) +- (new DeprecatedTaglet()).getTagletOutput(constructor, +- writer.getTagletWriterInstance(false))).toString(); +- if (output != null && output.trim().length() > 0) { +- writer.print(output); +- } ++ printDeprecated(constructor); + } + + /** +@@ -172,10 +167,7 @@ + * @param constructor the constructor being documented. + */ + public void writeComments(ConstructorDoc constructor) { +- if (constructor.inlineTags().length > 0) { +- writer.dd(); +- writer.printInlineComment(constructor); +- } ++ printComment(constructor); + } + + /** +@@ -191,7 +183,7 @@ + * Write the constructor footer. + */ + public void writeConstructorFooter() { +- writer.dlEnd(); ++ printMemberFooter(); + } + + /** +diff --git a/src/share/classes/com/sun/tools/doclets/formats/html/EnumConstantWriterImpl.java b/src/share/classes/com/sun/tools/doclets/formats/html/EnumConstantWriterImpl.java +--- langtools/src/share/classes/com/sun/tools/doclets/formats/html/EnumConstantWriterImpl.java ++++ langtools/src/share/classes/com/sun/tools/doclets/formats/html/EnumConstantWriterImpl.java +@@ -25,12 +25,11 @@ + + package com.sun.tools.doclets.formats.html; + ++import java.io.*; ++ ++import com.sun.javadoc.*; + import com.sun.tools.doclets.internal.toolkit.*; +-import com.sun.tools.doclets.internal.toolkit.taglets.*; + import com.sun.tools.doclets.internal.toolkit.util.*; +-import com.sun.javadoc.*; +- +-import java.io.*; + + /** + * Writes enum constant documentation in HTML format. +@@ -146,26 +145,21 @@ + strong(enumConstant.name()); + } + writer.preEnd(); +- writer.dl(); ++ assert !writer.getMemberDetailsListPrinted(); + } + + /** + * {@inheritDoc} + */ + public void writeDeprecated(FieldDoc enumConstant) { +- print(((TagletOutputImpl) +- (new DeprecatedTaglet()).getTagletOutput(enumConstant, +- writer.getTagletWriterInstance(false))).toString()); ++ printDeprecated(enumConstant); + } + + /** + * {@inheritDoc} + */ + public void writeComments(FieldDoc enumConstant) { +- if (enumConstant.inlineTags().length > 0) { +- writer.dd(); +- writer.printInlineComment(enumConstant); +- } ++ printComment(enumConstant); + } + + /** +@@ -179,7 +173,7 @@ + * {@inheritDoc} + */ + public void writeEnumConstantFooter() { +- writer.dlEnd(); ++ printMemberFooter(); + } + + /** +diff --git a/src/share/classes/com/sun/tools/doclets/formats/html/FieldWriterImpl.java b/src/share/classes/com/sun/tools/doclets/formats/html/FieldWriterImpl.java +--- langtools/src/share/classes/com/sun/tools/doclets/formats/html/FieldWriterImpl.java ++++ langtools/src/share/classes/com/sun/tools/doclets/formats/html/FieldWriterImpl.java +@@ -25,12 +25,11 @@ + + package com.sun.tools.doclets.formats.html; + ++import java.io.*; ++ ++import com.sun.javadoc.*; + import com.sun.tools.doclets.internal.toolkit.*; +-import com.sun.tools.doclets.internal.toolkit.taglets.*; + import com.sun.tools.doclets.internal.toolkit.util.*; +-import com.sun.javadoc.*; +- +-import java.io.*; + + /** + * Writes field documentation in HTML format. +@@ -156,7 +155,7 @@ + strong(field.name()); + } + writer.preEnd(); +- writer.dl(); ++ assert !writer.getMemberDetailsListPrinted(); + } + + /** +@@ -165,9 +164,7 @@ + * @param field the field being documented. + */ + public void writeDeprecated(FieldDoc field) { +- print(((TagletOutputImpl) +- (new DeprecatedTaglet()).getTagletOutput(field, +- writer.getTagletWriterInstance(false))).toString()); ++ printDeprecated(field); + } + + /** +@@ -178,10 +175,12 @@ + public void writeComments(FieldDoc field) { + ClassDoc holder = field.containingClass(); + if (field.inlineTags().length > 0) { ++ writer.printMemberDetailsListStartTag(); + if (holder.equals(classdoc) || + (! (holder.isPublic() || Util.isLinkable(holder, configuration())))) { + writer.dd(); + writer.printInlineComment(field); ++ writer.ddEnd(); + } else { + String classlink = writer.codeText( + writer.getDocLink(LinkInfoImpl.CONTEXT_FIELD_DOC_COPY, +@@ -196,6 +195,7 @@ + writer.ddEnd(); + writer.dd(); + writer.printInlineComment(field); ++ writer.ddEnd(); + } + } + } +@@ -213,7 +213,7 @@ + * Write the field footer. + */ + public void writeFieldFooter() { +- writer.dlEnd(); ++ printMemberFooter(); + } + + /** +diff --git a/src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java b/src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java +--- langtools/src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java ++++ langtools/src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java +@@ -24,17 +24,16 @@ + */ + + package com.sun.tools.doclets.formats.html; +-import com.sun.tools.doclets.formats.html.markup.*; + +-import com.sun.tools.doclets.internal.toolkit.*; +-import com.sun.tools.doclets.internal.toolkit.util.*; +-import com.sun.tools.doclets.internal.toolkit.taglets.*; +- +-import com.sun.javadoc.*; + import java.io.*; + import java.text.SimpleDateFormat; + import java.util.*; + ++import com.sun.javadoc.*; ++import com.sun.tools.doclets.formats.html.markup.*; ++import com.sun.tools.doclets.internal.toolkit.*; ++import com.sun.tools.doclets.internal.toolkit.util.*; ++import com.sun.tools.doclets.internal.toolkit.taglets.*; + + /** + * Class for the Html Format Code Generation specific to JavaDoc. +@@ -44,6 +43,7 @@ + * @since 1.2 + * @author Atul M Dambalkar + * @author Robert Field ++ * @author Bhavesh Patel (Modified) + */ + public class HtmlDocletWriter extends HtmlDocWriter { + +@@ -205,7 +205,13 @@ + private void printMethodInfo(MethodDoc method) { + ClassDoc[] intfacs = method.containingClass().interfaces(); + MethodDoc overriddenMethod = method.overriddenMethod(); +- if (intfacs.length > 0 || overriddenMethod != null) { ++ // Check whether there is any implementation or overridden info to be ++ // printed. If no overridden or implementation info needs to be ++ // printed, do not print this section. ++ if ((intfacs.length > 0 && ++ new ImplementedMethods(method, this.configuration).build().length > 0) || ++ overriddenMethod != null) { ++ printMemberDetailsListStartTag(); + dd(); + printTagsInfoHeader(); + MethodWriterImpl.printImplementsInfo(this, method); +@@ -216,7 +222,6 @@ + printTagsInfoFooter(); + ddEnd(); + } +- dd(); + } + + protected void printTags(Doc doc) { +@@ -230,41 +235,35 @@ + TagletWriter.genTagOuput(configuration.tagletManager, doc, + configuration.tagletManager.getCustomTags(doc), + getTagletWriterInstance(false), output); +- if (output.toString().trim().length() > 0) { ++ String outputString = output.toString().trim(); ++ // For RootDoc and ClassDoc, this section is not the definition description ++ // but the start of definition list. ++ if (!outputString.isEmpty()) { ++ if (!(doc instanceof RootDoc || doc instanceof ClassDoc)) { ++ printMemberDetailsListStartTag(); ++ dd(); ++ } + printTagsInfoHeader(); +- print(output.toString()); ++ print(outputString); + printTagsInfoFooter(); +- } else if (! (doc instanceof ConstructorDoc || +- doc instanceof RootDoc || doc instanceof ClassDoc)) { +- //To be consistent with 1.4.2 output. +- //I hate to do this but we have to pass the diff test to prove +- //nothing has broken. +- printTagsInfoHeader(); +- printTagsInfoFooter(); ++ if (!(doc instanceof RootDoc || doc instanceof ClassDoc)) ++ ddEnd(); + } + } + + /** +- * Check whether there are any tags to be printed. ++ * Check whether there are any tags for Serialization Overview ++ * section to be printed. + * +- * @param doc the Doc object to check for tags. ++ * @param field the FieldDoc object to check for tags. + * @return true if there are tags to be printed else return false. + */ +- protected boolean hasTagsToPrint(Doc doc) { +- if (doc instanceof MethodDoc) { +- ClassDoc[] intfacs = ((MethodDoc)doc).containingClass().interfaces(); +- MethodDoc overriddenMethod = ((MethodDoc)doc).overriddenMethod(); +- if ((intfacs.length > 0 && +- new ImplementedMethods((MethodDoc)doc, this.configuration).build().length > 0) || +- overriddenMethod != null) { +- return true; +- } +- } ++ protected boolean hasSerializationOverviewTags(FieldDoc field) { + TagletOutputImpl output = new TagletOutputImpl(""); +- TagletWriter.genTagOuput(configuration.tagletManager, doc, +- configuration.tagletManager.getCustomTags(doc), ++ TagletWriter.genTagOuput(configuration.tagletManager, field, ++ configuration.tagletManager.getCustomTags(field), + getTagletWriterInstance(false), output); +- return (output.toString().trim().isEmpty()); ++ return (!output.toString().trim().isEmpty()); + } + + /** +diff --git a/src/share/classes/com/sun/tools/doclets/formats/html/HtmlSerialFieldWriter.java b/src/share/classes/com/sun/tools/doclets/formats/html/HtmlSerialFieldWriter.java +--- langtools/src/share/classes/com/sun/tools/doclets/formats/html/HtmlSerialFieldWriter.java ++++ langtools/src/share/classes/com/sun/tools/doclets/formats/html/HtmlSerialFieldWriter.java +@@ -25,11 +25,12 @@ + + package com.sun.tools.doclets.formats.html; + ++import java.util.*; ++ ++import com.sun.javadoc.*; + import com.sun.tools.doclets.internal.toolkit.*; + import com.sun.tools.doclets.internal.toolkit.taglets.*; + import com.sun.tools.doclets.internal.toolkit.util.*; +-import com.sun.javadoc.*; +-import java.util.*; + + /** + * Generate serialized form for serializable fields. +@@ -37,6 +38,7 @@ + * <code>serialField</code> is processed. + * + * @author Joe Fialli ++ * @author Bhavesh Patel (Modified) + */ + public class HtmlSerialFieldWriter extends FieldWriterImpl + implements SerializedFormWriter.SerialFieldWriter { +@@ -75,7 +77,7 @@ + writer.println(); + if (heading.equals( + configuration().getText("doclet.Serialized_Form_class"))) { +- writer.dl(); ++ assert !writer.getMemberDetailsListPrinted(); + } + } else { + writer.printTableHeadingBackground(heading); +@@ -102,7 +104,7 @@ + print(fieldDimensions + ' '); + strong(fieldName); + writer.preEnd(); +- writer.dl(); ++ assert !writer.getMemberDetailsListPrinted(); + } + + /** +@@ -111,9 +113,7 @@ + * @param field the field to document. + */ + public void writeMemberDeprecatedInfo(FieldDoc field) { +- print(((TagletOutputImpl) +- (new DeprecatedTaglet()).getTagletOutput(field, +- writer.getTagletWriterInstance(false))).toString()); ++ printDeprecated(field); + } + + /** +@@ -123,14 +123,17 @@ + */ + public void writeMemberDescription(FieldDoc field) { + if (field.inlineTags().length > 0) { ++ writer.printMemberDetailsListStartTag(); + writer.dd(); + writer.printInlineComment(field); ++ writer.ddEnd(); + } + Tag[] tags = field.tags("serial"); + if (tags.length > 0) { +- writer.dt(); ++ writer.printMemberDetailsListStartTag(); + writer.dd(); + writer.printInlineComment(field, tags[0]); ++ writer.ddEnd(); + } + } + +@@ -140,9 +143,14 @@ + * @param serialFieldTag the field to document (represented by tag). + */ + public void writeMemberDescription(SerialFieldTag serialFieldTag) { +- writer.dd(); +- writer.print(serialFieldTag.description()); +- writer.dlEnd(); ++ String serialFieldTagDesc = serialFieldTag.description().trim(); ++ if (!serialFieldTagDesc.isEmpty()) { ++ writer.dl(); ++ writer.dd(); ++ writer.print(serialFieldTagDesc); ++ writer.ddEnd(); ++ writer.dlEnd(); ++ } + } + + /** +@@ -151,33 +159,57 @@ + * @param field the field to document. + */ + public void writeMemberTags(FieldDoc field) { +- writer.dl(); + TagletOutputImpl output = new TagletOutputImpl(""); + TagletWriter.genTagOuput(configuration().tagletManager, field, + configuration().tagletManager.getCustomTags(field), + writer.getTagletWriterInstance(false), output); +- if (output.toString().length() > 0) { +- print(output.toString()); ++ String outputString = output.toString().trim(); ++ if (!outputString.isEmpty()) { ++ writer.printMemberDetailsListStartTag(); ++ writer.dd(); ++ writer.dl(); ++ print(outputString); ++ writer.dlEnd(); ++ writer.ddEnd(); + } +- writer.dlEnd(); +- } +- public void writeMemberFooter(FieldDoc member) { +- writer.dlEnd(); + } + + /** +- * Check to see if member details should be printed. If ++ * Check to see if overview details should be printed. If + * nocomment option set or if there is no text to be printed +- * for deprecation info, inline comment, no serial tag or inline tags, +- * do not print member details. ++ * for deprecation info, comment or tags, do not print overview details. ++ * ++ * @param field the field to check overview details for. ++ * @return true if overview details need to be printed + */ +- public boolean shouldPrintMemberDetails(FieldDoc field) { +- if (!configuration().nocomment) +- if((field.inlineTags().length > 0) || +- (field.tags("serial").length > 0) || (writer.hasTagsToPrint(field))) ++ public boolean shouldPrintOverview(FieldDoc field) { ++ if (!configuration().nocomment) { ++ if(!field.commentText().isEmpty() || ++ writer.hasSerializationOverviewTags(field)) + return true; +- if (!Util.isDeprecated(field)) ++ } ++ if (field.tags("deprecated").length > 0) + return true; + return false; + } ++ ++ public void writeMemberFooter() { ++ printMemberFooter(); ++ } ++ ++ /** ++ * Write the footer information. If the serilization overview section was ++ * printed, check for definition list and close list tag. ++ * ++ * @param heading the heading that was written. ++ */ ++ public void writeFooter(String heading) { ++ if (printedOverallAnchor) { ++ if (heading.equals( ++ configuration().getText("doclet.Serialized_Form_class"))) { ++ writer.printMemberDetailsListEndTag(); ++ assert !writer.getMemberDetailsListPrinted(); ++ } ++ } ++ } + } +diff --git a/src/share/classes/com/sun/tools/doclets/formats/html/HtmlSerialMethodWriter.java b/src/share/classes/com/sun/tools/doclets/formats/html/HtmlSerialMethodWriter.java +--- langtools/src/share/classes/com/sun/tools/doclets/formats/html/HtmlSerialMethodWriter.java ++++ langtools/src/share/classes/com/sun/tools/doclets/formats/html/HtmlSerialMethodWriter.java +@@ -25,9 +25,9 @@ + + package com.sun.tools.doclets.formats.html; + ++import com.sun.javadoc.*; + import com.sun.tools.doclets.internal.toolkit.*; + import com.sun.tools.doclets.internal.toolkit.taglets.*; +-import com.sun.javadoc.*; + + /** + * Generate serialized form for Serializable/Externalizable methods. +@@ -66,14 +66,12 @@ + writeSignature(member); + } + +- public void writeMemberFooter(MethodDoc member) { +- writer.dlEnd(); ++ public void writeMemberFooter() { ++ printMemberFooter(); + } + + public void writeDeprecatedMemberInfo(MethodDoc member) { +- print(((TagletOutputImpl) +- (new DeprecatedTaglet()).getTagletOutput(member, +- writer.getTagletWriterInstance(false))).toString()); ++ printDeprecated(member); + } + + public void writeMemberDescription(MethodDoc member) { +@@ -81,23 +79,27 @@ + } + + public void writeMemberTags(MethodDoc member) { +- writer.dd(); +- writer.dl(); + TagletOutputImpl output = new TagletOutputImpl(""); + TagletManager tagletManager = + ConfigurationImpl.getInstance().tagletManager; + TagletWriter.genTagOuput(tagletManager, member, + tagletManager.getSerializedFormTags(), + writer.getTagletWriterInstance(false), output); +- print(output.toString()); ++ String outputString = output.toString().trim(); ++ if (!outputString.isEmpty()) { ++ writer.printMemberDetailsListStartTag(); ++ writer.dd(); ++ writer.dl(); ++ print(outputString); ++ writer.dlEnd(); ++ writer.ddEnd(); ++ } + MethodDoc method = (MethodDoc)member; + if (method.name().compareTo("writeExternal") == 0 + && method.tags("serialData").length == 0) { + serialWarning(member.position(), "doclet.MissingSerialDataTag", + method.containingClass().qualifiedName(), method.name()); + } +- writer.ddEnd(); +- writer.dlEnd(); + } + + protected void printTypeLinkNoDimension(Type type) { +diff --git a/src/share/classes/com/sun/tools/doclets/formats/html/MethodWriterImpl.java b/src/share/classes/com/sun/tools/doclets/formats/html/MethodWriterImpl.java +--- langtools/src/share/classes/com/sun/tools/doclets/formats/html/MethodWriterImpl.java ++++ langtools/src/share/classes/com/sun/tools/doclets/formats/html/MethodWriterImpl.java +@@ -25,13 +25,13 @@ + + package com.sun.tools.doclets.formats.html; + ++import java.io.*; ++ ++import com.sun.javadoc.*; + import com.sun.tools.doclets.internal.toolkit.*; + import com.sun.tools.doclets.internal.toolkit.util.*; + import com.sun.tools.doclets.internal.toolkit.taglets.*; + +-import java.io.*; +-import com.sun.javadoc.*; +- + /** + * Writes method documentation in HTML format. + * +@@ -172,7 +172,7 @@ + writeParameters(method); + writeExceptions(method); + writer.preEnd(); +- writer.dl(); ++ assert !writer.getMemberDetailsListPrinted(); + } + + /** +@@ -181,12 +181,7 @@ + * @param method the method being documented. + */ + public void writeDeprecated(MethodDoc method) { +- String output = ((TagletOutputImpl) +- (new DeprecatedTaglet()).getTagletOutput(method, +- writer.getTagletWriterInstance(false))).toString(); +- if (output != null && output.trim().length() > 0) { +- writer.print(output); +- } ++ printDeprecated(method); + } + + /** +@@ -197,11 +192,13 @@ + public void writeComments(Type holder, MethodDoc method) { + ClassDoc holderClassDoc = holder.asClassDoc(); + if (method.inlineTags().length > 0) { ++ writer.printMemberDetailsListStartTag(); + if (holder.asClassDoc().equals(classdoc) || + (! (holderClassDoc.isPublic() || + Util.isLinkable(holderClassDoc, configuration())))) { + writer.dd(); + writer.printInlineComment(method); ++ writer.ddEnd(); + } else { + String classlink = writer.codeText( + writer.getDocLink(LinkInfoImpl.CONTEXT_METHOD_DOC_COPY, +@@ -217,6 +214,7 @@ + writer.ddEnd(); + writer.dd(); + writer.printInlineComment(method); ++ writer.ddEnd(); + } + } + } +@@ -234,8 +232,7 @@ + * Write the method footer. + */ + public void writeMethodFooter() { +- writer.ddEnd(); +- writer.dlEnd(); ++ printMemberFooter(); + } + + /** +@@ -318,6 +315,7 @@ + String name = method.name(); + writer.dt(); + writer.strongText(label); ++ writer.dtEnd(); + writer.dd(); + String methLink = writer.codeText( + writer.getLink( +@@ -326,6 +324,7 @@ + writer.getAnchor(method), name, false) + )); + writer.printText("doclet.in_class", methLink, overriddenTypeLink); ++ writer.ddEnd(); + } + } + +@@ -364,11 +363,13 @@ + LinkInfoImpl.CONTEXT_METHOD_SPECIFIED_BY, intfac))); + writer.dt(); + writer.strongText("doclet.Specified_By"); ++ writer.dtEnd(); + writer.dd(); + methlink = writer.codeText(writer.getDocLink( + LinkInfoImpl.CONTEXT_MEMBER, implementedMeth, + implementedMeth.name(), false)); + writer.printText("doclet.in_interface", methlink, intfaclink); ++ writer.ddEnd(); + } + + } +diff --git a/src/share/classes/com/sun/tools/doclets/formats/html/NestedClassWriterImpl.java b/src/share/classes/com/sun/tools/doclets/formats/html/NestedClassWriterImpl.java +--- langtools/src/share/classes/com/sun/tools/doclets/formats/html/NestedClassWriterImpl.java ++++ langtools/src/share/classes/com/sun/tools/doclets/formats/html/NestedClassWriterImpl.java +@@ -25,11 +25,11 @@ + + package com.sun.tools.doclets.formats.html; + ++import java.io.*; ++ ++import com.sun.javadoc.*; + import com.sun.tools.doclets.internal.toolkit.*; + import com.sun.tools.doclets.internal.toolkit.util.*; +-import com.sun.javadoc.*; +- +-import java.io.*; + + /** + * Writes nested class documentation in HTML format. +@@ -129,7 +129,6 @@ + writer.println(""); + } + writer.anchor(nestedClass.name()); +- writer.dl(); + writer.h3(); + writer.print(nestedClass.name()); + writer.h3End(); +diff --git a/src/share/classes/com/sun/tools/doclets/formats/html/PackageTreeWriter.java b/src/share/classes/com/sun/tools/doclets/formats/html/PackageTreeWriter.java +--- langtools/src/share/classes/com/sun/tools/doclets/formats/html/PackageTreeWriter.java ++++ langtools/src/share/classes/com/sun/tools/doclets/formats/html/PackageTreeWriter.java +@@ -25,9 +25,10 @@ + + package com.sun.tools.doclets.formats.html; + ++import java.io.*; ++ ++import com.sun.javadoc.*; + import com.sun.tools.doclets.internal.toolkit.util.*; +-import com.sun.javadoc.*; +-import java.io.*; + + /** + * Class to generate Tree page for a package. The name of the file generated is +@@ -145,8 +146,10 @@ + dl(); + dt(); + strongText("doclet.Package_Hierarchies"); ++ dtEnd(); + dd(); + navLinkMainTree(configuration.getText("doclet.All_Packages")); ++ ddEnd(); + dlEnd(); + hr(); + } +diff --git a/src/share/classes/com/sun/tools/doclets/formats/html/TagletWriterImpl.java b/src/share/classes/com/sun/tools/doclets/formats/html/TagletWriterImpl.java +--- langtools/src/share/classes/com/sun/tools/doclets/formats/html/TagletWriterImpl.java ++++ langtools/src/share/classes/com/sun/tools/doclets/formats/html/TagletWriterImpl.java +@@ -25,17 +25,18 @@ + + package com.sun.tools.doclets.formats.html; + ++import com.sun.javadoc.*; + import com.sun.tools.doclets.internal.toolkit.*; + import com.sun.tools.doclets.internal.toolkit.builders.SerializedFormBuilder; + import com.sun.tools.doclets.internal.toolkit.taglets.*; + import com.sun.tools.doclets.internal.toolkit.util.*; +-import com.sun.javadoc.*; + + /** + * The taglet writer that writes HTML. + * + * @since 1.5 + * @author Jamie Ho ++ * @author Bhavesh Patel (Modified) + */ + + public class TagletWriterImpl extends TagletWriter { +@@ -99,11 +100,12 @@ + output.append(DocletConstants.NL + "<P>" + + DocletConstants.NL); + } ++ output.append("</DD>"); + } else { + if (Util.isDeprecated(member.containingClass())) { + output.append("<DD><STRONG>" + + ConfigurationImpl.getInstance(). +- getText("doclet.Deprecated") + "</STRONG> "); ++ getText("doclet.Deprecated") + "</STRONG> </DD>"); + } + } + } +@@ -123,7 +125,7 @@ + public TagletOutput getParamHeader(String header) { + StringBuffer result = new StringBuffer(); + result.append("<DT>"); +- result.append("<STRONG>" + header + "</STRONG>"); ++ result.append("<STRONG>" + header + "</STRONG></DT>"); + return new TagletOutputImpl(result.toString()); + } + +@@ -132,7 +134,7 @@ + */ + public TagletOutput paramTagOutput(ParamTag paramTag, String paramName) { + TagletOutput result = new TagletOutputImpl("<DD><CODE>" + paramName + "</CODE>" +- + " - " + htmlWriter.commentTagsToString(paramTag, null, paramTag.inlineTags(), false)); ++ + " - " + htmlWriter.commentTagsToString(paramTag, null, paramTag.inlineTags(), false) + "</DD>"); + return result; + } + +@@ -142,9 +144,9 @@ + public TagletOutput returnTagOutput(Tag returnTag) { + TagletOutput result = new TagletOutputImpl(DocletConstants.NL + "<DT>" + + "<STRONG>" + htmlWriter.configuration.getText("doclet.Returns") + +- "</STRONG>" + "<DD>" + ++ "</STRONG>" + "</DT>" + "<DD>" + + htmlWriter.commentTagsToString(returnTag, null, returnTag.inlineTags(), +- false)); ++ false) + "</DD>"); + return result; + } + +@@ -174,22 +176,21 @@ + } + if (holder.isClass() && ((ClassDoc)holder).isSerializable()) { + //Automatically add link to serialized form page for serializable classes. +- if (!(SerializedFormBuilder.serialInclude(holder) && ++ if ((SerializedFormBuilder.serialInclude(holder) && + SerializedFormBuilder.serialInclude(((ClassDoc)holder).containingPackage()))) { +- return result.equals("") ? null : new TagletOutputImpl(result); ++ result = addSeeHeader(result); ++ result += htmlWriter.getHyperLink(htmlWriter.relativePath + "serialized-form.html", ++ ((ClassDoc)holder).qualifiedName(), htmlWriter.configuration.getText("doclet.Serialized_Form"), false); + } +- result = addSeeHeader(result); +- result += htmlWriter.getHyperLink(htmlWriter.relativePath + "serialized-form.html", +- ((ClassDoc)holder).qualifiedName(), htmlWriter.configuration.getText("doclet.Serialized_Form"), false); + } +- return result.equals("") ? null : new TagletOutputImpl(result); ++ return result.equals("") ? null : new TagletOutputImpl(result + "</DD>"); + } + + private String addSeeHeader(String result) { + if (result != null && result.length() > 0) { + return result + ", " + DocletConstants.NL; + } else { +- return "<DT><STRONG>" + htmlWriter.configuration().getText("doclet.See_Also") + "</STRONG><DD>"; ++ return "<DT><STRONG>" + htmlWriter.configuration().getText("doclet.See_Also") + "</STRONG></DT><DD>"; + } + } + +@@ -205,7 +206,8 @@ + } + result += htmlWriter.commentTagsToString(simpleTags[i], null, simpleTags[i].inlineTags(), false); + } +- return new TagletOutputImpl(result + "</DD>" + DocletConstants.NL); ++ result += "</DD>" + DocletConstants.NL; ++ return new TagletOutputImpl(result); + } + + /** +@@ -222,7 +224,7 @@ + */ + public TagletOutput getThrowsHeader() { + return new TagletOutputImpl(DocletConstants.NL + "<DT>" + "<STRONG>" + +- htmlWriter.configuration().getText("doclet.Throws") + "</STRONG>"); ++ htmlWriter.configuration().getText("doclet.Throws") + "</STRONG></DT>"); + } + + /** +@@ -241,6 +243,7 @@ + if (text != null && text.toString().length() > 0) { + result += " - " + text; + } ++ result += "</DD>"; + return new TagletOutputImpl(result); + } + +@@ -250,7 +253,7 @@ + public TagletOutput throwsTagOutput(Type throwsType) { + return new TagletOutputImpl(DocletConstants.NL + "<DD>" + + htmlWriter.codeText(htmlWriter.getLink( +- new LinkInfoImpl(LinkInfoImpl.CONTEXT_MEMBER, throwsType)))); ++ new LinkInfoImpl(LinkInfoImpl.CONTEXT_MEMBER, throwsType))) + "</DD>"); + } + + /** +diff --git a/src/share/classes/com/sun/tools/doclets/formats/html/TreeWriter.java b/src/share/classes/com/sun/tools/doclets/formats/html/TreeWriter.java +--- langtools/src/share/classes/com/sun/tools/doclets/formats/html/TreeWriter.java ++++ langtools/src/share/classes/com/sun/tools/doclets/formats/html/TreeWriter.java +@@ -25,9 +25,11 @@ + + package com.sun.tools.doclets.formats.html; + ++import java.io.*; ++ ++import com.sun.javadoc.*; + import com.sun.tools.doclets.internal.toolkit.util.*; +-import com.sun.javadoc.*; +-import java.io.*; ++ + /** + * Generate Class Hierarchy page for all the Classes in this run. Use + * ClassTree for building the Tree. The name of +@@ -120,6 +122,7 @@ + dl(); + dt(); + strongText("doclet.Package_Hierarchies"); ++ dtEnd(); + dd(); + for (int i = 0; i < packages.length; i++) { + if (packages[i].name().length() == 0) { +@@ -131,6 +134,7 @@ + print(", "); + } + } ++ ddEnd(); + dlEnd(); + hr(); + } +diff --git a/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlDocWriter.java b/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlDocWriter.java +--- langtools/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlDocWriter.java ++++ langtools/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlDocWriter.java +@@ -245,6 +245,31 @@ + } + + /** ++ * Keep track of member details list. Print the definition list start tag ++ * if it is not printed yet. ++ */ ++ public void printMemberDetailsListStartTag () { ++ if (!getMemberDetailsListPrinted()) { ++ dl(); ++ memberDetailsListPrinted = true; ++ } ++ } ++ ++ /** ++ * Print the definition list end tag if the list start tag was printed. ++ */ ++ public void printMemberDetailsListEndTag () { ++ if (getMemberDetailsListPrinted()) { ++ dlEnd(); ++ memberDetailsListPrinted = false; ++ } ++ } ++ ++ public boolean getMemberDetailsListPrinted() { ++ return memberDetailsListPrinted; ++ } ++ ++ /** + * Print the frameset version of the Html file header. + * Called only when generating an HTML frameset file. + * +diff --git a/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlWriter.java b/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlWriter.java +--- langtools/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlWriter.java ++++ langtools/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlWriter.java +@@ -25,9 +25,10 @@ + + package com.sun.tools.doclets.formats.html.markup; + ++import java.io.*; ++ + import com.sun.tools.doclets.internal.toolkit.*; + import com.sun.tools.doclets.internal.toolkit.util.*; +-import java.io.*; + + /** + * Class for the Html format code generation. +@@ -61,6 +62,11 @@ + protected Configuration configuration; + + /** ++ * The flag to indicate whether a member details list is printed or not. ++ */ ++ protected boolean memberDetailsListPrinted; ++ ++ /** + * Constructor. + * + * @param path The directory path to be created for this file +@@ -79,6 +85,7 @@ + super(Util.genWriter(configuration, path, filename, docencoding)); + this.configuration = configuration; + htmlFilename = filename; ++ this.memberDetailsListPrinted = false; + } + + /** +@@ -529,7 +536,14 @@ + } + + /** +- * Print <DT> tag. ++ * Print </DT> tag. ++ */ ++ public void dtEnd() { ++ print("</DT>"); ++ } ++ ++ /** ++ * Print <DD> tag. + */ + public void dd() { + print("<DD>"); +diff --git a/src/share/classes/com/sun/tools/doclets/internal/toolkit/SerializedFormWriter.java b/src/share/classes/com/sun/tools/doclets/internal/toolkit/SerializedFormWriter.java +--- langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/SerializedFormWriter.java ++++ langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/SerializedFormWriter.java +@@ -25,8 +25,9 @@ + + package com.sun.tools.doclets.internal.toolkit; + ++import java.io.*; ++ + import com.sun.javadoc.*; +-import java.io.*; + + /** + * The interface for writing serialized form output. +@@ -147,22 +148,27 @@ + String fieldDimensions, String fieldName); + + /** ++ * Write the member footer. ++ */ ++ public void writeMemberFooter(); ++ ++ /** ++ * Check to see if overview details should be printed. If ++ * nocomment option set or if there is no text to be printed ++ * for deprecation info, inline comment or tags, ++ * do not print overview details. ++ * ++ * @param field the field to check overview details for. ++ * @return true if overview details need to be printed ++ */ ++ public boolean shouldPrintOverview(FieldDoc field); ++ ++ /** + * Write the footer. + * +- * @param member the member to write the header for. ++ * @param heading the heading that was written. + */ +- public void writeMemberFooter(FieldDoc member); +- +- /** +- * Check to see if member details should be printed. If +- * nocomment option set or if there is no text to be printed +- * for deprecation info, inline comment, no serial tag or inline tags, +- * do not print member details. +- * +- * @param member the member to check details for. +- * @return true if details need to be printed +- */ +- public boolean shouldPrintMemberDetails(FieldDoc member); ++ public void writeFooter (String heading); + } + + /** +@@ -193,10 +199,8 @@ + + /** + * Write the footer. +- * +- * @param member the member to write the header for. + */ +- public void writeMemberFooter(MethodDoc member); ++ public void writeMemberFooter(); + + /** + * Write the deprecated information for this member. +diff --git a/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/SerializedFormBuilder.java b/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/SerializedFormBuilder.java +--- langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/SerializedFormBuilder.java ++++ langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/SerializedFormBuilder.java +@@ -25,13 +25,14 @@ + + package com.sun.tools.doclets.internal.toolkit.builders; + +-import com.sun.tools.doclets.internal.toolkit.util.*; +-import com.sun.tools.doclets.internal.toolkit.*; +-import com.sun.javadoc.*; + import java.io.*; + import java.lang.reflect.*; + import java.util.*; + ++import com.sun.javadoc.*; ++import com.sun.tools.doclets.internal.toolkit.util.*; ++import com.sun.tools.doclets.internal.toolkit.*; ++ + /** + * Builds the serialized form. + * +@@ -40,6 +41,7 @@ + * Do not use it as an API + * + * @author Jamie Ho ++ * @author Bhavesh Patel (Modified) + * @since 1.5 + */ + public class SerializedFormBuilder extends AbstractBuilder { +@@ -379,7 +381,7 @@ + * Build the method footer. + */ + public void buildMethodFooter() { +- methodWriter.writeMemberFooter((MethodDoc) currentMember); ++ methodWriter.writeMemberFooter(); + } + + /** +@@ -407,13 +409,17 @@ + // information to be printed. + if (fieldWriter.shouldPrintMemberDetails(serialPersistentField)) { + fieldWriter.writeHeader( +- configuration.getText("doclet.Serialized_Form_class")); ++ configuration.getText("doclet.Serialized_Form_class")); + fieldWriter.writeMemberDeprecatedInfo(serialPersistentField); + if (!configuration.nocomment) { + fieldWriter.writeMemberDescription(serialPersistentField); + fieldWriter.writeMemberTags(serialPersistentField); + } + fieldWriter.writeMemberFooter(serialPersistentField); ++ // Footer required to close the definition list tag ++ // for serialization overview. ++ fieldWriter.writeFooter( ++ configuration.getText("doclet.Serialized_Form_class")); + } + } + } +@@ -476,11 +482,11 @@ + } + + /** +- * Build the field footer. ++ * Build the field sub footer. + */ +- public void buildFieldFooter() { ++ public void buildFieldSubFooter() { + if (! currentClass.definesSerializableFields()) { +- fieldWriter.writeMemberFooter((FieldDoc) currentMember); ++ fieldWriter.writeMemberFooter(); + } + } + +diff --git a/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclet.xml b/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclet.xml +--- langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclet.xml ++++ langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclet.xml +@@ -26,180 +26,180 @@ + --> + +
+-<Doclet>
+-
+- <PackageDoc>
+- <PackageHeader/>
+- <Summary>
+- <SummaryHeader/>
+- <InterfaceSummary/>
+- <ClassSummary/>
+- <EnumSummary/>
+- <ExceptionSummary/>
+- <ErrorSummary/>
+- <AnnotationTypeSummary/>
+- <SummaryFooter/>
+- </Summary>
+- <PackageDescription/>
+- <PackageTags/>
+- <PackageFooter/>
+- </PackageDoc>
+-
+- <AnnotationTypeDoc>
+- <AnnotationTypeHeader/>
+- <DeprecationInfo/>
+- <AnnotationTypeSignature/>
+- <AnnotationTypeDescription/>
+- <AnnotationTypeTagInfo/>
+- <MemberSummary>
+- <AnnotationTypeRequiredMemberSummary/>
+- <AnnotationTypeOptionalMemberSummary/>
+- </MemberSummary>
+- <AnnotationTypeRequiredMemberDetails>
+- <Header/>
+- <AnnotationTypeRequiredMember>
+- <MemberHeader/>
+- <Signature/>
+- <DeprecationInfo/>
+- <MemberComments/>
+- <TagInfo/>
+- <MemberFooter/>
+- </AnnotationTypeRequiredMember>
+- </AnnotationTypeRequiredMemberDetails>
+- <AnnotationTypeOptionalMemberDetails>
+- <AnnotationTypeOptionalMember>
+- <MemberHeader/>
+- <Signature/>
+- <DeprecationInfo/>
+- <MemberComments/>
+- <TagInfo/>
+- <DefaultValueInfo/>
+- <MemberFooter/>
+- </AnnotationTypeOptionalMember>
+- <Footer/>
+- </AnnotationTypeOptionalMemberDetails>
+- <AnnotationTypeFooter/>
+- </AnnotationTypeDoc>
+-
+- <ClassDoc>
+- <ClassHeader/>
+- <ClassTree/>
+- <TypeParamInfo/>
+- <SuperInterfacesInfo/>
+- <ImplementedInterfacesInfo/>
+- <SubClassInfo/>
+- <SubInterfacesInfo/>
+- <InterfaceUsageInfo/>
+- <NestedClassInfo/>
+- <DeprecationInfo/>
+- <ClassSignature/>
+- <ClassDescription/>
+- <ClassTagInfo/>
+- <MemberSummary>
+- <NestedClassesSummary/>
+- <NestedClassesInheritedSummary/>
+- <EnumConstantsSummary/>
+- <FieldsSummary/>
+- <FieldsInheritedSummary/>
+- <ConstructorsSummary/>
+- <MethodsSummary/>
+- <MethodsInheritedSummary/>
+- </MemberSummary>
+- <EnumConstantsDetails>
+- <Header/>
+- <EnumConstant>
+- <EnumConstantHeader/>
+- <Signature/>
+- <DeprecationInfo/>
+- <EnumConstantComments/>
+- <TagInfo/>
+- <EnumConstantFooter/>
+- </EnumConstant>
+- <Footer/>
+- </EnumConstantsDetails>
+- <FieldDetails>
+- <Header/>
+- <FieldDoc>
+- <FieldHeader/>
+- <Signature/>
+- <DeprecationInfo/>
+- <FieldComments/>
+- <TagInfo/>
+- <FieldFooter/>
+- </FieldDoc>
+- <Footer/>
+- </FieldDetails>
+- <ConstructorDetails>
+- <Header/>
+- <ConstructorDoc>
+- <ConstructorHeader/>
+- <Signature/>
+- <DeprecationInfo/>
+- <ConstructorComments/>
+- <TagInfo/>
+- <ConstructorFooter/>
+- </ConstructorDoc>
+- <Footer/>
+- </ConstructorDetails>
+- <MethodDetails>
+- <Header/>
+- <MethodDoc>
+- <MethodHeader/>
+- <Signature/>
+- <DeprecationInfo/>
+- <MethodComments/>
+- <TagInfo/>
+- <MethodFooter/>
+- </MethodDoc>
+- <Footer/>
+- </MethodDetails>
+- <ClassFooter/>
+- </ClassDoc>
+-
+- <ConstantSummary>
+- <Header/>
+- <Contents/>
+- <ConstantSummaries>
+- <PackageConstantSummary>
+- <PackageHeader/>
+- <ClassConstantSummary>
+- <ClassHeader/>
+- <ConstantMembers/>
+- <ClassFooter/>
+- </ClassConstantSummary>
+- </PackageConstantSummary>
+- </ConstantSummaries>
+- <Footer/>
+- </ConstantSummary>
+-
+- <SerializedForm>
+- <Header/>
+- <SerializedFormSummaries>
+- <PackageSerializedForm>
+- <PackageHeader/>
+- <ClassSerializedForm>
+- <ClassHeader/>
+- <SerialUIDInfo/>
+- <MethodHeader/>
+- <SerializableMethods>
+- <MethodSubHeader/>
+- <DeprecatedMethodInfo/>
+- <MethodInfo>
+- <MethodDescription/>
+- <MethodTags/>
+- </MethodInfo>
+- <MethodFooter/>
+- </SerializableMethods>
+- <FieldHeader/>
+- <SerializableFields>
+- <FieldSubHeader/>
+- <FieldDeprecationInfo/>
+- <FieldInfo/>
+- <FieldFooter/>
+- </SerializableFields>
+- </ClassSerializedForm>
+- </PackageSerializedForm>
+- </SerializedFormSummaries>
+- <Footer/>
+- </SerializedForm>
+-</Doclet>
++<Doclet> ++ ++ <PackageDoc> ++ <PackageHeader/> ++ <Summary> ++ <SummaryHeader/> ++ <InterfaceSummary/> ++ <ClassSummary/> ++ <EnumSummary/> ++ <ExceptionSummary/> ++ <ErrorSummary/> ++ <AnnotationTypeSummary/> ++ <SummaryFooter/> ++ </Summary> ++ <PackageDescription/> ++ <PackageTags/> ++ <PackageFooter/> ++ </PackageDoc> ++ ++ <AnnotationTypeDoc> ++ <AnnotationTypeHeader/> ++ <DeprecationInfo/> ++ <AnnotationTypeSignature/> ++ <AnnotationTypeDescription/> ++ <AnnotationTypeTagInfo/> ++ <MemberSummary> ++ <AnnotationTypeRequiredMemberSummary/> ++ <AnnotationTypeOptionalMemberSummary/> ++ </MemberSummary> ++ <AnnotationTypeRequiredMemberDetails> ++ <Header/> ++ <AnnotationTypeRequiredMember> ++ <MemberHeader/> ++ <Signature/> ++ <DeprecationInfo/> ++ <MemberComments/> ++ <TagInfo/> ++ <MemberFooter/> ++ </AnnotationTypeRequiredMember> ++ </AnnotationTypeRequiredMemberDetails> ++ <AnnotationTypeOptionalMemberDetails> ++ <AnnotationTypeOptionalMember> ++ <MemberHeader/> ++ <Signature/> ++ <DeprecationInfo/> ++ <MemberComments/> ++ <TagInfo/> ++ <DefaultValueInfo/> ++ <MemberFooter/> ++ </AnnotationTypeOptionalMember> ++ <Footer/> ++ </AnnotationTypeOptionalMemberDetails> ++ <AnnotationTypeFooter/> ++ </AnnotationTypeDoc> ++ ++ <ClassDoc> ++ <ClassHeader/> ++ <ClassTree/> ++ <TypeParamInfo/> ++ <SuperInterfacesInfo/> ++ <ImplementedInterfacesInfo/> ++ <SubClassInfo/> ++ <SubInterfacesInfo/> ++ <InterfaceUsageInfo/> ++ <NestedClassInfo/> ++ <DeprecationInfo/> ++ <ClassSignature/> ++ <ClassDescription/> ++ <ClassTagInfo/> ++ <MemberSummary> ++ <NestedClassesSummary/> ++ <NestedClassesInheritedSummary/> ++ <EnumConstantsSummary/> ++ <FieldsSummary/> ++ <FieldsInheritedSummary/> ++ <ConstructorsSummary/> ++ <MethodsSummary/> ++ <MethodsInheritedSummary/> ++ </MemberSummary> ++ <EnumConstantsDetails> ++ <Header/> ++ <EnumConstant> ++ <EnumConstantHeader/> ++ <Signature/> ++ <DeprecationInfo/> ++ <EnumConstantComments/> ++ <TagInfo/> ++ <EnumConstantFooter/> ++ </EnumConstant> ++ <Footer/> ++ </EnumConstantsDetails> ++ <FieldDetails> ++ <Header/> ++ <FieldDoc> ++ <FieldHeader/> ++ <Signature/> ++ <DeprecationInfo/> ++ <FieldComments/> ++ <TagInfo/> ++ <FieldFooter/> ++ </FieldDoc> ++ <Footer/> ++ </FieldDetails> ++ <ConstructorDetails> ++ <Header/> ++ <ConstructorDoc> ++ <ConstructorHeader/> ++ <Signature/> ++ <DeprecationInfo/> ++ <ConstructorComments/> ++ <TagInfo/> ++ <ConstructorFooter/> ++ </ConstructorDoc> ++ <Footer/> ++ </ConstructorDetails> ++ <MethodDetails> ++ <Header/> ++ <MethodDoc> ++ <MethodHeader/> ++ <Signature/> ++ <DeprecationInfo/> ++ <MethodComments/> ++ <TagInfo/> ++ <MethodFooter/> ++ </MethodDoc> ++ <Footer/> ++ </MethodDetails> ++ <ClassFooter/> ++ </ClassDoc> ++ ++ <ConstantSummary> ++ <Header/> ++ <Contents/> ++ <ConstantSummaries> ++ <PackageConstantSummary> ++ <PackageHeader/> ++ <ClassConstantSummary> ++ <ClassHeader/> ++ <ConstantMembers/> ++ <ClassFooter/> ++ </ClassConstantSummary> ++ </PackageConstantSummary> ++ </ConstantSummaries> ++ <Footer/> ++ </ConstantSummary> ++ ++ <SerializedForm> ++ <Header/> ++ <SerializedFormSummaries> ++ <PackageSerializedForm> ++ <PackageHeader/> ++ <ClassSerializedForm> ++ <ClassHeader/> ++ <SerialUIDInfo/> ++ <MethodHeader/> ++ <SerializableMethods> ++ <MethodSubHeader/> ++ <DeprecatedMethodInfo/> ++ <MethodInfo> ++ <MethodDescription/> ++ <MethodTags/> ++ </MethodInfo> ++ <MethodFooter/> ++ </SerializableMethods> ++ <FieldHeader/> ++ <SerializableFields> ++ <FieldSubHeader/> ++ <FieldDeprecationInfo/> ++ <FieldInfo/> ++ <FieldSubFooter/> ++ </SerializableFields> ++ </ClassSerializedForm> ++ </PackageSerializedForm> ++ </SerializedFormSummaries> ++ <Footer/> ++ </SerializedForm> ++</Doclet> +diff --git a/test/com/sun/javadoc/AuthorDD/AuthorDD.java b/test/com/sun/javadoc/AuthorDD/AuthorDD.java +--- langtools/test/com/sun/javadoc/AuthorDD/AuthorDD.java ++++ langtools/test/com/sun/javadoc/AuthorDD/AuthorDD.java +@@ -91,7 +91,7 @@ + + // Test multiple @author tags: + +- { "<DT><STRONG>Author:</STRONG></DT>"+NL+" <DD>Doug Kramer, Jamie, Neal</DD>"+NL, ++ { "<DT><STRONG>Author:</STRONG></DT>"+NL+" <DD>Doug Kramer, Jamie, Neal</DD>", + BUGID + FS + "p1" + FS + "C1.html" }, + + }; +diff --git a/test/com/sun/javadoc/testClassCrossReferences/TestClassCrossReferences.java b/test/com/sun/javadoc/testClassCrossReferences/TestClassCrossReferences.java +--- langtools/test/com/sun/javadoc/testClassCrossReferences/TestClassCrossReferences.java ++++ langtools/test/com/sun/javadoc/testClassCrossReferences/TestClassCrossReferences.java +@@ -48,7 +48,7 @@ + "<A HREF=\"http://java.sun.com/j2se/1.4/docs/api/java/math/BigInteger.html?is-external=true#gcd(java.math.BigInteger)\" " + + "title=\"class or interface in java.math\"><CODE>Link to external member gcd</CODE></A>"}, + {BUG_ID + FS + "C.html", +- "<STRONG>Overrides:</STRONG><DD><CODE>toString</CODE> in class <CODE>java.lang.Object</CODE>"} ++ "<STRONG>Overrides:</STRONG></DT><DD><CODE>toString</CODE> in class <CODE>java.lang.Object</CODE>"} + }; + private static final String[][] NEGATED_TEST = NO_TEST; + private static final String[] ARGS = +diff --git a/test/com/sun/javadoc/testConstructorIndent/TestConstructorIndent.java b/test/com/sun/javadoc/testConstructorIndent/TestConstructorIndent.java +--- langtools/test/com/sun/javadoc/testConstructorIndent/TestConstructorIndent.java ++++ langtools/test/com/sun/javadoc/testConstructorIndent/TestConstructorIndent.java +@@ -45,9 +45,10 @@ + + //Input for string search tests. + private static final String[][] TEST = { +- {BUG_ID + FS + "C.html", "<DL>"+NL+"<DD>This is just a simple constructor."+ NL + +- "<P>"+NL+"<DL>"+NL+"<DT><STRONG>Parameters:</STRONG><DD><CODE>i</CODE> - a param.</DL>"+NL + +- "</DL>" ++ {BUG_ID + FS + "C.html", "<DL>" + NL + "<DD>This is just a simple constructor." + NL + ++ "<P>" + NL + "</DD>" + NL + "<DD><DL>" + NL + "<DT><STRONG>Parameters:</STRONG>" + ++ "</DT><DD><CODE>i</CODE> - a param.</DD></DL>" + NL + ++ "</DD>" + NL + "</DL>" + } + }; + private static final String[][] NEGATED_TEST = NO_TEST; +diff --git a/test/com/sun/javadoc/testDeprecatedDocs/TestDeprecatedDocs.java b/test/com/sun/javadoc/testDeprecatedDocs/TestDeprecatedDocs.java +--- langtools/test/com/sun/javadoc/testDeprecatedDocs/TestDeprecatedDocs.java ++++ langtools/test/com/sun/javadoc/testDeprecatedDocs/TestDeprecatedDocs.java +@@ -78,13 +78,12 @@ + + {TARGET_FILE2, "<STRONG>Deprecated.</STRONG>" + NL + + "<P>" + NL + +- "<DL>" + NL + +- "<DT><PRE><FONT SIZE=\"-1\">@Deprecated" + NL + ++ "<PRE><FONT SIZE=\"-1\">@Deprecated" + NL + + "</FONT>public class <STRONG>DeprecatedClassByAnnotation</STRONG>"}, + + {TARGET_FILE2, "public int <STRONG>field</STRONG></PRE>" + NL + + "<DL>" + NL + +- "<DD><STRONG>Deprecated.</STRONG> <DL>"}, ++ "<DD><STRONG>Deprecated.</STRONG> </DD></DL>"}, + + {TARGET_FILE2, "<FONT SIZE=\"-1\">@Deprecated" + NL + + "</FONT>public <STRONG>DeprecatedClassByAnnotation</STRONG>()</PRE>" + NL + +diff --git a/test/com/sun/javadoc/testExternalOverridenMethod/TestExternalOverridenMethod.java b/test/com/sun/javadoc/testExternalOverridenMethod/TestExternalOverridenMethod.java +--- langtools/test/com/sun/javadoc/testExternalOverridenMethod/TestExternalOverridenMethod.java ++++ langtools/test/com/sun/javadoc/testExternalOverridenMethod/TestExternalOverridenMethod.java +@@ -39,13 +39,13 @@ + private static final String BUG_ID = "4857717"; + private static final String[][] TEST = { + {BUG_ID + FS + "pkg" + FS + "XReader.html", +- "<STRONG>Overrides:</STRONG><DD><CODE><A HREF=\"" + ++ "<STRONG>Overrides:</STRONG></DT><DD><CODE><A HREF=\"" + + "http://java.sun.com/j2se/1.4.1/docs/api/java/io/FilterReader.html?is-external=true#read()\"" + + " title=\"class or interface in java.io\">read</A></CODE> in class " + + "<CODE><A HREF=\"http://java.sun.com/j2se/1.4.1/docs/api/java/io/FilterReader.html?is-external=true\"" + + " title=\"class or interface in java.io\">FilterReader</A>"}, + {BUG_ID + FS + "pkg" + FS + "XReader.html", +- "<STRONG>Specified by:</STRONG><DD><CODE><A HREF=\"" + ++ "<STRONG>Specified by:</STRONG></DT><DD><CODE><A HREF=\"" + + "http://java.sun.com/j2se/1.4.1/docs/api/java/io/DataInput.html?is-external=true#readInt()\"" + + " title=\"class or interface in java.io\">readInt</A></CODE> in interface " + + "<CODE><A HREF=\"http://java.sun.com/j2se/1.4.1/docs/api/java/io/DataInput.html?is-external=true\"" + +diff --git a/test/com/sun/javadoc/testHref/TestHref.java b/test/com/sun/javadoc/testHref/TestHref.java +--- langtools/test/com/sun/javadoc/testHref/TestHref.java ++++ langtools/test/com/sun/javadoc/testHref/TestHref.java +@@ -67,7 +67,7 @@ + }, + //@see test. + {BUG_ID + FS + "pkg" + FS + "C2.html", +- "See Also:</STRONG><DD><A HREF=\"../pkg/C1.html#method(int, int, java.util.ArrayList)\">" ++ "See Also:</STRONG></DT><DD><A HREF=\"../pkg/C1.html#method(int, int, java.util.ArrayList)\">" + }, + + //Header does not link to the page itself. +diff --git a/test/com/sun/javadoc/testHtmlDefinitionListTag/TestHtmlDefinitionListTag.java b/test/com/sun/javadoc/testHtmlDefinitionListTag/TestHtmlDefinitionListTag.java +new file mode 100644 +--- /dev/null ++++ langtools/test/com/sun/javadoc/testHtmlDefinitionListTag/TestHtmlDefinitionListTag.java +@@ -0,0 +1,370 @@ ++/* ++ * Copyright 2009 Sun Microsystems, Inc. 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. Sun designates this ++ * particular file as subject to the "Classpath" exception as provided ++ * by Sun in the LICENSE file that accompanied this code. ++ * ++ * 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, ++ * CA 95054 USA or visit www.sun.com if you need additional information or ++ * have any questions. ++ */ ++ ++/* ++ * @test ++ * @bug 6786690 ++ * @summary This test verifies the nesting of definition list tags. ++ * @author Bhavesh Patel ++ * @library ../lib/ ++ * @build JavadocTester ++ * @build TestHtmlDefinitionListTag ++ * @run main TestHtmlDefinitionListTag ++ */ ++ ++public class TestHtmlDefinitionListTag extends JavadocTester { ++ ++ private static final String BUG_ID = "6786690"; ++ ++ // Test common to all runs of javadoc. The class signature should print ++ // properly enclosed definition list tags and the Annotation Type ++ // Optional Element should print properly nested definition list tags ++ // for default value. ++ private static final String[][] TEST_ALL = { ++ {BUG_ID + FS + "pkg1" + FS + "C1.html", "<PRE>public class " + ++ "<STRONG>C1</STRONG>" + NL + "extends " + ++ "java.lang.Object" + NL + "implements " + ++ "java.io.Serializable</PRE>"}, ++ {BUG_ID + FS + "pkg1" + FS + "C4.html", "<DL>" + NL + "<DD><DL>" + NL + ++ "<DT><STRONG>Default:</STRONG></DT><DD>true</DD>" + NL + ++ "</DL>" + NL + "</DD>" + NL + "</DL>"}}; ++ ++ // Test for normal run of javadoc in which various ClassDocs and ++ // serialized form should have properly nested definition list tags ++ // enclosing comments, tags and deprecated information. ++ private static final String[][] TEST_CMNT_DEPR = { ++ {BUG_ID + FS + "pkg1" + FS + "C1.html", "<DL>" + NL + ++ "<DT><STRONG>Since:</STRONG></DT>" + NL + ++ " <DD>JDK1.0</DD>" + NL + "<DT><STRONG>See Also:</STRONG></DT><DD>" + ++ "<A HREF=\"../pkg1/C2.html\" title=\"class in pkg1\">" + ++ "<CODE>C2</CODE></A>, " + NL + ++ "<A HREF=\"../serialized-form.html#pkg1.C1\">" + ++ "Serialized Form</A></DD></DL>"}, ++ {BUG_ID + FS + "pkg1" + FS + "C1.html", "<DL>" + NL + ++ "<DD><STRONG>Deprecated.</STRONG> <I>As of JDK version" + ++ " 1.5, replaced by" + NL + ++ " <A HREF=\"../pkg1/C1.html#setUndecorated(boolean)\">" + ++ "<CODE>setUndecorated(boolean)</CODE></A>.</I></DD>" + ++ "<DD>This field indicates whether the C1 is undecorated." + NL + ++ "<P>" + NL + "</DD>" + NL + "<DD><DL>" + NL + "<DT><STRONG>" + ++ "Since:</STRONG></DT>" + NL + " <DD>1.4</DD>" + NL + "<DT>" + ++ "<STRONG>See Also:</STRONG></DT><DD>" + ++ "<A HREF=\"../pkg1/C1.html#setUndecorated(boolean)\"><CODE>" + ++ "setUndecorated(boolean)</CODE></A></DD></DL>" + NL +"</DD>" + NL + ++ "</DL>"}, ++ {BUG_ID + FS + "pkg1" + FS + "C1.html", "<DL>" + NL + ++ "<DD>Constructor." + NL + "<P>" + NL + "</DD>" + NL + ++ "<DD><DL>" + NL + "<DT><STRONG>Parameters:</STRONG></DT><DD>" + ++ "<CODE>title</CODE> - the title</DD><DD><CODE>test</CODE>" + ++ " - boolean value</DD>" + NL + "<DT><STRONG>Throws:</STRONG></DT>" + NL + ++ "<DD><CODE>java.lang.IllegalArgumentException</CODE>" + ++ " - if the <code>owner</code>'s" + NL + " <code>GraphicsConfiguration" + ++ "</code> is not from a screen device</DD>" + NL +"<DD><CODE>" + ++ "HeadlessException</CODE></DD></DL>" + NL + "</DD>" + NL + ++ "</DL>"}, ++ {BUG_ID + FS + "pkg1" + FS + "C1.html", "<DL>" + NL + ++ "<DD>Method comments." + NL + "<P>" + NL + ++ "</DD>" + NL + "<DD><DL>" + NL + "<DT><STRONG>Parameters:" + ++ "</STRONG></DT><DD><CODE>undecorated</CODE> - <code>true</code>" + ++ " if no decorations are" + NL + " to be enabled;" + NL + ++ " <code>false</code> if decorations are to be enabled." + ++ "</DD><DT><STRONG>Since:</STRONG></DT>" + NL + ++ " <DD>1.4</DD>" + NL + "<DT><STRONG>See Also:</STRONG></DT>" + ++ "<DD><A HREF=\"../pkg1/C1.html#readObject()\"><CODE>" + ++ "readObject()</CODE></A></DD></DL>" + NL + "</DD>" + NL + ++ "</DL>"}, ++ {BUG_ID + FS + "pkg1" + FS + "C1.html", "<DL>" + NL + "<DD><DL>" + NL + ++ "<DT><STRONG>Throws:</STRONG></DT>" + NL + "<DD><CODE>" + ++ "java.io.IOException</CODE></DD><DT><STRONG>See Also:" + ++ "</STRONG></DT><DD>" + ++ "<A HREF=\"../pkg1/C1.html#setUndecorated(boolean)\">" + ++ "<CODE>setUndecorated(boolean)</CODE></A></DD></DL>" + NL + ++ "</DD>" + NL + "</DL>"}, ++ {BUG_ID + FS + "pkg1" + FS + "C1.ModalExclusionType.html", "<DL>" + NL + ++ "<DD>No modal exclusion." + NL + "<P>" + NL +"</DD>" + NL + ++ "</DL>"}, ++ {BUG_ID + FS + "pkg1" + FS + "C2.html", "<DL>" + NL + "<DD>Constructor." + NL + ++ "<P>" + NL +"</DD>" + NL + "</DL>"}, ++ {BUG_ID + FS + "pkg1" + FS + "C2.html", "<DL>" + NL + "<DD><STRONG>" + ++ "Deprecated.</STRONG> <I>As of JDK version 1.5, replaced " + ++ "by" + NL + " <A HREF=\"../pkg1/C1.html#setUndecorated(boolean)\">" + ++ "<CODE>setUndecorated(boolean)</CODE></A>.</I>" + NL + "<P>" + NL + ++ "</DD><DD>Set visible." + NL + "<P>" + NL + "</DD>" +NL + ++ "<DD><DL>" + NL + "<DT><STRONG>Parameters:</STRONG></DT><DD>" + ++ "<CODE>set</CODE> - boolean</DD><DT><STRONG>Since:</STRONG></DT>" + NL + ++ " <DD>1.4</DD></DL>" + NL + "</DD>" + NL + "</DL>"}, ++ {BUG_ID + FS + "pkg1" + FS + "C3.html", "<DL>" + NL + "<DD>Comment." + NL + ++ "<P>" + NL + "</DD>" + NL + "</DL>"}, ++ {BUG_ID + FS + "serialized-form.html", "<DL>" + NL + "<DD><DL>" + NL + ++ "<DT><STRONG>Throws:</STRONG></DT>" + NL + "<DD><CODE>" + ++ "java.io.IOException</CODE></DD><DT><STRONG>See Also:</STRONG>" + ++ "</DT><DD><A HREF=\"pkg1/C1.html#setUndecorated(boolean)\">" + ++ "<CODE>C1.setUndecorated(boolean)</CODE></A></DD></DL>" + NL + ++ "</DD>" + NL + "</DL>"}, ++ {BUG_ID + FS + "serialized-form.html", "<DL>" + NL + ++ "<DD><STRONG>Deprecated.</STRONG> <I>As of JDK version " + ++ "1.5, replaced by" + NL + ++ " <A HREF=\"pkg1/C1.html#setUndecorated(boolean)\">" + ++ "<CODE>setUndecorated(boolean)</CODE></A>.</I></DD>" + ++ "<DD>This field indicates whether the C1 is undecorated." + NL + ++ "<P>" + NL + "</DD>" + NL + "<DD> </DD>" + NL + ++ "<DD><DL>" + NL + "<DT><STRONG>Since:</STRONG></DT>" + NL + ++ " <DD>1.4</DD>" + NL + "<DT><STRONG>See Also:</STRONG>" + ++ "</DT><DD><A HREF=\"pkg1/C1.html#setUndecorated(boolean)\">" + ++ "<CODE>C1.setUndecorated(boolean)</CODE></A></DD></DL>" + NL + ++ "</DD>" + NL + "</DL>"}, ++ {BUG_ID + FS + "serialized-form.html", "<DL>" + NL + ++ "<DD><STRONG>Deprecated.</STRONG> <I>As of JDK version" + ++ " 1.5, replaced by" + NL + ++ " <A HREF=\"pkg1/C1.html#setUndecorated(boolean)\">" + ++ "<CODE>setUndecorated(boolean)</CODE></A>.</I>" + NL + "<P>" + NL + ++ "</DD><DD>Reads the object stream." + NL + "<P>" + NL + ++ "</DD>" + NL + "<DD><DL>" + NL + "<DT><STRONG>Throws:" + ++ "</STRONG></DT>" + NL + "<DD><CODE><code>" + ++ "IOException</code></CODE></DD>" + NL + ++ "<DD><CODE>java.io.IOException</CODE></DD></DL>" + NL + ++ "</DD>" + NL + "</DL>"}, ++ {BUG_ID + FS + "serialized-form.html", "<DL>" + NL + ++ "<DD><STRONG>Deprecated.</STRONG> </DD><DD>" + ++ "The name for this class." + NL + "<P>" + NL + "</DD>" + NL + ++ "<DD> </DD>" + NL + "</DL>"}}; ++ ++ // Test with -nocomment option. The ClassDocs and serialized form should ++ // have properly nested definition list tags enclosing deprecated ++ // information and should not display definition lists for comments ++ // and tags. ++ private static final String[][] TEST_NOCMNT = { ++ {BUG_ID + FS + "pkg1" + FS + "C1.html", "<DL>" + NL + "<DD><STRONG>" + ++ "Deprecated.</STRONG> <I>As of JDK version 1.5, replaced by" + NL + ++ " <A HREF=\"../pkg1/C1.html#setUndecorated(boolean)\"><CODE>" + ++ "setUndecorated(boolean)</CODE></A>.</I></DD></DL>"}, ++ {BUG_ID + FS + "pkg1" + FS + "C2.html", "<DL>" + NL + ++ "<DD><STRONG>Deprecated.</STRONG> <I>As of JDK version" + ++ " 1.5, replaced by" + NL + ++ " <A HREF=\"../pkg1/C1.html#setUndecorated(boolean)\">" + ++ "<CODE>setUndecorated(boolean)</CODE></A>.</I>" + NL + "<P>" + NL + ++ "</DD></DL>"}, ++ {BUG_ID + FS + "pkg1" + FS + "C5.html", "<PRE>" + NL + ++ "protected <STRONG>C5</STRONG>()</PRE>" + NL + "<DL>" + NL + ++ "<DD><STRONG>Deprecated.</STRONG> </DD></DL>"}, ++ {BUG_ID + FS + "pkg1" + FS + "C5.html", "<PRE>" + NL + ++ "public void <STRONG>printInfo</STRONG>()</PRE>" + NL + "<DL>" + NL + ++ "<DD><STRONG>Deprecated.</STRONG> </DD></DL>"}, ++ {BUG_ID + FS + "serialized-form.html", "<PRE>" + NL + "boolean <STRONG>" + ++ "undecorated</STRONG></PRE>" + NL + "<DL>" + NL + "<DD><STRONG>" + ++ "Deprecated.</STRONG> <I>As of JDK version 1.5, replaced by" + NL + ++ " <A HREF=\"pkg1/C1.html#setUndecorated(boolean)\"><CODE>" + ++ "setUndecorated(boolean)</CODE></A>.</I></DD></DL>"}, ++ {BUG_ID + FS + "serialized-form.html", "<DL>" + NL + "<DD><STRONG>" + ++ "Deprecated.</STRONG> <I>As of JDK version" + ++ " 1.5, replaced by" + NL + ++ " <A HREF=\"pkg1/C1.html#setUndecorated(boolean)\">" + ++ "<CODE>setUndecorated(boolean)</CODE></A>.</I>" + NL + "<P>" + NL + ++ "</DD></DL>"}, ++ {BUG_ID + FS + "serialized-form.html", "<PRE>" + NL + "int <STRONG>" + ++ "publicKey</STRONG></PRE>" + NL + "<DL>" + NL + "<DD><STRONG>" + ++ "Deprecated.</STRONG> </DD></DL>"}}; ++ ++ // Test with -nodeprecated option. The ClassDocs should have properly nested ++ // definition list tags enclosing comments and tags. The ClassDocs should not ++ // display definition list for deprecated information. The serialized form ++ // should display properly nested definition list tags for comments, tags ++ // and deprecated information. ++ private static final String[][] TEST_NODEPR = { ++ {BUG_ID + FS + "pkg1" + FS + "C1.html", "<DL>" + NL + ++ "<DT><STRONG>Since:</STRONG></DT>" + NL + ++ " <DD>JDK1.0</DD>" + NL + "<DT><STRONG>See Also:</STRONG></DT><DD>" + ++ "<A HREF=\"../pkg1/C2.html\" title=\"class in pkg1\">" + ++ "<CODE>C2</CODE></A>, " + NL + ++ "<A HREF=\"../serialized-form.html#pkg1.C1\">" + ++ "Serialized Form</A></DD></DL>"}, ++ {BUG_ID + FS + "pkg1" + FS + "C1.html", "<DL>" + NL + ++ "<DD>Constructor." + NL + "<P>" + NL + "</DD>" + NL + ++ "<DD><DL>" + NL + "<DT><STRONG>Parameters:</STRONG></DT><DD>" + ++ "<CODE>title</CODE> - the title</DD><DD><CODE>test</CODE>" + ++ " - boolean value</DD>" + NL + "<DT><STRONG>Throws:</STRONG></DT>" + NL + ++ "<DD><CODE>java.lang.IllegalArgumentException</CODE>" + ++ " - if the <code>owner</code>'s" + NL + " <code>GraphicsConfiguration" + ++ "</code> is not from a screen device</DD>" + NL +"<DD><CODE>" + ++ "HeadlessException</CODE></DD></DL>" + NL + "</DD>" + NL + ++ "</DL>"}, ++ {BUG_ID + FS + "pkg1" + FS + "C1.html", "<DL>" + NL + ++ "<DD>Method comments." + NL + "<P>" + NL + ++ "</DD>" + NL + "<DD><DL>" + NL + "<DT><STRONG>Parameters:" + ++ "</STRONG></DT><DD><CODE>undecorated</CODE> - <code>true</code>" + ++ " if no decorations are" + NL + " to be enabled;" + NL + ++ " <code>false</code> if decorations are to be enabled." + ++ "</DD><DT><STRONG>Since:</STRONG></DT>" + NL + ++ " <DD>1.4</DD>" + NL + "<DT><STRONG>See Also:</STRONG></DT>" + ++ "<DD><A HREF=\"../pkg1/C1.html#readObject()\"><CODE>" + ++ "readObject()</CODE></A></DD></DL>" + NL + "</DD>" + NL + ++ "</DL>"}, ++ {BUG_ID + FS + "pkg1" + FS + "C1.html", "<DL>" + NL + "<DD><DL>" + NL + ++ "<DT><STRONG>Throws:</STRONG></DT>" + NL + "<DD><CODE>" + ++ "java.io.IOException</CODE></DD><DT><STRONG>See Also:" + ++ "</STRONG></DT><DD>" + ++ "<A HREF=\"../pkg1/C1.html#setUndecorated(boolean)\">" + ++ "<CODE>setUndecorated(boolean)</CODE></A></DD></DL>" + NL + ++ "</DD>" + NL + "</DL>"}, ++ {BUG_ID + FS + "pkg1" + FS + "C1.ModalExclusionType.html", "<DL>" + NL + ++ "<DD>No modal exclusion." + NL + "<P>" + NL +"</DD>" + NL + ++ "</DL>"}, ++ {BUG_ID + FS + "pkg1" + FS + "C2.html", "<DL>" + NL + "<DD>Constructor." + NL + ++ "<P>" + NL +"</DD>" + NL + "</DL>"}, ++ {BUG_ID + FS + "pkg1" + FS + "C3.html", "<DL>" + NL + "<DD>Comment." + NL + ++ "<P>" + NL + "</DD>" + NL + "</DL>"}, ++ {BUG_ID + FS + "serialized-form.html", "<DL>" + NL + "<DD><DL>" + NL + ++ "<DT><STRONG>Throws:</STRONG></DT>" + NL + "<DD><CODE>" + ++ "java.io.IOException</CODE></DD><DT><STRONG>See Also:</STRONG>" + ++ "</DT><DD><A HREF=\"pkg1/C1.html#setUndecorated(boolean)\">" + ++ "<CODE>C1.setUndecorated(boolean)</CODE></A></DD></DL>" + NL + ++ "</DD>" + NL + "</DL>"}, ++ {BUG_ID + FS + "serialized-form.html", "<DL>" + NL + ++ "<DD><STRONG>Deprecated.</STRONG> <I>As of JDK version " + ++ "1.5, replaced by" + NL + ++ " <A HREF=\"pkg1/C1.html#setUndecorated(boolean)\">" + ++ "<CODE>setUndecorated(boolean)</CODE></A>.</I></DD>" + ++ "<DD>This field indicates whether the C1 is undecorated." + NL + ++ "<P>" + NL + "</DD>" + NL + "<DD> </DD>" + NL + ++ "<DD><DL>" + NL + "<DT><STRONG>Since:</STRONG></DT>" + NL + ++ " <DD>1.4</DD>" + NL + "<DT><STRONG>See Also:</STRONG>" + ++ "</DT><DD><A HREF=\"pkg1/C1.html#setUndecorated(boolean)\">" + ++ "<CODE>C1.setUndecorated(boolean)</CODE></A></DD></DL>" + NL + ++ "</DD>" + NL + "</DL>"}, ++ {BUG_ID + FS + "serialized-form.html", "<DL>" + NL + ++ "<DD><STRONG>Deprecated.</STRONG> <I>As of JDK version" + ++ " 1.5, replaced by" + NL + ++ " <A HREF=\"pkg1/C1.html#setUndecorated(boolean)\">" + ++ "<CODE>setUndecorated(boolean)</CODE></A>.</I>" + NL + "<P>" + NL + ++ "</DD><DD>Reads the object stream." + NL + "<P>" + NL + ++ "</DD>" + NL + "<DD><DL>" + NL + "<DT><STRONG>Throws:" + ++ "</STRONG></DT>" + NL + "<DD><CODE><code>" + ++ "IOException</code></CODE></DD>" + NL + ++ "<DD><CODE>java.io.IOException</CODE></DD></DL>" + NL + ++ "</DD>" + NL + "</DL>"}, ++ {BUG_ID + FS + "serialized-form.html", "<DL>" + NL + ++ "<DD><STRONG>Deprecated.</STRONG> </DD><DD>" + ++ "The name for this class." + NL + "<P>" + NL + "</DD>" + NL + ++ "<DD> </DD>" + NL + "</DL>"}}; ++ ++ // Test with -nocomment and -nodeprecated options. The ClassDocs whould ++ // not display definition lists for any member details. The serialized ++ // form should display properly nested definition list tags for ++ // deprecated information only. ++ private static final String[][] TEST_NOCMNT_NODEPR = { ++ {BUG_ID + FS + "pkg1" + FS + "C1.html", "<PRE>" + NL + "public void " + ++ "<STRONG>readObject</STRONG>()" + NL + " throws" + ++ " java.io.IOException</PRE>" + NL + "<HR>"}, ++ {BUG_ID + FS + "pkg1" + FS + "C2.html", "<PRE>" +NL + "public <STRONG>" + ++ "C2</STRONG>()</PRE>" + NL + "<HR>"}, ++ {BUG_ID + FS + "pkg1" + FS + "C1.ModalExclusionType.html", "<PRE>" + NL + ++ "public static final " + ++ "<A HREF=\"../pkg1/C1.ModalExclusionType.html\" " + ++ "title=\"enum in pkg1\">C1.ModalExclusionType</A> <STRONG>" + ++ "APPLICATION_EXCLUDE</STRONG></PRE>" + NL + "<HR>"}, ++ {BUG_ID + FS + "serialized-form.html", "<PRE>" + NL + "boolean <STRONG>" + ++ "undecorated</STRONG></PRE>" + NL + "<DL>" + NL + "<DD><STRONG>" + ++ "Deprecated.</STRONG> <I>As of JDK version 1.5, replaced by" + NL + ++ " <A HREF=\"pkg1/C1.html#setUndecorated(boolean)\"><CODE>" + ++ "setUndecorated(boolean)</CODE></A>.</I></DD></DL>"}, ++ {BUG_ID + FS + "serialized-form.html", "<DL>" + NL + "<DD><STRONG>" + ++ "Deprecated.</STRONG> <I>As of JDK version" + ++ " 1.5, replaced by" + NL + ++ " <A HREF=\"pkg1/C1.html#setUndecorated(boolean)\">" + ++ "<CODE>setUndecorated(boolean)</CODE></A>.</I>" + NL + "<P>" + NL + ++ "</DD></DL>"}, ++ {BUG_ID + FS + "serialized-form.html", "<PRE>" + NL + "int <STRONG>" + ++ "publicKey</STRONG></PRE>" + NL + "<DL>" + NL + "<DD><STRONG>" + ++ "Deprecated.</STRONG> </DD></DL>"}}; ++ ++ // Test for valid HTML generation which should not comprise of empty ++ // definition list tags. ++ private static final String[][] NEGATED_TEST = { ++ {BUG_ID + FS + "pkg1" + FS + "C1.html", "<DL></DL>"}, ++ {BUG_ID + FS + "pkg1" + FS + "C1.html", "<DL>" + NL + "</DL>"}, ++ {BUG_ID + FS + "pkg1" + FS + "C1.ModalExclusionType.html", "<DL></DL>"}, ++ {BUG_ID + FS + "pkg1" + FS + "C1.ModalExclusionType.html", "<DL>" + NL + "</DL>"}, ++ {BUG_ID + FS + "pkg1" + FS + "C2.html", "<DL></DL>"}, ++ {BUG_ID + FS + "pkg1" + FS + "C2.html", "<DL>" + NL + "</DL>"}, ++ {BUG_ID + FS + "pkg1" + FS + "C2.ModalType.html", "<DL></DL>"}, ++ {BUG_ID + FS + "pkg1" + FS + "C2.ModalType.html", "<DL>" + NL + "</DL>"}, ++ {BUG_ID + FS + "pkg1" + FS + "C3.html", "<DL></DL>"}, ++ {BUG_ID + FS + "pkg1" + FS + "C3.html", "<DL>" + NL + "</DL>"}, ++ {BUG_ID + FS + "pkg1" + FS + "C4.html", "<DL></DL>"}, ++ {BUG_ID + FS + "pkg1" + FS + "C4.html", "<DL>" + NL + "</DL>"}, ++ {BUG_ID + FS + "pkg1" + FS + "C5.html", "<DL></DL>"}, ++ {BUG_ID + FS + "pkg1" + FS + "C5.html", "<DL>" + NL + "</DL>"}, ++ {BUG_ID + FS + "overview-tree.html", "<DL></DL>"}, ++ {BUG_ID + FS + "overview-tree.html", "<DL>" + NL + "</DL>"}, ++ {BUG_ID + FS + "serialized-form.html", "<DL></DL>"}, ++ {BUG_ID + FS + "serialized-form.html", "<DL>" + NL + "</DL>"}}; ++ ++ private static final String[] ARGS1 = ++ new String[] { ++ "-d", BUG_ID, "-sourcepath", SRC_DIR, "pkg1"}; ++ ++ private static final String[] ARGS2 = ++ new String[] { ++ "-d", BUG_ID, "-nocomment", "-sourcepath", SRC_DIR, "pkg1"}; ++ ++ private static final String[] ARGS3 = ++ new String[] { ++ "-d", BUG_ID, "-nodeprecated", "-sourcepath", SRC_DIR, "pkg1"}; ++ ++ private static final String[] ARGS4 = ++ new String[] { ++ "-d", BUG_ID, "-nocomment", "-nodeprecated", "-sourcepath", SRC_DIR, "pkg1"}; ++ ++ /** ++ * The entry point of the test. ++ * @param args the array of command line arguments. ++ */ ++ public static void main(String[] args) { ++ TestHtmlDefinitionListTag tester = new TestHtmlDefinitionListTag(); ++ run(tester, ARGS1, TEST_ALL, NEGATED_TEST); ++ run(tester, ARGS1, TEST_CMNT_DEPR, NEGATED_TEST); ++ run(tester, ARGS2, TEST_ALL, NEGATED_TEST); ++ run(tester, ARGS2, TEST_NOCMNT, TEST_CMNT_DEPR); ++ run(tester, ARGS3, TEST_ALL, NEGATED_TEST); ++ run(tester, ARGS3, TEST_NODEPR, TEST_NOCMNT_NODEPR); ++ run(tester, ARGS4, TEST_ALL, NEGATED_TEST); ++ run(tester, ARGS4, TEST_NOCMNT_NODEPR, TEST_CMNT_DEPR); ++ tester.printSummary(); ++ } ++ ++ /** ++ * {@inheritDoc} ++ */ ++ public String getBugId() { ++ return BUG_ID; ++ } ++ ++ /** ++ * {@inheritDoc} ++ */ ++ public String getBugName() { ++ return getClass().getName(); ++ } ++} +diff --git a/test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/C1.java b/test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/C1.java +new file mode 100644 +--- /dev/null ++++ langtools/test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/C1.java +@@ -0,0 +1,108 @@ ++/* ++ * Copyright 2009 Sun Microsystems, Inc. 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. Sun designates this ++ * particular file as subject to the "Classpath" exception as provided ++ * by Sun in the LICENSE file that accompanied this code. ++ * ++ * 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, ++ * CA 95054 USA or visit www.sun.com if you need additional information or ++ * have any questions. ++ */ ++ ++package pkg1; ++ ++import java.io.IOException; ++import java.io.Serializable; ++ ++/** ++ * A class comment for testing. ++ * ++ * @author Bhavesh Patel ++ * @see C2 ++ * @since JDK1.0 ++ */ ++ ++public class C1 implements Serializable { ++ ++ /** ++ * This field indicates whether the C1 is undecorated. ++ * ++ * @see #setUndecorated(boolean) ++ * @since 1.4 ++ * @serial ++ * @deprecated As of JDK version 1.5, replaced by ++ * {@link C1#setUndecorated(boolean) setUndecorated(boolean)}. ++ */ ++ @Deprecated ++ public boolean undecorated = false; ++ ++ private String title; ++ ++ /** ++ * This enum specifies the possible modal exclusion types. ++ * ++ * @since 1.6 ++ */ ++ public static enum ModalExclusionType { ++ /** ++ * No modal exclusion. ++ */ ++ NO_EXCLUDE, ++ /** ++ * <code>APPLICATION_EXCLUDE</code> indicates that a top-level window ++ * won't be blocked by any application-modal dialogs. Also, it isn't ++ * blocked by document-modal dialogs from outside of its child hierarchy. ++ */ ++ APPLICATION_EXCLUDE ++ }; ++ ++ /** ++ * Constructor. ++ * ++ * @param title the title ++ * @param test boolean value ++ * @exception IllegalArgumentException if the <code>owner</code>'s ++ * <code>GraphicsConfiguration</code> is not from a screen device ++ * @exception HeadlessException ++ */ ++ public C1(String title, boolean test) { ++ ++ } ++ ++ public C1(String title) { ++ ++ } ++ ++ /** ++ * Method comments. ++ * @param undecorated <code>true</code> if no decorations are ++ * to be enabled; ++ * <code>false</code> if decorations are to be enabled. ++ * @see #readObject() ++ * @since 1.4 ++ */ ++ public void setUndecorated(boolean undecorated) { ++ /* Make sure we don't run in the middle of peer creation.*/ ++ } ++ ++ /** ++ * @see #setUndecorated(boolean) ++ */ ++ public void readObject() throws IOException { ++ ++ } ++} +diff --git a/test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/C2.java b/test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/C2.java +new file mode 100644 +--- /dev/null ++++ langtools/test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/C2.java +@@ -0,0 +1,86 @@ ++/* ++ * Copyright 2009 Sun Microsystems, Inc. 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. Sun designates this ++ * particular file as subject to the "Classpath" exception as provided ++ * by Sun in the LICENSE file that accompanied this code. ++ * ++ * 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, ++ * CA 95054 USA or visit www.sun.com if you need additional information or ++ * have any questions. ++ */ ++ ++package pkg1; ++ ++import java.io.ObjectInputStream; ++import java.io.IOException; ++import java.io.Serializable; ++ ++/** ++ * A class comment for testing. ++ * ++ * @author Bhavesh Patel ++ * @see C1 ++ * @since JDK1.0 ++ */ ++ ++public class C2 implements Serializable { ++ ++ /** ++ * This field indicates title. ++ */ ++ String title; ++ ++ public static enum ModalType { ++ NO_EXCLUDE ++ }; ++ ++ /** ++ * Constructor. ++ * ++ */ ++ public C2() { ++ ++ } ++ ++ public C2(String title) { ++ ++ } ++ ++ /** ++ * Set visible. ++ * ++ * @param set boolean ++ * @since 1.4 ++ * @deprecated As of JDK version 1.5, replaced by ++ * {@link C1#setUndecorated(boolean) setUndecorated(boolean)}. ++ */ ++ @Deprecated ++ public void setVisible(boolean set) { ++ } ++ ++ /** ++ * Reads the object stream. ++ * ++ * @param s ObjectInputStream ++ * @throws <code>IOException</code> ++ * @deprecated As of JDK version 1.5, replaced by ++ * {@link C1#setUndecorated(boolean) setUndecorated(boolean)}. ++ */ ++ @Deprecated ++ public void readObject(ObjectInputStream s) throws IOException { ++ } ++} +diff --git a/test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/C3.java b/test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/C3.java +new file mode 100644 +--- /dev/null ++++ langtools/test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/C3.java +@@ -0,0 +1,42 @@ ++/* ++ * Copyright 2009 Sun Microsystems, Inc. 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. Sun designates this ++ * particular file as subject to the "Classpath" exception as provided ++ * by Sun in the LICENSE file that accompanied this code. ++ * ++ * 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, ++ * CA 95054 USA or visit www.sun.com if you need additional information or ++ * have any questions. ++ */ ++ ++package pkg1; ++ ++import java.lang.annotation.*; ++ ++/** ++ * Test Annotation class. ++ * ++ * @author Bhavesh Patel ++ * @since 1.5 ++ */ ++@Retention(RetentionPolicy.SOURCE) ++public @interface C3 { ++ /** ++ * Comment. ++ */ ++ String[] value(); ++} +diff --git a/test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/C4.java b/test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/C4.java +new file mode 100644 +--- /dev/null ++++ langtools/test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/C4.java +@@ -0,0 +1,39 @@ ++/* ++ * Copyright 2009 Sun Microsystems, Inc. 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. Sun designates this ++ * particular file as subject to the "Classpath" exception as provided ++ * by Sun in the LICENSE file that accompanied this code. ++ * ++ * 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, ++ * CA 95054 USA or visit www.sun.com if you need additional information or ++ * have any questions. ++ */ ++ ++package pkg1; ++ ++import java.lang.annotation.*; ++ ++/* ++ * The @Inherited annotation has no effect when applied to an interface. ++ */ ++@Documented ++@Retention(RetentionPolicy.RUNTIME) ++@Target(ElementType.TYPE) ++@Inherited ++public @interface C4 { ++ boolean value() default true; ++} +diff --git a/test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/C5.java b/test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/C5.java +new file mode 100644 +--- /dev/null ++++ langtools/test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/C5.java +@@ -0,0 +1,65 @@ ++/* ++ * Copyright 2009 Sun Microsystems, Inc. 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. Sun designates this ++ * particular file as subject to the "Classpath" exception as provided ++ * by Sun in the LICENSE file that accompanied this code. ++ * ++ * 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, ++ * CA 95054 USA or visit www.sun.com if you need additional information or ++ * have any questions. ++ */ ++ ++package pkg1; ++ ++import java.io.Serializable; ++ ++/** ++ * Test for Serializable ++ * ++ * @author Bhavesh Patel ++ * @deprecated This class is no longer used. ++ */ ++@Deprecated ++public abstract class C5 implements Serializable { ++ ++ /** ++ * The name for this class. ++ * ++ * @serial ++ */ ++ private String name; ++ ++ /** ++ * @serial ++ */ ++ private int publicKey; ++ ++ /** ++ * Constructor for serialization only. ++ */ ++ protected C5() { ++ ++ } ++ ++ /** ++ * Prints general information. ++ * ++ */ ++ public void printInfo() { ++ ++ } ++} +diff --git a/test/com/sun/javadoc/testIndex/TestIndex.java b/test/com/sun/javadoc/testIndex/TestIndex.java +--- langtools/test/com/sun/javadoc/testIndex/TestIndex.java ++++ langtools/test/com/sun/javadoc/testIndex/TestIndex.java +@@ -73,10 +73,10 @@ + {BUG_ID + FS + "index-all.html", + "<DT><A HREF=\"./pkg/C.html#Java\"><STRONG>Java</STRONG></A> - " + NL + + "Static variable in class pkg.<A HREF=\"./pkg/C.html\" title=\"class in pkg\">C</A>" + NL + +- "<DD> " + NL + ++ "</DT><DD> </DD>" + NL + NL + + "<DT><A HREF=\"./pkg/C.html#JDK\"><STRONG>JDK</STRONG></A> - " + NL + + "Static variable in class pkg.<A HREF=\"./pkg/C.html\" title=\"class in pkg\">C</A>" + NL + +- "<DD> "}, ++ "</DT><DD> </DD>"}, + }; + private static final String[][] NEGATED_TEST = NO_TEST; + +diff --git a/test/com/sun/javadoc/testInterface/TestInterface.java b/test/com/sun/javadoc/testInterface/TestInterface.java +--- langtools/test/com/sun/javadoc/testInterface/TestInterface.java ++++ langtools/test/com/sun/javadoc/testInterface/TestInterface.java +@@ -55,7 +55,7 @@ + + // Make sure known implementing class list is correct and omits type parameters. + {BUG_ID + FS + "pkg" + FS + "Interface.html", +- "<DT><STRONG>All Known Implementing Classes:</STRONG> " + ++ "<DT><STRONG>All Known Implementing Classes:</STRONG></DT> " + + "<DD><A HREF=\"../pkg/Child.html\" " + + "title=\"class in pkg\">Child</A>, " + + "<A HREF=\"../pkg/Parent.html\" title=\"class in pkg\">" + +@@ -63,7 +63,9 @@ + + // Make sure "All Implemented Interfaces": has substituted type parameters + {BUG_ID + FS + "pkg" + FS + "Child.html", +- "<STRONG>All Implemented Interfaces:</STRONG> <DD><A HREF=\"../pkg/Interface.html\" title=\"interface in pkg\">Interface</A><T>" ++ "<STRONG>All Implemented Interfaces:</STRONG></DT> <DD>" + ++ "<A HREF=\"../pkg/Interface.html\" title=\"interface in pkg\">" + ++ "Interface</A><T>" + }, + //Make sure Class Tree has substituted type parameters. + {BUG_ID + FS + "pkg" + FS + "Child.html", +@@ -75,15 +77,15 @@ + }, + //Make sure "Direct Know Subclasses" omits type parameters + {BUG_ID + FS + "pkg" + FS + "Parent.html", +- "<STRONG>Direct Known Subclasses:</STRONG> <DD><A HREF=\"../pkg/Child.html\" title=\"class in pkg\">Child</A>" ++ "<STRONG>Direct Known Subclasses:</STRONG></DT> <DD><A HREF=\"../pkg/Child.html\" title=\"class in pkg\">Child</A>" + }, + //Make sure "Specified By" has substituted type parameters. + {BUG_ID + FS + "pkg" + FS + "Child.html", +- "<STRONG>Specified by:</STRONG><DD><CODE><A HREF=\"../pkg/Interface.html#method()\">method</A></CODE> in interface <CODE><A HREF=\"../pkg/Interface.html\" title=\"interface in pkg\">Interface</A><<A HREF=\"../pkg/Child.html\" title=\"type parameter in Child\">T</A>></CODE>" ++ "<STRONG>Specified by:</STRONG></DT><DD><CODE><A HREF=\"../pkg/Interface.html#method()\">method</A></CODE> in interface <CODE><A HREF=\"../pkg/Interface.html\" title=\"interface in pkg\">Interface</A><<A HREF=\"../pkg/Child.html\" title=\"type parameter in Child\">T</A>></CODE>" + }, + //Make sure "Overrides" has substituted type parameters. + {BUG_ID + FS + "pkg" + FS + "Child.html", +- "<STRONG>Overrides:</STRONG><DD><CODE><A HREF=\"../pkg/Parent.html#method()\">method</A></CODE> in class <CODE><A HREF=\"../pkg/Parent.html\" title=\"class in pkg\">Parent</A><<A HREF=\"../pkg/Child.html\" title=\"type parameter in Child\">T</A>></CODE>" ++ "<STRONG>Overrides:</STRONG></DT><DD><CODE><A HREF=\"../pkg/Parent.html#method()\">method</A></CODE> in class <CODE><A HREF=\"../pkg/Parent.html\" title=\"class in pkg\">Parent</A><<A HREF=\"../pkg/Child.html\" title=\"type parameter in Child\">T</A>></CODE>" + }, + }; + private static final String[][] NEGATED_TEST = { +diff --git a/test/com/sun/javadoc/testLinkOption/TestLinkOption.java b/test/com/sun/javadoc/testLinkOption/TestLinkOption.java +--- langtools/test/com/sun/javadoc/testLinkOption/TestLinkOption.java ++++ langtools/test/com/sun/javadoc/testLinkOption/TestLinkOption.java +@@ -63,7 +63,8 @@ + "title=\"class or interface in java.lang\">Object</A> p3)" + }, + {BUG_ID + "-1" + FS + "java" + FS + "lang" + FS + "StringBuilderChild.html", +- "public abstract class <STRONG>StringBuilderChild</STRONG><DT>extends <A HREF=\"http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html?is-external=true\" title=\"class or interface in java.lang\">Object</A>" ++ "public abstract class <STRONG>StringBuilderChild</STRONG>" + NL + ++ "extends <A HREF=\"http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html?is-external=true\" title=\"class or interface in java.lang\">Object</A>" + }, + + }; +diff --git a/test/com/sun/javadoc/testLinkTaglet/TestLinkTaglet.java b/test/com/sun/javadoc/testLinkTaglet/TestLinkTaglet.java +--- langtools/test/com/sun/javadoc/testLinkTaglet/TestLinkTaglet.java ++++ langtools/test/com/sun/javadoc/testLinkTaglet/TestLinkTaglet.java +@@ -59,7 +59,7 @@ + " Link to another inner class: <A HREF=\"../pkg/C.InnerC2.html\" title=\"class in pkg\"><CODE>C.InnerC2</CODE></A>" + }, + {BUG_ID + FS + "pkg" + FS + "C.InnerC2.html", +- "Enclosing class:</STRONG><DD><A HREF=\"../pkg/C.html\" title=\"class in pkg\">C</A>" ++ "Enclosing class:</STRONG></DT><DD><A HREF=\"../pkg/C.html\" title=\"class in pkg\">C</A>" + }, + }; + private static final String[][] NEGATED_TEST = { +diff --git a/test/com/sun/javadoc/testMemberInheritence/TestMemberInheritence.java b/test/com/sun/javadoc/testMemberInheritence/TestMemberInheritence.java +--- langtools/test/com/sun/javadoc/testMemberInheritence/TestMemberInheritence.java ++++ langtools/test/com/sun/javadoc/testMemberInheritence/TestMemberInheritence.java +@@ -74,7 +74,7 @@ + + // Test overriding/implementing methods with generic parameters. + {BUG_ID + FS + "pkg" + FS + "BaseClass.html", +- "<DT><STRONG>Specified by:</STRONG><DD><CODE><A HREF=\"../pkg/BaseInterface.html#getAnnotation(java.lang.Class)\">getAnnotation</A></CODE> in interface <CODE><A HREF=\"../pkg/BaseInterface.html\" title=\"interface in pkg\">BaseInterface</A></CODE></DL>"}, ++ "<DT><STRONG>Specified by:</STRONG></DT><DD><CODE><A HREF=\"../pkg/BaseInterface.html#getAnnotation(java.lang.Class)\">getAnnotation</A></CODE> in interface <CODE><A HREF=\"../pkg/BaseInterface.html\" title=\"interface in pkg\">BaseInterface</A></CODE></DD>"+NL+"</DL>"}, + + // Test diamond inheritence member summary (6256068) + {BUG_ID + FS + "diamond" + FS + "Z.html", +diff --git a/test/com/sun/javadoc/testNewLanguageFeatures/TestNewLanguageFeatures.java b/test/com/sun/javadoc/testNewLanguageFeatures/TestNewLanguageFeatures.java +--- langtools/test/com/sun/javadoc/testNewLanguageFeatures/TestNewLanguageFeatures.java ++++ langtools/test/com/sun/javadoc/testNewLanguageFeatures/TestNewLanguageFeatures.java +@@ -54,7 +54,7 @@ + {BUG_ID + FS + "pkg" + FS + "Coin.html", "Enum Coin</H2>"}, + //Make sure enum signature is correct. + {BUG_ID + FS + "pkg" + FS + "Coin.html", "public enum "+ +- "<STRONG>Coin</STRONG><DT>extends java.lang.Enum<" + ++ "<STRONG>Coin</STRONG>" + NL + "extends java.lang.Enum<" + + "<A HREF=\"../pkg/Coin.html\" title=\"enum in pkg\">Coin</A>>" + }, + //Check for enum constant section +@@ -79,20 +79,20 @@ + "Class TypeParameters<E></H2>"}, + //Check class type parameters section. + {BUG_ID + FS + "pkg" + FS + "TypeParameters.html", +- "<DT><STRONG>Type Parameters:</STRONG><DD><CODE>E</CODE> - " + ++ "<DT><STRONG>Type Parameters:</STRONG></DT><DD><CODE>E</CODE> - " + + "the type parameter for this class."}, + //Type parameters in @see/@link + {BUG_ID + FS + "pkg" + FS + "TypeParameters.html", +- "<DT><STRONG>See Also:</STRONG><DD><A HREF=\"../pkg/TypeParameters.html\" " + +- "title=\"class in pkg\"><CODE>TypeParameters</CODE></A></DL>"}, ++ "<DT><STRONG>See Also:</STRONG></DT><DD><A HREF=\"../pkg/TypeParameters.html\" " + ++ "title=\"class in pkg\"><CODE>TypeParameters</CODE></A></DD></DL>"}, + //Method that uses class type parameter. + {BUG_ID + FS + "pkg" + FS + "TypeParameters.html", + "(<A HREF=\"../pkg/TypeParameters.html\" title=\"type " + + "parameter in TypeParameters\">E</A> param)"}, + //Method type parameter section. + {BUG_ID + FS + "pkg" + FS + "TypeParameters.html", +- "<STRONG>Type Parameters:</STRONG><DD><CODE>T</CODE> - This is the first " + +- "type parameter.<DD><CODE>V</CODE> - This is the second type " + ++ "<STRONG>Type Parameters:</STRONG></DT><DD><CODE>T</CODE> - This is the first " + ++ "type parameter.</DD><DD><CODE>V</CODE> - This is the second type " + + "parameter."}, + //Signature of method with type parameters + {BUG_ID + FS + "pkg" + FS + "TypeParameters.html", +@@ -117,17 +117,17 @@ + //Signature of subclass that has type parameters. + {BUG_ID + FS + "pkg" + FS + "TypeParameterSubClass.html", + "public class <STRONG>TypeParameterSubClass<T extends java.lang.String>" + +- "</STRONG><DT>extends <A HREF=\"../pkg/TypeParameterSuperClass.html\" " + ++ "</STRONG>" + NL + "extends <A HREF=\"../pkg/TypeParameterSuperClass.html\" " + + "title=\"class in pkg\">TypeParameterSuperClass</A><T>"}, + + //Interface generic parameter substitution + //Signature of subclass that has type parameters. + {BUG_ID + FS + "pkg" + FS + "TypeParameters.html", +- "<STRONG>All Implemented Interfaces:</STRONG> <DD><A HREF=\"../pkg/SubInterface.html\" title=\"interface in pkg\">SubInterface</A><E>, <A HREF=\"../pkg/SuperInterface.html\" title=\"interface in pkg\">SuperInterface</A><E></DD>"}, ++ "<STRONG>All Implemented Interfaces:</STRONG></DT> <DD><A HREF=\"../pkg/SubInterface.html\" title=\"interface in pkg\">SubInterface</A><E>, <A HREF=\"../pkg/SuperInterface.html\" title=\"interface in pkg\">SuperInterface</A><E></DD>"}, + {BUG_ID + FS + "pkg" + FS + "SuperInterface.html", +- "<STRONG>All Known Subinterfaces:</STRONG> <DD><A HREF=\"../pkg/SubInterface.html\" title=\"interface in pkg\">SubInterface</A><V></DD>"}, ++ "<STRONG>All Known Subinterfaces:</STRONG></DT> <DD><A HREF=\"../pkg/SubInterface.html\" title=\"interface in pkg\">SubInterface</A><V></DD>"}, + {BUG_ID + FS + "pkg" + FS + "SubInterface.html", +- "<STRONG>All Superinterfaces:</STRONG> <DD><A HREF=\"../pkg/SuperInterface.html\" title=\"interface in pkg\">SuperInterface</A><V></DD>"}, ++ "<STRONG>All Superinterfaces:</STRONG></DT> <DD><A HREF=\"../pkg/SuperInterface.html\" title=\"interface in pkg\">SuperInterface</A><V></DD>"}, + + //================================= + // VAR ARG TESTING +@@ -166,7 +166,7 @@ + "Element Detail"}, + //Make sure default annotation type value is printed when necessary. + {BUG_ID + FS + "pkg" + FS + "AnnotationType.html", +- "<STRONG>Default:</STRONG><DD>\"unknown\"</DD>"}, ++ "<STRONG>Default:</STRONG></DT><DD>\"unknown\"</DD>"}, + + //================================= + // ANNOTATION TYPE USAGE TESTING +@@ -182,7 +182,8 @@ + "<FONT SIZE=\"-1\">" + + "<A HREF=\"../pkg/AnnotationType.html\" title=\"annotation in pkg\">@AnnotationType</A>(<A HREF=\"../pkg/AnnotationType.html#optional()\">optional</A>=\"Class Annotation\","+NL + + " <A HREF=\"../pkg/AnnotationType.html#required()\">required</A>=1994)"+NL + +- "</FONT>public class <STRONG>AnnotationTypeUsage</STRONG><DT>extends java.lang.Object</DL>"}, ++ "</FONT>public class <STRONG>AnnotationTypeUsage</STRONG>" + NL + ++ "extends java.lang.Object"}, + + //FIELD + {BUG_ID + FS + "pkg" + FS + "AnnotationTypeUsage.html", +@@ -270,8 +271,7 @@ + {BUG_ID + FS + "pkg1" + FS + "B.html", + "<PRE><FONT SIZE=\"-1\"><A HREF=\"../pkg1/A.html\" title=\"annotation in pkg1\">@A</A>"}, + {BUG_ID + FS + "pkg1" + FS + "B.html", +- "</FONT>public interface <STRONG>B</STRONG></DL>" + NL + +- "</PRE>"}, ++ "</FONT>public interface <STRONG>B</STRONG></PRE>"}, + + + //============================================================== +@@ -525,7 +525,7 @@ + "<FONT SIZE=\"-1\">" + NL + + "<A HREF=\"../pkg/AnnotationTypeUndocumented.html\" title=\"annotation in pkg\">@AnnotationTypeUndocumented</A>(<A HREF=\"../pkg/AnnotationType.html#optional\">optional</A>=\"Class Annotation\"," + NL + + " <A HREF=\"../pkg/AnnotationType.html#required\">required</A>=1994)" + NL + +- "</FONT>public class <STRONG>AnnotationTypeUsage</STRONG><DT>extends java.lang.Object</DL>"}, ++ "</FONT>public class <STRONG>AnnotationTypeUsage</STRONG></DT><DT>extends java.lang.Object</DT></DL>"}, + + //FIELD + {BUG_ID + FS + "pkg" + FS + "AnnotationTypeUsage.html", +diff --git a/test/com/sun/javadoc/testOverridenMethods/TestOverridenPrivateMethods.java b/test/com/sun/javadoc/testOverridenMethods/TestOverridenPrivateMethods.java +--- langtools/test/com/sun/javadoc/testOverridenMethods/TestOverridenPrivateMethods.java ++++ langtools/test/com/sun/javadoc/testOverridenMethods/TestOverridenPrivateMethods.java +@@ -40,11 +40,11 @@ + private static final String[][] TEST = { + //The public method should be overriden + {BUG_ID + FS + "pkg1" + FS + "SubClass.html", +- "Overrides:</STRONG><DD><CODE><A HREF=\"../pkg1/BaseClass.html#publicMethod"}, ++ "Overrides:</STRONG></DT><DD><CODE><A HREF=\"../pkg1/BaseClass.html#publicMethod"}, + + //The public method in different package should be overriden + {BUG_ID + FS + "pkg2" + FS + "SubClass.html", +- "Overrides:</STRONG><DD><CODE><A HREF=\"../pkg1/BaseClass.html#publicMethod"} ++ "Overrides:</STRONG></DT><DD><CODE><A HREF=\"../pkg1/BaseClass.html#publicMethod"} + }; + + private static final String[][] NEGATED_TEST = { +@@ -52,20 +52,20 @@ + //The package private method should be overriden since the base and sub class are in the same + //package. However, the link should not show up because the package private methods are not documented. + {BUG_ID + FS + "pkg1" + FS + "SubClass.html", +- "Overrides:</STRONG><DD><CODE><A HREF=\"../pkg1/BaseClass.html#packagePrivateMethod"}, ++ "Overrides:</STRONG></DT><DD><CODE><A HREF=\"../pkg1/BaseClass.html#packagePrivateMethod"}, + + //The private method in should not be overriden + {BUG_ID + FS + "pkg1" + FS + "SubClass.html", +- "Overrides:</STRONG><DD><CODE><A HREF=\"../pkg1/BaseClass.html#privateMethod"}, ++ "Overrides:</STRONG></DT><DD><CODE><A HREF=\"../pkg1/BaseClass.html#privateMethod"}, + + //The private method in different package should not be overriden + {BUG_ID + FS + "pkg2" + FS + "SubClass.html", +- "Overrides:</STRONG><DD><CODE><A HREF=\"../pkg1/BaseClass.html#privateMethod"}, ++ "Overrides:</STRONG></DT><DD><CODE><A HREF=\"../pkg1/BaseClass.html#privateMethod"}, + + //The package private method should not be overriden since the base and sub class are in + //different packages. + {BUG_ID + FS + "pkg2" + FS + "SubClass.html", +- "Overrides:</STRONG><DD><CODE><A HREF=\"../pkg1/BaseClass.html#packagePrivateMethod"} ++ "Overrides:</STRONG></DT><DD><CODE><A HREF=\"../pkg1/BaseClass.html#packagePrivateMethod"} + }; + + private static final String[] ARGS = +diff --git a/test/com/sun/javadoc/testOverridenMethods/TestOverridenPrivateMethodsWithPackageFlag.java b/test/com/sun/javadoc/testOverridenMethods/TestOverridenPrivateMethodsWithPackageFlag.java +--- langtools/test/com/sun/javadoc/testOverridenMethods/TestOverridenPrivateMethodsWithPackageFlag.java ++++ langtools/test/com/sun/javadoc/testOverridenMethods/TestOverridenPrivateMethodsWithPackageFlag.java +@@ -40,32 +40,32 @@ + private static final String[][] TEST = { + //The public method should be overriden + {BUG_ID + FS + "pkg1" + FS + "SubClass.html", +- "Overrides:</STRONG><DD><CODE><A HREF=\"../pkg1/BaseClass.html#publicMethod"}, ++ "Overrides:</STRONG></DT><DD><CODE><A HREF=\"../pkg1/BaseClass.html#publicMethod"}, + + //The public method in different package should be overriden + {BUG_ID + FS + "pkg2" + FS + "SubClass.html", +- "Overrides:</STRONG><DD><CODE><A HREF=\"../pkg1/BaseClass.html#publicMethod"}, ++ "Overrides:</STRONG></DT><DD><CODE><A HREF=\"../pkg1/BaseClass.html#publicMethod"}, + + //The package private method should be overriden since the base and sub class are in the same + //package. + {BUG_ID + FS + "pkg1" + FS + "SubClass.html", +- "Overrides:</STRONG><DD><CODE><A HREF=\"../pkg1/BaseClass.html#packagePrivateMethod"} ++ "Overrides:</STRONG></DT><DD><CODE><A HREF=\"../pkg1/BaseClass.html#packagePrivateMethod"} + }; + + private static final String[][] NEGATED_TEST = { + + //The private method in should not be overriden + {BUG_ID + FS + "pkg1" + FS + "SubClass.html", +- "Overrides:</STRONG><DD><CODE><A HREF=\"../pkg1/BaseClass.html#privateMethod"}, ++ "Overrides:</STRONG></DT><DD><CODE><A HREF=\"../pkg1/BaseClass.html#privateMethod"}, + + //The private method in different package should not be overriden + {BUG_ID + FS + "pkg2" + FS + "SubClass.html", +- "Overrides:</STRONG><DD><CODE><A HREF=\"../pkg1/BaseClass.html#privateMethod"}, ++ "Overrides:</STRONG></DT><DD><CODE><A HREF=\"../pkg1/BaseClass.html#privateMethod"}, + + //The package private method should not be overriden since the base and sub class are in + //different packages. + {BUG_ID + FS + "pkg2" + FS + "SubClass.html", +- "Overrides:</STRONG><DD><CODE><A HREF=\"../pkg1/BaseClass.html#packagePrivateMethod"}, ++ "Overrides:</STRONG></DT><DD><CODE><A HREF=\"../pkg1/BaseClass.html#packagePrivateMethod"}, + }; + + private static final String[] ARGS = +diff --git a/test/com/sun/javadoc/testOverridenMethods/TestOverridenPrivateMethodsWithPrivateFlag.java b/test/com/sun/javadoc/testOverridenMethods/TestOverridenPrivateMethodsWithPrivateFlag.java +--- langtools/test/com/sun/javadoc/testOverridenMethods/TestOverridenPrivateMethodsWithPrivateFlag.java ++++ langtools/test/com/sun/javadoc/testOverridenMethods/TestOverridenPrivateMethodsWithPrivateFlag.java +@@ -40,32 +40,32 @@ + private static final String[][] TEST = { + //The public method should be overriden + {BUG_ID + FS + "pkg1" + FS + "SubClass.html", +- "Overrides:</STRONG><DD><CODE><A HREF=\"../pkg1/BaseClass.html#publicMethod"}, ++ "Overrides:</STRONG></DT><DD><CODE><A HREF=\"../pkg1/BaseClass.html#publicMethod"}, + + //The package private method should be overriden since the base and sub class are in the same + //package. + {BUG_ID + FS + "pkg1" + FS + "SubClass.html", +- "Overrides:</STRONG><DD><CODE><A HREF=\"../pkg1/BaseClass.html#packagePrivateMethod"}, ++ "Overrides:</STRONG></DT><DD><CODE><A HREF=\"../pkg1/BaseClass.html#packagePrivateMethod"}, + + //The public method in different package should be overriden + {BUG_ID + FS + "pkg2" + FS + "SubClass.html", +- "Overrides:</STRONG><DD><CODE><A HREF=\"../pkg1/BaseClass.html#publicMethod"}, ++ "Overrides:</STRONG></DT><DD><CODE><A HREF=\"../pkg1/BaseClass.html#publicMethod"}, + }; + + private static final String[][] NEGATED_TEST = { + + //The private method in should not be overriden + {BUG_ID + FS + "pkg1" + FS + "SubClass.html", +- "Overrides:</STRONG><DD><CODE><A HREF=\"../pkg1/BaseClass.html#privateMethod"}, ++ "Overrides:</STRONG></DT><DD><CODE><A HREF=\"../pkg1/BaseClass.html#privateMethod"}, + + //The private method in different package should not be overriden + {BUG_ID + FS + "pkg2" + FS + "SubClass.html", +- "Overrides:</STRONG><DD><CODE><A HREF=\"../pkg1/BaseClass.html#privateMethod"}, ++ "Overrides:</STRONG></DT><DD><CODE><A HREF=\"../pkg1/BaseClass.html#privateMethod"}, + + //The package private method should not be overriden since the base and sub class are in + //different packages. + {BUG_ID + FS + "pkg2" + FS + "SubClass.html", +- "Overrides:</STRONG><DD><CODE><A HREF=\"../pkg1/BaseClass.html#packagePrivateMethod"} ++ "Overrides:</STRONG></DT><DD><CODE><A HREF=\"../pkg1/BaseClass.html#packagePrivateMethod"} + + + }; +diff --git a/test/com/sun/javadoc/testParamTaglet/TestParamTaglet.java b/test/com/sun/javadoc/testParamTaglet/TestParamTaglet.java +--- langtools/test/com/sun/javadoc/testParamTaglet/TestParamTaglet.java ++++ langtools/test/com/sun/javadoc/testParamTaglet/TestParamTaglet.java +@@ -48,12 +48,12 @@ + private static final String[][] TEST = { + //Regular param tags. + {BUG_ID + FS + "pkg" + FS + "C.html", +- "<STRONG>Parameters:</STRONG><DD><CODE>param1</CODE> - testing 1 2 3." + ++ "<STRONG>Parameters:</STRONG></DT><DD><CODE>param1</CODE> - testing 1 2 3.</DD>" + + "<DD><CODE>param2</CODE> - testing 1 2 3." + }, + //Param tags that don't match with any real parameters. + {BUG_ID + FS + "pkg" + FS + "C.html", +- "<STRONG>Parameters:</STRONG><DD><CODE><I>p1</I></CODE> - testing 1 2 3." + ++ "<STRONG>Parameters:</STRONG></DT><DD><CODE><I>p1</I></CODE> - testing 1 2 3.</DD>" + + "<DD><CODE><I>p2</I></CODE> - testing 1 2 3." + }, + //{@inherit} doc misuse does not cause doclet to throw exception. +diff --git a/test/com/sun/javadoc/testPrivateClasses/TestPrivateClasses.java b/test/com/sun/javadoc/testPrivateClasses/TestPrivateClasses.java +--- langtools/test/com/sun/javadoc/testPrivateClasses/TestPrivateClasses.java ++++ langtools/test/com/sun/javadoc/testPrivateClasses/TestPrivateClasses.java +@@ -96,11 +96,11 @@ + + //Make sure implemented interfaces from private superclass are inherited + {BUG_ID + "-1" + FS + "pkg" + FS + "PublicInterface.html", +- "<STRONG>All Known Implementing Classes:</STRONG> <DD><A HREF=\"../pkg/PublicChild.html\" " + ++ "<STRONG>All Known Implementing Classes:</STRONG></DT> <DD><A HREF=\"../pkg/PublicChild.html\" " + + "title=\"class in pkg\">PublicChild</A>"}, + + {BUG_ID + "-1" + FS + "pkg" + FS + "PublicChild.html", +- "<STRONG>All Implemented Interfaces:</STRONG> <DD><A HREF=\"../pkg/PublicInterface.html\" " + ++ "<STRONG>All Implemented Interfaces:</STRONG></DT> <DD><A HREF=\"../pkg/PublicInterface.html\" " + + "title=\"interface in pkg\">PublicInterface</A>"}, + + //Generic interface method test. +@@ -174,18 +174,18 @@ + }, + // Should document that a method overrides method from private class. + {BUG_ID + "-2" + FS + "pkg" + FS + "PublicChild.html", +- "<STRONG>Overrides:</STRONG><DD><CODE>" + ++ "<STRONG>Overrides:</STRONG></DT><DD><CODE>" + + "<A HREF=\"../pkg/PrivateParent.html#methodOverridenFromParent(char[], int, T, V, java.util.List)\">" + + "methodOverridenFromParent</A></CODE> in class <CODE>" + + "<A HREF=\"../pkg/PrivateParent.html\" title=\"class in pkg\">" + +- "PrivateParent</A></CODE></DL>"}, ++ "PrivateParent</A></CODE></DD>" + NL + "</DL>"}, + // Should document that a method is specified by private interface. + {BUG_ID + "-2" + FS + "pkg" + FS + "PublicChild.html", +- "<STRONG>Specified by:</STRONG><DD><CODE>" + ++ "<STRONG>Specified by:</STRONG></DT><DD><CODE>" + + "<A HREF=\"../pkg/PrivateInterface.html#methodInterface(int)\">" + + "methodInterface</A></CODE> in interface <CODE>" + + "<A HREF=\"../pkg/PrivateInterface.html\" title=\"interface in pkg\">" + +- "PrivateInterface</A></CODE></DL>" + NL + "</DD>"}, ++ "PrivateInterface</A></CODE></DD>" + NL + "</DL>" + NL + "</DD>"}, + // Method inheritence from non-public superinterface. + {BUG_ID + "-2" + FS + "pkg" + FS + "PublicInterface.html", + "Methods inherited from interface " + +@@ -209,12 +209,12 @@ + + //Make sure implemented interfaces from private superclass are inherited + {BUG_ID + "-2" + FS + "pkg" + FS + "PublicInterface.html", +- "<STRONG>All Known Implementing Classes:</STRONG> <DD><A HREF=\"../pkg/PrivateParent.html\" " + ++ "<STRONG>All Known Implementing Classes:</STRONG></DT> <DD><A HREF=\"../pkg/PrivateParent.html\" " + + "title=\"class in pkg\">PrivateParent</A>, " + + "<A HREF=\"../pkg/PublicChild.html\" title=\"class in pkg\">PublicChild</A>"}, + + {BUG_ID + "-2" + FS + "pkg" + FS + "PublicChild.html", +- "<STRONG>All Implemented Interfaces:</STRONG> <DD><A HREF=\"../pkg/PrivateInterface.html\" " + ++ "<STRONG>All Implemented Interfaces:</STRONG></DT> <DD><A HREF=\"../pkg/PrivateInterface.html\" " + + "title=\"interface in pkg\">PrivateInterface</A>, " + + "<A HREF=\"../pkg/PublicInterface.html\" title=\"interface in pkg\">" + + "PublicInterface</A>"}, +@@ -226,7 +226,7 @@ + "<CODE><A HREF=\"../pkg2/I.html#hello(T)\">I</A></CODE></STRONG>"}, + + {BUG_ID + "-2" + FS + "pkg2" + FS + "C.html", +- "<STRONG>Specified by:</STRONG><DD><CODE><A HREF=\"../pkg2/I.html#hello(T)\">" + ++ "<STRONG>Specified by:</STRONG></DT><DD><CODE><A HREF=\"../pkg2/I.html#hello(T)\">" + + "hello</A></CODE> in interface <CODE><A HREF=\"../pkg2/I.html\" " + + "title=\"interface in pkg2\">I</A>"}, + }; +diff --git a/test/com/sun/javadoc/testSerializedFormDeprecationInfo/TestSerializedFormDeprecationInfo.java b/test/com/sun/javadoc/testSerializedFormDeprecationInfo/TestSerializedFormDeprecationInfo.java +--- langtools/test/com/sun/javadoc/testSerializedFormDeprecationInfo/TestSerializedFormDeprecationInfo.java ++++ langtools/test/com/sun/javadoc/testSerializedFormDeprecationInfo/TestSerializedFormDeprecationInfo.java +@@ -41,39 +41,39 @@ + // Test for normal run of javadoc. The serialized-form.html should + // display the inline comments, tags and deprecation information if any. + private static final String[][] TEST_CMNT_DEPR = { +- {BUG_ID + FS + "serialized-form.html", "<DL>" + NL + "<DD><DL>" + NL + NL + +- "<DT><STRONG>Throws:</STRONG>" + NL + "<DD><CODE>" + +- "java.io.IOException</CODE><DT><STRONG>See Also:</STRONG>" + +- "<DD><A HREF=\"pkg1/C1.html#setUndecorated(boolean)\">" + +- "<CODE>C1.setUndecorated(boolean)</CODE></A></DD>" + NL + +- "</DL>" + NL + "</DL>"}, ++ {BUG_ID + FS + "serialized-form.html", "<DL>" + NL + "<DD><DL>" + NL + ++ "<DT><STRONG>Throws:</STRONG></DT>" + NL + "<DD><CODE>" + ++ "java.io.IOException</CODE></DD><DT><STRONG>See Also:</STRONG>" + ++ "</DT><DD><A HREF=\"pkg1/C1.html#setUndecorated(boolean)\">" + ++ "<CODE>C1.setUndecorated(boolean)</CODE></A></DD></DL>" + NL + ++ "</DD>" + NL + "</DL>"}, + {BUG_ID + FS + "serialized-form.html", "<DL>" + NL + +- "<DD><STRONG>Deprecated.</STRONG> <I>As of JDK version" + +- " 1.5, replaced by" + NL + ++ "<DD><STRONG>Deprecated.</STRONG> <I>As of JDK version " + ++ "1.5, replaced by" + NL + + " <A HREF=\"pkg1/C1.html#setUndecorated(boolean)\">" + +- "<CODE>setUndecorated(boolean)</CODE></A>.</I>" + ++ "<CODE>setUndecorated(boolean)</CODE></A>.</I></DD>" + + "<DD>This field indicates whether the C1 is undecorated." + NL + +- "<P>" + NL + "<DT><DD> <DL>" + NL + +- "<DT><STRONG>Since:</STRONG></DT>" + NL + ++ "<P>" + NL + "</DD>" + NL + "<DD> </DD>" + NL + ++ "<DD><DL>" + NL + "<DT><STRONG>Since:</STRONG></DT>" + NL + + " <DD>1.4</DD>" + NL + "<DT><STRONG>See Also:</STRONG>" + +- "<DD><A HREF=\"pkg1/C1.html#setUndecorated(boolean)\">" + +- "<CODE>C1.setUndecorated(boolean)</CODE></A></DL>" + NL + +- "</DL>"}, ++ "</DT><DD><A HREF=\"pkg1/C1.html#setUndecorated(boolean)\">" + ++ "<CODE>C1.setUndecorated(boolean)</CODE></A></DD></DL>" + NL + ++ "</DD>" + NL + "</DL>"}, + {BUG_ID + FS + "serialized-form.html", "<DL>" + NL + + "<DD><STRONG>Deprecated.</STRONG> <I>As of JDK version" + + " 1.5, replaced by" + NL + + " <A HREF=\"pkg1/C1.html#setUndecorated(boolean)\">" + + "<CODE>setUndecorated(boolean)</CODE></A>.</I>" + NL + "<P>" + NL + +- "<DD>Reads the object stream." + NL + "<P>" + NL + +- "<DD><DL>" + NL + NL + "<DT><STRONG>Throws:" + +- "</STRONG>" + NL + "<DD><CODE><code>" + +- "IOException</code></CODE>" + NL + +- "<DD><CODE>java.io.IOException</CODE></DD>" + NL + +- "</DL>" + NL + "</DL>"}, ++ "</DD><DD>Reads the object stream." + NL + "<P>" + NL + ++ "</DD>" + NL + "<DD><DL>" + NL + "<DT><STRONG>Throws:" + ++ "</STRONG></DT>" + NL + "<DD><CODE><code>" + ++ "IOException</code></CODE></DD>" + NL + ++ "<DD><CODE>java.io.IOException</CODE></DD></DL>" + NL + ++ "</DD>" + NL + "</DL>"}, + {BUG_ID + FS + "serialized-form.html", "<DL>" + NL + +- "<DD><STRONG>Deprecated.</STRONG> <DD>" + +- "The name for this class." + NL + "<P>" + NL + +- "<DT><DD> <DL>" + NL + "</DL>" + NL + "</DL>"}}; ++ "<DD><STRONG>Deprecated.</STRONG> </DD><DD>" + ++ "The name for this class." + NL + "<P>" + NL + "</DD>" + NL + ++ "<DD> </DD>" + NL + "</DL>"}}; + + // Test with -nocomment option. The serialized-form.html should + // not display the inline comments and tags but should display deprecation +@@ -83,16 +83,16 @@ + "undecorated</STRONG></PRE>" + NL + "<DL>" + NL + "<DD><STRONG>" + + "Deprecated.</STRONG> <I>As of JDK version 1.5, replaced by" + NL + + " <A HREF=\"pkg1/C1.html#setUndecorated(boolean)\"><CODE>" + +- "setUndecorated(boolean)</CODE></A>.</I></DL>"}, ++ "setUndecorated(boolean)</CODE></A>.</I></DD></DL>"}, + {BUG_ID + FS + "serialized-form.html", "<DL>" + NL + "<DD><STRONG>" + + "Deprecated.</STRONG> <I>As of JDK version" + + " 1.5, replaced by" + NL + + " <A HREF=\"pkg1/C1.html#setUndecorated(boolean)\">" + + "<CODE>setUndecorated(boolean)</CODE></A>.</I>" + NL + "<P>" + NL + +- "</DL>"}, ++ "</DD></DL>"}, + {BUG_ID + FS + "serialized-form.html", "<PRE>" + NL + "int <STRONG>" + + "publicKey</STRONG></PRE>" + NL + "<DL>" + NL + "<DD><STRONG>" + +- "Deprecated.</STRONG> </DL>"}}; ++ "Deprecated.</STRONG> </DD></DL>"}}; + + // Test with -nodeprecated option. The serialized-form.html should + // ignore the -nodeprecated tag and display the deprecation info. This +diff --git a/test/com/sun/javadoc/testThrowsTag/TestThrowsTag.java b/test/com/sun/javadoc/testThrowsTag/TestThrowsTag.java +--- langtools/test/com/sun/javadoc/testThrowsTag/TestThrowsTag.java ++++ langtools/test/com/sun/javadoc/testThrowsTag/TestThrowsTag.java +@@ -46,14 +46,14 @@ + //Input for string search tests. + private static final String[][] TEST = { + {BUG_ID + FS + "pkg" + FS + "C.html", +- "<DD><CODE><A HREF=\"../pkg/T1.html\" title=\"class in pkg\">T1</A></CODE> - the first throws tag." + NL + +- "<DD><CODE><A HREF=\"../pkg/T2.html\" title=\"class in pkg\">T2</A></CODE> - the second throws tag." + NL + +- "<DD><CODE><A HREF=\"../pkg/T3.html\" title=\"class in pkg\">T3</A></CODE> - the third throws tag." + NL + +- "<DD><CODE><A HREF=\"../pkg/T4.html\" title=\"class in pkg\">T4</A></CODE> - the fourth throws tag." + NL + +- "<DD><CODE><A HREF=\"../pkg/T5.html\" title=\"class in pkg\">T5</A></CODE> - the first inherited throws tag." + NL + +- "<DD><CODE><A HREF=\"../pkg/T6.html\" title=\"class in pkg\">T6</A></CODE> - the second inherited throws tag." + NL + +- "<DD><CODE><A HREF=\"../pkg/T7.html\" title=\"class in pkg\">T7</A></CODE> - the third inherited throws tag." + NL + +- "<DD><CODE><A HREF=\"../pkg/T8.html\" title=\"class in pkg\">T8</A></CODE> - the fourth inherited throws tag." ++ "<DD><CODE><A HREF=\"../pkg/T1.html\" title=\"class in pkg\">T1</A></CODE> - the first throws tag.</DD>" + NL + ++ "<DD><CODE><A HREF=\"../pkg/T2.html\" title=\"class in pkg\">T2</A></CODE> - the second throws tag.</DD>" + NL + ++ "<DD><CODE><A HREF=\"../pkg/T3.html\" title=\"class in pkg\">T3</A></CODE> - the third throws tag.</DD>" + NL + ++ "<DD><CODE><A HREF=\"../pkg/T4.html\" title=\"class in pkg\">T4</A></CODE> - the fourth throws tag.</DD>" + NL + ++ "<DD><CODE><A HREF=\"../pkg/T5.html\" title=\"class in pkg\">T5</A></CODE> - the first inherited throws tag.</DD>" + NL + ++ "<DD><CODE><A HREF=\"../pkg/T6.html\" title=\"class in pkg\">T6</A></CODE> - the second inherited throws tag.</DD>" + NL + ++ "<DD><CODE><A HREF=\"../pkg/T7.html\" title=\"class in pkg\">T7</A></CODE> - the third inherited throws tag.</DD>" + NL + ++ "<DD><CODE><A HREF=\"../pkg/T8.html\" title=\"class in pkg\">T8</A></CODE> - the fourth inherited throws tag.</DD>" + }, + }; + private static final String[][] NEGATED_TEST = NO_TEST; |