Merge

Mon, 02 Mar 2009 15:11:29 -0800

author
tbell
date
Mon, 02 Mar 2009 15:11:29 -0800
changeset 234
2f4c4900ca2b
parent 227
46f2f6ed96f1
parent 233
5240b1120530
child 235
850869f70213

Merge

     1.1 --- a/src/share/classes/com/sun/tools/doclets/formats/html/AbstractIndexWriter.java	Fri Feb 27 10:54:11 2009 -0800
     1.2 +++ b/src/share/classes/com/sun/tools/doclets/formats/html/AbstractIndexWriter.java	Mon Mar 02 15:11:29 2009 -0800
     1.3 @@ -25,11 +25,11 @@
     1.4  
     1.5  package com.sun.tools.doclets.formats.html;
     1.6  
     1.7 -import com.sun.tools.doclets.internal.toolkit.util.*;
     1.8 +import java.io.*;
     1.9 +import java.util.*;
    1.10  
    1.11  import com.sun.javadoc.*;
    1.12 -import java.io.*;
    1.13 -import java.util.*;
    1.14 +import com.sun.tools.doclets.internal.toolkit.util.*;
    1.15  
    1.16  /**
    1.17   * Generate Index for all the Member Names with Indexing in
    1.18 @@ -100,18 +100,22 @@
    1.19          h2();
    1.20          strong(unicode.toString());
    1.21          h2End();
    1.22 -        dl();
    1.23 -        for (int i = 0; i < memberlist.size(); i++) {
    1.24 -            Doc element = memberlist.get(i);
    1.25 -            if (element instanceof MemberDoc) {
    1.26 -                printDescription((MemberDoc)element);
    1.27 -            } else if (element instanceof ClassDoc) {
    1.28 -                printDescription((ClassDoc)element);
    1.29 -            } else if (element instanceof PackageDoc) {
    1.30 -                printDescription((PackageDoc)element);
    1.31 +        int memberListSize = memberlist.size();
    1.32 +        // Display the list only if there are elements to be displayed.
    1.33 +        if (memberListSize > 0) {
    1.34 +            dl();
    1.35 +            for (int i = 0; i < memberListSize; i++) {
    1.36 +                Doc element = memberlist.get(i);
    1.37 +                if (element instanceof MemberDoc) {
    1.38 +                    printDescription((MemberDoc)element);
    1.39 +                } else if (element instanceof ClassDoc) {
    1.40 +                    printDescription((ClassDoc)element);
    1.41 +                } else if (element instanceof PackageDoc) {
    1.42 +                    printDescription((PackageDoc)element);
    1.43 +                }
    1.44              }
    1.45 +            dlEnd();
    1.46          }
    1.47 -        dlEnd();
    1.48          hr();
    1.49      }
    1.50  
    1.51 @@ -126,8 +130,10 @@
    1.52          printPackageLink(pkg, Util.getPackageName(pkg), true);
    1.53          print(" - ");
    1.54          print(configuration.getText("doclet.package") + " " + pkg.name());
    1.55 +        dtEnd();
    1.56          dd();
    1.57          printSummaryComment(pkg);
    1.58 +        ddEnd();
    1.59      }
    1.60  
    1.61      /**
    1.62 @@ -140,8 +146,10 @@
    1.63          printLink(new LinkInfoImpl(LinkInfoImpl.CONTEXT_INDEX, cd, true));
    1.64          print(" - ");
    1.65          printClassInfo(cd);
    1.66 +        dtEnd();
    1.67          dd();
    1.68          printComment(cd);
    1.69 +        ddEnd();
    1.70      }
    1.71  
    1.72      /**
    1.73 @@ -178,8 +186,10 @@
    1.74          println(" - ");
    1.75          printMemberDesc(member);
    1.76          println();
    1.77 +        dtEnd();
    1.78          dd();
    1.79          printComment(member);
    1.80 +        ddEnd();
    1.81          println();
    1.82      }
    1.83  
     2.1 --- a/src/share/classes/com/sun/tools/doclets/formats/html/AbstractMemberWriter.java	Fri Feb 27 10:54:11 2009 -0800
     2.2 +++ b/src/share/classes/com/sun/tools/doclets/formats/html/AbstractMemberWriter.java	Mon Mar 02 15:11:29 2009 -0800
     2.3 @@ -25,19 +25,20 @@
     2.4  
     2.5  package com.sun.tools.doclets.formats.html;
     2.6  
     2.7 +import java.lang.reflect.Modifier;
     2.8 +import java.util.*;
     2.9 +
    2.10 +import com.sun.javadoc.*;
    2.11  import com.sun.tools.doclets.internal.toolkit.util.*;
    2.12  import com.sun.tools.doclets.internal.toolkit.taglets.*;
    2.13  
    2.14 -import com.sun.javadoc.*;
    2.15 -import java.util.*;
    2.16 -import java.lang.reflect.Modifier;
    2.17 -
    2.18  /**
    2.19   * The base class for member writers.
    2.20   *
    2.21   * @author Robert Field
    2.22   * @author Atul M Dambalkar
    2.23   * @author Jamie Ho (Re-write)
    2.24 + * @author Bhavesh Patel (Modified)
    2.25   */
    2.26  public abstract class AbstractMemberWriter {
    2.27  
    2.28 @@ -232,10 +233,26 @@
    2.29          }
    2.30      }
    2.31  
    2.32 +    /**
    2.33 +     * Print the deprecated output for the given member.
    2.34 +     *
    2.35 +     * @param member the member being documented.
    2.36 +     */
    2.37 +    protected void printDeprecated(ProgramElementDoc member) {
    2.38 +        String output = (new DeprecatedTaglet()).getTagletOutput(member,
    2.39 +            writer.getTagletWriterInstance(false)).toString().trim();
    2.40 +        if (!output.isEmpty()) {
    2.41 +            writer.printMemberDetailsListStartTag();
    2.42 +            writer.print(output);
    2.43 +        }
    2.44 +    }
    2.45 +
    2.46      protected void printComment(ProgramElementDoc member) {
    2.47          if (member.inlineTags().length > 0) {
    2.48 +            writer.printMemberDetailsListStartTag();
    2.49              writer.dd();
    2.50              writer.printInlineComment(member);
    2.51 +            writer.ddEnd();
    2.52          }
    2.53      }
    2.54  
    2.55 @@ -267,6 +284,14 @@
    2.56      }
    2.57  
    2.58      /**
    2.59 +     * Write the member footer.
    2.60 +     */
    2.61 +    protected void printMemberFooter() {
    2.62 +        writer.printMemberDetailsListEndTag();
    2.63 +        assert !writer.getMemberDetailsListPrinted();
    2.64 +    }
    2.65 +
    2.66 +    /**
    2.67       * Forward to containing writer
    2.68       */
    2.69      public void printSummaryHeader(ClassDoc cd) {
     3.1 --- a/src/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeOptionalMemberWriterImpl.java	Fri Feb 27 10:54:11 2009 -0800
     3.2 +++ b/src/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeOptionalMemberWriterImpl.java	Mon Mar 02 15:11:29 2009 -0800
     3.3 @@ -25,10 +25,10 @@
     3.4  
     3.5  package com.sun.tools.doclets.formats.html;
     3.6  
     3.7 +import java.io.*;
     3.8 +
     3.9 +import com.sun.javadoc.*;
    3.10  import com.sun.tools.doclets.internal.toolkit.*;
    3.11 -import com.sun.javadoc.*;
    3.12 -
    3.13 -import java.io.*;
    3.14  
    3.15  /**
    3.16   * Writes annotation type optional member documentation in HTML format.
    3.17 @@ -63,14 +63,20 @@
    3.18       * {@inheritDoc}
    3.19       */
    3.20      public void writeDefaultValueInfo(MemberDoc member) {
    3.21 -        writer.dl();
    3.22 -        writer.dt();
    3.23 -        writer.strong(ConfigurationImpl.getInstance().
    3.24 -            getText("doclet.Default"));
    3.25 -        writer.dd();
    3.26 -        writer.print(((AnnotationTypeElementDoc) member).defaultValue());
    3.27 -        writer.ddEnd();
    3.28 -        writer.dlEnd();
    3.29 +        if (((AnnotationTypeElementDoc) member).defaultValue() != null) {
    3.30 +            writer.printMemberDetailsListStartTag();
    3.31 +            writer.dd();
    3.32 +            writer.dl();
    3.33 +            writer.dt();
    3.34 +            writer.strong(ConfigurationImpl.getInstance().
    3.35 +                getText("doclet.Default"));
    3.36 +            writer.dtEnd();
    3.37 +            writer.dd();
    3.38 +            writer.print(((AnnotationTypeElementDoc) member).defaultValue());
    3.39 +            writer.ddEnd();
    3.40 +            writer.dlEnd();
    3.41 +            writer.ddEnd();
    3.42 +        }
    3.43      }
    3.44  
    3.45      /**
     4.1 --- a/src/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeRequiredMemberWriterImpl.java	Fri Feb 27 10:54:11 2009 -0800
     4.2 +++ b/src/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeRequiredMemberWriterImpl.java	Mon Mar 02 15:11:29 2009 -0800
     4.3 @@ -25,11 +25,10 @@
     4.4  
     4.5  package com.sun.tools.doclets.formats.html;
     4.6  
     4.7 +import java.io.*;
     4.8 +
     4.9 +import com.sun.javadoc.*;
    4.10  import com.sun.tools.doclets.internal.toolkit.*;
    4.11 -import com.sun.tools.doclets.internal.toolkit.taglets.*;
    4.12 -import com.sun.javadoc.*;
    4.13 -
    4.14 -import java.io.*;
    4.15  
    4.16  /**
    4.17   * Writes annotation type required member documentation in HTML format.
    4.18 @@ -134,17 +133,14 @@
    4.19              strong(member.name());
    4.20          }
    4.21          writer.preEnd();
    4.22 -        writer.dl();
    4.23 +        assert !writer.getMemberDetailsListPrinted();
    4.24      }
    4.25  
    4.26      /**
    4.27       * {@inheritDoc}
    4.28       */
    4.29      public void writeComments(MemberDoc member) {
    4.30 -        if (member.inlineTags().length > 0) {
    4.31 -            writer.dd();
    4.32 -            writer.printInlineComment(member);
    4.33 -        }
    4.34 +        printComment(member);
    4.35      }
    4.36  
    4.37      /**
    4.38 @@ -160,7 +156,7 @@
    4.39       * Write the annotation type member footer.
    4.40       */
    4.41      public void writeMemberFooter() {
    4.42 -        writer.dlEnd();
    4.43 +        printMemberFooter();
    4.44      }
    4.45  
    4.46      /**
    4.47 @@ -267,9 +263,7 @@
    4.48       * {@inheritDoc}
    4.49       */
    4.50      public void writeDeprecated(MemberDoc member) {
    4.51 -        print(((TagletOutputImpl)
    4.52 -            (new DeprecatedTaglet()).getTagletOutput(member,
    4.53 -            writer.getTagletWriterInstance(false))).toString());
    4.54 +        printDeprecated(member);
    4.55      }
    4.56  
    4.57      private Type getType(MemberDoc member) {
     5.1 --- a/src/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeWriterImpl.java	Fri Feb 27 10:54:11 2009 -0800
     5.2 +++ b/src/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeWriterImpl.java	Mon Mar 02 15:11:29 2009 -0800
     5.3 @@ -25,10 +25,10 @@
     5.4  
     5.5  package com.sun.tools.doclets.formats.html;
     5.6  
     5.7 +import com.sun.javadoc.*;
     5.8  import com.sun.tools.doclets.internal.toolkit.*;
     5.9  import com.sun.tools.doclets.internal.toolkit.util.*;
    5.10  import com.sun.tools.doclets.internal.toolkit.builders.*;
    5.11 -import com.sun.javadoc.*;
    5.12  
    5.13  /**
    5.14   * Generate the Class Information Page.
    5.15 @@ -165,8 +165,6 @@
    5.16       * {@inheritDoc}
    5.17       */
    5.18      public void writeAnnotationTypeSignature(String modifiers) {
    5.19 -        dl();
    5.20 -        dt();
    5.21          preNoNewLine();
    5.22          writeAnnotationInfo(annotationType);
    5.23          print(modifiers);
    5.24 @@ -178,7 +176,6 @@
    5.25          } else {
    5.26              strong(name);
    5.27          }
    5.28 -        dlEnd();
    5.29          preEnd();
    5.30          p();
    5.31      }
    5.32 @@ -334,6 +331,7 @@
    5.33              } else {
    5.34                  strongText("doclet.Enclosing_Class");
    5.35              }
    5.36 +            dtEnd();
    5.37              dd();
    5.38              printLink(new LinkInfoImpl(LinkInfoImpl.CONTEXT_CLASS, outerClass,
    5.39                  false));
     6.1 --- a/src/share/classes/com/sun/tools/doclets/formats/html/ClassWriterImpl.java	Fri Feb 27 10:54:11 2009 -0800
     6.2 +++ b/src/share/classes/com/sun/tools/doclets/formats/html/ClassWriterImpl.java	Mon Mar 02 15:11:29 2009 -0800
     6.3 @@ -25,12 +25,12 @@
     6.4  
     6.5  package com.sun.tools.doclets.formats.html;
     6.6  
     6.7 +import java.util.*;
     6.8 +
     6.9 +import com.sun.javadoc.*;
    6.10  import com.sun.tools.doclets.internal.toolkit.*;
    6.11  import com.sun.tools.doclets.internal.toolkit.util.*;
    6.12  import com.sun.tools.doclets.internal.toolkit.builders.*;
    6.13 -import com.sun.javadoc.*;
    6.14 -
    6.15 -import java.util.*;
    6.16  import com.sun.tools.doclets.internal.toolkit.taglets.*;
    6.17  
    6.18  /**
    6.19 @@ -171,8 +171,6 @@
    6.20       */
    6.21      public void writeClassSignature(String modifiers) {
    6.22          boolean isInterface = classDoc.isInterface();
    6.23 -        dl();
    6.24 -        dt();
    6.25          preNoNewLine();
    6.26          writeAnnotationInfo(classDoc);
    6.27          print(modifiers);
    6.28 @@ -191,7 +189,7 @@
    6.29              Type superclass = Util.getFirstVisibleSuperClass(classDoc,
    6.30                  configuration());
    6.31              if (superclass != null) {
    6.32 -                dt();
    6.33 +                println();
    6.34                  print("extends ");
    6.35                  printLink(new LinkInfoImpl(
    6.36                      LinkInfoImpl.CONTEXT_CLASS_SIGNATURE_PARENT_NAME,
    6.37 @@ -208,7 +206,7 @@
    6.38                      continue;
    6.39                  }
    6.40                  if (counter == 0) {
    6.41 -                    dt();
    6.42 +                    println();
    6.43                      print(isInterface? "extends " : "implements ");
    6.44                  } else {
    6.45                      print(", ");
    6.46 @@ -219,7 +217,6 @@
    6.47                  counter++;
    6.48              }
    6.49          }
    6.50 -        dlEnd();
    6.51          preEnd();
    6.52          p();
    6.53      }
    6.54 @@ -342,6 +339,7 @@
    6.55              TagletOutput output = (new ParamTaglet()).getTagletOutput(classDoc,
    6.56                  getTagletWriterInstance(false));
    6.57              print(output.toString());
    6.58 +            dtEnd();
    6.59              dlEnd();
    6.60          }
    6.61      }
    6.62 @@ -360,8 +358,10 @@
    6.63                  dl();
    6.64                  dt();
    6.65                  strongText("doclet.Subclasses");
    6.66 +                dtEnd();
    6.67                  writeClassLinks(LinkInfoImpl.CONTEXT_SUBCLASSES,
    6.68                      subclasses);
    6.69 +                dlEnd();
    6.70              }
    6.71          }
    6.72      }
    6.73 @@ -376,8 +376,10 @@
    6.74                  dl();
    6.75                  dt();
    6.76                  strongText("doclet.Subinterfaces");
    6.77 +                dtEnd();
    6.78                  writeClassLinks(LinkInfoImpl.CONTEXT_SUBINTERFACES,
    6.79                      subInterfaces);
    6.80 +                dlEnd();
    6.81              }
    6.82          }
    6.83      }
    6.84 @@ -398,8 +400,10 @@
    6.85              dl();
    6.86              dt();
    6.87              strongText("doclet.Implementing_Classes");
    6.88 +            dtEnd();
    6.89              writeClassLinks(LinkInfoImpl.CONTEXT_IMPLEMENTED_CLASSES,
    6.90                  implcl);
    6.91 +            dlEnd();
    6.92          }
    6.93      }
    6.94  
    6.95 @@ -414,8 +418,10 @@
    6.96              dl();
    6.97              dt();
    6.98              strongText("doclet.All_Implemented_Interfaces");
    6.99 +            dtEnd();
   6.100              writeClassLinks(LinkInfoImpl.CONTEXT_IMPLEMENTED_INTERFACES,
   6.101                  interfaceArray);
   6.102 +            dlEnd();
   6.103          }
   6.104      }
   6.105  
   6.106 @@ -430,8 +436,10 @@
   6.107              dl();
   6.108              dt();
   6.109              strongText("doclet.All_Superinterfaces");
   6.110 +            dtEnd();
   6.111              writeClassLinks(LinkInfoImpl.CONTEXT_SUPER_INTERFACES,
   6.112                  interfaceArray);
   6.113 +            dlEnd();
   6.114          }
   6.115      }
   6.116  
   6.117 @@ -455,7 +463,6 @@
   6.118              }
   6.119          }
   6.120          ddEnd();
   6.121 -        dlEnd();
   6.122      }
   6.123  
   6.124      protected void navLinkTree() {
   6.125 @@ -574,6 +581,7 @@
   6.126              } else {
   6.127                  strongText("doclet.Enclosing_Class");
   6.128              }
   6.129 +            dtEnd();
   6.130              dd();
   6.131              printLink(new LinkInfoImpl(LinkInfoImpl.CONTEXT_CLASS, outerClass,
   6.132                  false));
     7.1 --- a/src/share/classes/com/sun/tools/doclets/formats/html/ConstructorWriterImpl.java	Fri Feb 27 10:54:11 2009 -0800
     7.2 +++ b/src/share/classes/com/sun/tools/doclets/formats/html/ConstructorWriterImpl.java	Mon Mar 02 15:11:29 2009 -0800
     7.3 @@ -25,12 +25,12 @@
     7.4  
     7.5  package com.sun.tools.doclets.formats.html;
     7.6  
     7.7 +import java.io.*;
     7.8 +import java.util.*;
     7.9 +
    7.10 +import com.sun.javadoc.*;
    7.11  import com.sun.tools.doclets.internal.toolkit.*;
    7.12  import com.sun.tools.doclets.internal.toolkit.util.*;
    7.13 -import com.sun.tools.doclets.internal.toolkit.taglets.*;
    7.14 -import com.sun.javadoc.*;
    7.15 -import java.util.*;
    7.16 -import java.io.*;
    7.17  
    7.18  /**
    7.19   * Writes constructor documentation.
    7.20 @@ -149,7 +149,7 @@
    7.21          writeParameters(constructor);
    7.22          writeExceptions(constructor);
    7.23          writer.preEnd();
    7.24 -        writer.dl();
    7.25 +        assert !writer.getMemberDetailsListPrinted();
    7.26      }
    7.27  
    7.28      /**
    7.29 @@ -158,12 +158,7 @@
    7.30       * @param constructor the constructor being documented.
    7.31       */
    7.32      public void writeDeprecated(ConstructorDoc constructor) {
    7.33 -        String output = ((TagletOutputImpl)
    7.34 -            (new DeprecatedTaglet()).getTagletOutput(constructor,
    7.35 -            writer.getTagletWriterInstance(false))).toString();
    7.36 -        if (output != null && output.trim().length() > 0) {
    7.37 -            writer.print(output);
    7.38 -        }
    7.39 +        printDeprecated(constructor);
    7.40      }
    7.41  
    7.42      /**
    7.43 @@ -172,10 +167,7 @@
    7.44       * @param constructor the constructor being documented.
    7.45       */
    7.46      public void writeComments(ConstructorDoc constructor) {
    7.47 -        if (constructor.inlineTags().length > 0) {
    7.48 -            writer.dd();
    7.49 -            writer.printInlineComment(constructor);
    7.50 -        }
    7.51 +        printComment(constructor);
    7.52      }
    7.53  
    7.54      /**
    7.55 @@ -191,7 +183,7 @@
    7.56       * Write the constructor footer.
    7.57       */
    7.58      public void writeConstructorFooter() {
    7.59 -        writer.dlEnd();
    7.60 +        printMemberFooter();
    7.61      }
    7.62  
    7.63      /**
     8.1 --- a/src/share/classes/com/sun/tools/doclets/formats/html/EnumConstantWriterImpl.java	Fri Feb 27 10:54:11 2009 -0800
     8.2 +++ b/src/share/classes/com/sun/tools/doclets/formats/html/EnumConstantWriterImpl.java	Mon Mar 02 15:11:29 2009 -0800
     8.3 @@ -25,12 +25,11 @@
     8.4  
     8.5  package com.sun.tools.doclets.formats.html;
     8.6  
     8.7 +import java.io.*;
     8.8 +
     8.9 +import com.sun.javadoc.*;
    8.10  import com.sun.tools.doclets.internal.toolkit.*;
    8.11 -import com.sun.tools.doclets.internal.toolkit.taglets.*;
    8.12  import com.sun.tools.doclets.internal.toolkit.util.*;
    8.13 -import com.sun.javadoc.*;
    8.14 -
    8.15 -import java.io.*;
    8.16  
    8.17  /**
    8.18   * Writes enum constant documentation in HTML format.
    8.19 @@ -146,26 +145,21 @@
    8.20              strong(enumConstant.name());
    8.21          }
    8.22          writer.preEnd();
    8.23 -        writer.dl();
    8.24 +        assert !writer.getMemberDetailsListPrinted();
    8.25      }
    8.26  
    8.27      /**
    8.28       * {@inheritDoc}
    8.29       */
    8.30      public void writeDeprecated(FieldDoc enumConstant) {
    8.31 -        print(((TagletOutputImpl)
    8.32 -            (new DeprecatedTaglet()).getTagletOutput(enumConstant,
    8.33 -            writer.getTagletWriterInstance(false))).toString());
    8.34 +        printDeprecated(enumConstant);
    8.35      }
    8.36  
    8.37      /**
    8.38       * {@inheritDoc}
    8.39       */
    8.40      public void writeComments(FieldDoc enumConstant) {
    8.41 -        if (enumConstant.inlineTags().length > 0) {
    8.42 -            writer.dd();
    8.43 -            writer.printInlineComment(enumConstant);
    8.44 -        }
    8.45 +        printComment(enumConstant);
    8.46      }
    8.47  
    8.48      /**
    8.49 @@ -179,7 +173,7 @@
    8.50       * {@inheritDoc}
    8.51       */
    8.52      public void writeEnumConstantFooter() {
    8.53 -        writer.dlEnd();
    8.54 +        printMemberFooter();
    8.55      }
    8.56  
    8.57      /**
     9.1 --- a/src/share/classes/com/sun/tools/doclets/formats/html/FieldWriterImpl.java	Fri Feb 27 10:54:11 2009 -0800
     9.2 +++ b/src/share/classes/com/sun/tools/doclets/formats/html/FieldWriterImpl.java	Mon Mar 02 15:11:29 2009 -0800
     9.3 @@ -25,12 +25,11 @@
     9.4  
     9.5  package com.sun.tools.doclets.formats.html;
     9.6  
     9.7 +import java.io.*;
     9.8 +
     9.9 +import com.sun.javadoc.*;
    9.10  import com.sun.tools.doclets.internal.toolkit.*;
    9.11 -import com.sun.tools.doclets.internal.toolkit.taglets.*;
    9.12  import com.sun.tools.doclets.internal.toolkit.util.*;
    9.13 -import com.sun.javadoc.*;
    9.14 -
    9.15 -import java.io.*;
    9.16  
    9.17  /**
    9.18   * Writes field documentation in HTML format.
    9.19 @@ -156,7 +155,7 @@
    9.20              strong(field.name());
    9.21          }
    9.22          writer.preEnd();
    9.23 -        writer.dl();
    9.24 +        assert !writer.getMemberDetailsListPrinted();
    9.25      }
    9.26  
    9.27      /**
    9.28 @@ -165,9 +164,7 @@
    9.29       * @param field the field being documented.
    9.30       */
    9.31      public void writeDeprecated(FieldDoc field) {
    9.32 -        print(((TagletOutputImpl)
    9.33 -            (new DeprecatedTaglet()).getTagletOutput(field,
    9.34 -            writer.getTagletWriterInstance(false))).toString());
    9.35 +        printDeprecated(field);
    9.36      }
    9.37  
    9.38      /**
    9.39 @@ -178,10 +175,12 @@
    9.40      public void writeComments(FieldDoc field) {
    9.41          ClassDoc holder = field.containingClass();
    9.42          if (field.inlineTags().length > 0) {
    9.43 +            writer.printMemberDetailsListStartTag();
    9.44              if (holder.equals(classdoc) ||
    9.45                  (! (holder.isPublic() || Util.isLinkable(holder, configuration())))) {
    9.46                  writer.dd();
    9.47                  writer.printInlineComment(field);
    9.48 +                writer.ddEnd();
    9.49              } else {
    9.50                  String classlink = writer.codeText(
    9.51                      writer.getDocLink(LinkInfoImpl.CONTEXT_FIELD_DOC_COPY,
    9.52 @@ -196,6 +195,7 @@
    9.53                  writer.ddEnd();
    9.54                  writer.dd();
    9.55                  writer.printInlineComment(field);
    9.56 +                writer.ddEnd();
    9.57              }
    9.58          }
    9.59      }
    9.60 @@ -213,7 +213,7 @@
    9.61       * Write the field footer.
    9.62       */
    9.63      public void writeFieldFooter() {
    9.64 -        writer.dlEnd();
    9.65 +        printMemberFooter();
    9.66      }
    9.67  
    9.68      /**
    10.1 --- a/src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java	Fri Feb 27 10:54:11 2009 -0800
    10.2 +++ b/src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java	Mon Mar 02 15:11:29 2009 -0800
    10.3 @@ -24,17 +24,16 @@
    10.4   */
    10.5  
    10.6  package com.sun.tools.doclets.formats.html;
    10.7 -import com.sun.tools.doclets.formats.html.markup.*;
    10.8  
    10.9 -import com.sun.tools.doclets.internal.toolkit.*;
   10.10 -import com.sun.tools.doclets.internal.toolkit.util.*;
   10.11 -import com.sun.tools.doclets.internal.toolkit.taglets.*;
   10.12 -
   10.13 -import com.sun.javadoc.*;
   10.14  import java.io.*;
   10.15  import java.text.SimpleDateFormat;
   10.16  import java.util.*;
   10.17  
   10.18 +import com.sun.javadoc.*;
   10.19 +import com.sun.tools.doclets.formats.html.markup.*;
   10.20 +import com.sun.tools.doclets.internal.toolkit.*;
   10.21 +import com.sun.tools.doclets.internal.toolkit.util.*;
   10.22 +import com.sun.tools.doclets.internal.toolkit.taglets.*;
   10.23  
   10.24  /**
   10.25   * Class for the Html Format Code Generation specific to JavaDoc.
   10.26 @@ -44,6 +43,7 @@
   10.27   * @since 1.2
   10.28   * @author Atul M Dambalkar
   10.29   * @author Robert Field
   10.30 + * @author Bhavesh Patel (Modified)
   10.31   */
   10.32  public class HtmlDocletWriter extends HtmlDocWriter {
   10.33  
   10.34 @@ -205,7 +205,13 @@
   10.35      private void printMethodInfo(MethodDoc method) {
   10.36          ClassDoc[] intfacs = method.containingClass().interfaces();
   10.37          MethodDoc overriddenMethod = method.overriddenMethod();
   10.38 -        if (intfacs.length > 0 || overriddenMethod != null) {
   10.39 +        // Check whether there is any implementation or overridden info to be
   10.40 +        // printed. If no overridden or implementation info needs to be
   10.41 +        // printed, do not print this section.
   10.42 +        if ((intfacs.length > 0 &&
   10.43 +                new ImplementedMethods(method, this.configuration).build().length > 0) ||
   10.44 +                overriddenMethod != null) {
   10.45 +            printMemberDetailsListStartTag();
   10.46              dd();
   10.47              printTagsInfoHeader();
   10.48              MethodWriterImpl.printImplementsInfo(this, method);
   10.49 @@ -216,7 +222,6 @@
   10.50              printTagsInfoFooter();
   10.51              ddEnd();
   10.52          }
   10.53 -        dd();
   10.54      }
   10.55  
   10.56      protected void printTags(Doc doc) {
   10.57 @@ -230,41 +235,35 @@
   10.58          TagletWriter.genTagOuput(configuration.tagletManager, doc,
   10.59              configuration.tagletManager.getCustomTags(doc),
   10.60                  getTagletWriterInstance(false), output);
   10.61 -        if (output.toString().trim().length() > 0) {
   10.62 +        String outputString = output.toString().trim();
   10.63 +        // For RootDoc and ClassDoc, this section is not the definition description
   10.64 +        // but the start of definition list.
   10.65 +        if (!outputString.isEmpty()) {
   10.66 +            if (!(doc instanceof RootDoc || doc instanceof ClassDoc)) {
   10.67 +                printMemberDetailsListStartTag();
   10.68 +                dd();
   10.69 +            }
   10.70              printTagsInfoHeader();
   10.71 -            print(output.toString());
   10.72 +            print(outputString);
   10.73              printTagsInfoFooter();
   10.74 -        } else if (! (doc instanceof ConstructorDoc ||
   10.75 -            doc instanceof RootDoc || doc instanceof ClassDoc)) {
   10.76 -            //To be consistent with 1.4.2 output.
   10.77 -            //I hate to do this but we have to pass the diff test to prove
   10.78 -            //nothing has broken.
   10.79 -            printTagsInfoHeader();
   10.80 -            printTagsInfoFooter();
   10.81 +            if (!(doc instanceof RootDoc || doc instanceof ClassDoc))
   10.82 +                ddEnd();
   10.83          }
   10.84      }
   10.85  
   10.86      /**
   10.87 -     * Check whether there are any tags to be printed.
   10.88 +     * Check whether there are any tags for Serialization Overview
   10.89 +     * section to be printed.
   10.90       *
   10.91 -     * @param doc the Doc object to check for tags.
   10.92 +     * @param field the FieldDoc object to check for tags.
   10.93       * @return true if there are tags to be printed else return false.
   10.94       */
   10.95 -    protected boolean hasTagsToPrint(Doc doc) {
   10.96 -        if (doc instanceof MethodDoc) {
   10.97 -            ClassDoc[] intfacs = ((MethodDoc)doc).containingClass().interfaces();
   10.98 -            MethodDoc overriddenMethod = ((MethodDoc)doc).overriddenMethod();
   10.99 -            if ((intfacs.length > 0 &&
  10.100 -                new ImplementedMethods((MethodDoc)doc, this.configuration).build().length > 0) ||
  10.101 -                overriddenMethod != null) {
  10.102 -                return true;
  10.103 -            }
  10.104 -        }
  10.105 +    protected boolean hasSerializationOverviewTags(FieldDoc field) {
  10.106          TagletOutputImpl output = new TagletOutputImpl("");
  10.107 -        TagletWriter.genTagOuput(configuration.tagletManager, doc,
  10.108 -            configuration.tagletManager.getCustomTags(doc),
  10.109 +        TagletWriter.genTagOuput(configuration.tagletManager, field,
  10.110 +            configuration.tagletManager.getCustomTags(field),
  10.111                  getTagletWriterInstance(false), output);
  10.112 -        return (output.toString().trim().isEmpty());
  10.113 +        return (!output.toString().trim().isEmpty());
  10.114      }
  10.115  
  10.116      /**
    11.1 --- a/src/share/classes/com/sun/tools/doclets/formats/html/HtmlSerialFieldWriter.java	Fri Feb 27 10:54:11 2009 -0800
    11.2 +++ b/src/share/classes/com/sun/tools/doclets/formats/html/HtmlSerialFieldWriter.java	Mon Mar 02 15:11:29 2009 -0800
    11.3 @@ -25,11 +25,12 @@
    11.4  
    11.5  package com.sun.tools.doclets.formats.html;
    11.6  
    11.7 +import java.util.*;
    11.8 +
    11.9 +import com.sun.javadoc.*;
   11.10  import com.sun.tools.doclets.internal.toolkit.*;
   11.11  import com.sun.tools.doclets.internal.toolkit.taglets.*;
   11.12  import com.sun.tools.doclets.internal.toolkit.util.*;
   11.13 -import com.sun.javadoc.*;
   11.14 -import java.util.*;
   11.15  
   11.16  /**
   11.17   * Generate serialized form for serializable fields.
   11.18 @@ -37,6 +38,7 @@
   11.19   * <code>serialField</code> is processed.
   11.20   *
   11.21   * @author Joe Fialli
   11.22 + * @author Bhavesh Patel (Modified)
   11.23   */
   11.24  public class HtmlSerialFieldWriter extends FieldWriterImpl
   11.25      implements SerializedFormWriter.SerialFieldWriter {
   11.26 @@ -75,7 +77,7 @@
   11.27              writer.println();
   11.28              if (heading.equals(
   11.29                     configuration().getText("doclet.Serialized_Form_class"))) {
   11.30 -                writer.dl();
   11.31 +                assert !writer.getMemberDetailsListPrinted();
   11.32              }
   11.33          } else {
   11.34              writer.printTableHeadingBackground(heading);
   11.35 @@ -102,7 +104,7 @@
   11.36          print(fieldDimensions + ' ');
   11.37          strong(fieldName);
   11.38          writer.preEnd();
   11.39 -        writer.dl();
   11.40 +        assert !writer.getMemberDetailsListPrinted();
   11.41      }
   11.42  
   11.43      /**
   11.44 @@ -111,9 +113,7 @@
   11.45       * @param field the field to document.
   11.46       */
   11.47      public void writeMemberDeprecatedInfo(FieldDoc field) {
   11.48 -        print(((TagletOutputImpl)
   11.49 -            (new DeprecatedTaglet()).getTagletOutput(field,
   11.50 -            writer.getTagletWriterInstance(false))).toString());
   11.51 +        printDeprecated(field);
   11.52      }
   11.53  
   11.54      /**
   11.55 @@ -123,14 +123,17 @@
   11.56       */
   11.57      public void writeMemberDescription(FieldDoc field) {
   11.58          if (field.inlineTags().length > 0) {
   11.59 +            writer.printMemberDetailsListStartTag();
   11.60              writer.dd();
   11.61              writer.printInlineComment(field);
   11.62 +            writer.ddEnd();
   11.63          }
   11.64          Tag[] tags = field.tags("serial");
   11.65          if (tags.length > 0) {
   11.66 -            writer.dt();
   11.67 +            writer.printMemberDetailsListStartTag();
   11.68              writer.dd();
   11.69              writer.printInlineComment(field, tags[0]);
   11.70 +            writer.ddEnd();
   11.71          }
   11.72      }
   11.73  
   11.74 @@ -140,9 +143,14 @@
   11.75       * @param serialFieldTag the field to document (represented by tag).
   11.76       */
   11.77      public void writeMemberDescription(SerialFieldTag serialFieldTag) {
   11.78 -        writer.dd();
   11.79 -        writer.print(serialFieldTag.description());
   11.80 -        writer.dlEnd();
   11.81 +        String serialFieldTagDesc = serialFieldTag.description().trim();
   11.82 +        if (!serialFieldTagDesc.isEmpty()) {
   11.83 +            writer.dl();
   11.84 +            writer.dd();
   11.85 +            writer.print(serialFieldTagDesc);
   11.86 +            writer.ddEnd();
   11.87 +            writer.dlEnd();
   11.88 +        }
   11.89      }
   11.90  
   11.91      /**
   11.92 @@ -151,33 +159,57 @@
   11.93       * @param field the field to document.
   11.94       */
   11.95      public void writeMemberTags(FieldDoc field) {
   11.96 -        writer.dl();
   11.97          TagletOutputImpl output = new TagletOutputImpl("");
   11.98          TagletWriter.genTagOuput(configuration().tagletManager, field,
   11.99              configuration().tagletManager.getCustomTags(field),
  11.100                  writer.getTagletWriterInstance(false), output);
  11.101 -        if (output.toString().length() > 0) {
  11.102 -            print(output.toString());
  11.103 +        String outputString = output.toString().trim();
  11.104 +        if (!outputString.isEmpty()) {
  11.105 +            writer.printMemberDetailsListStartTag();
  11.106 +            writer.dd();
  11.107 +            writer.dl();
  11.108 +            print(outputString);
  11.109 +            writer.dlEnd();
  11.110 +            writer.ddEnd();
  11.111          }
  11.112 -        writer.dlEnd();
  11.113 -    }
  11.114 -    public void writeMemberFooter(FieldDoc member) {
  11.115 -        writer.dlEnd();
  11.116      }
  11.117  
  11.118      /**
  11.119 -     * Check to see if member details should be printed. If
  11.120 +     * Check to see if overview details should be printed. If
  11.121       * nocomment option set or if there is no text to be printed
  11.122 -     * for deprecation info, inline comment, no serial tag or inline tags,
  11.123 -     * do not print member details.
  11.124 +     * for deprecation info, comment or tags, do not print overview details.
  11.125 +     *
  11.126 +     * @param field the field to check overview details for.
  11.127 +     * @return true if overview details need to be printed
  11.128       */
  11.129 -    public boolean shouldPrintMemberDetails(FieldDoc field) {
  11.130 -        if (!configuration().nocomment)
  11.131 -            if((field.inlineTags().length > 0) ||
  11.132 -                (field.tags("serial").length > 0) || (writer.hasTagsToPrint(field)))
  11.133 +    public boolean shouldPrintOverview(FieldDoc field) {
  11.134 +        if (!configuration().nocomment) {
  11.135 +            if(!field.commentText().isEmpty() ||
  11.136 +                    writer.hasSerializationOverviewTags(field))
  11.137                  return true;
  11.138 -        if (!Util.isDeprecated(field))
  11.139 +        }
  11.140 +        if (field.tags("deprecated").length > 0)
  11.141              return true;
  11.142          return false;
  11.143      }
  11.144 +
  11.145 +    public void writeMemberFooter() {
  11.146 +        printMemberFooter();
  11.147 +    }
  11.148 +
  11.149 +    /**
  11.150 +     * Write the footer information. If the serilization overview section was
  11.151 +     * printed, check for definition list and close list tag.
  11.152 +     *
  11.153 +     * @param heading the heading that was written.
  11.154 +     */
  11.155 +    public void writeFooter(String heading) {
  11.156 +        if (printedOverallAnchor) {
  11.157 +            if (heading.equals(
  11.158 +                   configuration().getText("doclet.Serialized_Form_class"))) {
  11.159 +                writer.printMemberDetailsListEndTag();
  11.160 +                assert !writer.getMemberDetailsListPrinted();
  11.161 +            }
  11.162 +        }
  11.163 +    }
  11.164  }
    12.1 --- a/src/share/classes/com/sun/tools/doclets/formats/html/HtmlSerialMethodWriter.java	Fri Feb 27 10:54:11 2009 -0800
    12.2 +++ b/src/share/classes/com/sun/tools/doclets/formats/html/HtmlSerialMethodWriter.java	Mon Mar 02 15:11:29 2009 -0800
    12.3 @@ -25,9 +25,9 @@
    12.4  
    12.5  package com.sun.tools.doclets.formats.html;
    12.6  
    12.7 +import com.sun.javadoc.*;
    12.8  import com.sun.tools.doclets.internal.toolkit.*;
    12.9  import com.sun.tools.doclets.internal.toolkit.taglets.*;
   12.10 -import com.sun.javadoc.*;
   12.11  
   12.12  /**
   12.13   * Generate serialized form for Serializable/Externalizable methods.
   12.14 @@ -66,14 +66,12 @@
   12.15          writeSignature(member);
   12.16      }
   12.17  
   12.18 -    public void writeMemberFooter(MethodDoc member) {
   12.19 -        writer.dlEnd();
   12.20 +    public void writeMemberFooter() {
   12.21 +        printMemberFooter();
   12.22      }
   12.23  
   12.24      public void writeDeprecatedMemberInfo(MethodDoc member) {
   12.25 -        print(((TagletOutputImpl)
   12.26 -            (new DeprecatedTaglet()).getTagletOutput(member,
   12.27 -            writer.getTagletWriterInstance(false))).toString());
   12.28 +        printDeprecated(member);
   12.29      }
   12.30  
   12.31      public void writeMemberDescription(MethodDoc member) {
   12.32 @@ -81,23 +79,27 @@
   12.33      }
   12.34  
   12.35      public void writeMemberTags(MethodDoc member) {
   12.36 -        writer.dd();
   12.37 -        writer.dl();
   12.38          TagletOutputImpl output = new TagletOutputImpl("");
   12.39          TagletManager tagletManager =
   12.40              ConfigurationImpl.getInstance().tagletManager;
   12.41          TagletWriter.genTagOuput(tagletManager, member,
   12.42              tagletManager.getSerializedFormTags(),
   12.43              writer.getTagletWriterInstance(false), output);
   12.44 -        print(output.toString());
   12.45 +        String outputString = output.toString().trim();
   12.46 +        if (!outputString.isEmpty()) {
   12.47 +            writer.printMemberDetailsListStartTag();
   12.48 +            writer.dd();
   12.49 +            writer.dl();
   12.50 +            print(outputString);
   12.51 +            writer.dlEnd();
   12.52 +            writer.ddEnd();
   12.53 +        }
   12.54          MethodDoc method = member;
   12.55          if (method.name().compareTo("writeExternal") == 0
   12.56                  && method.tags("serialData").length == 0) {
   12.57              serialWarning(member.position(), "doclet.MissingSerialDataTag",
   12.58                  method.containingClass().qualifiedName(), method.name());
   12.59          }
   12.60 -        writer.ddEnd();
   12.61 -        writer.dlEnd();
   12.62      }
   12.63  
   12.64      protected void printTypeLinkNoDimension(Type type) {
    13.1 --- a/src/share/classes/com/sun/tools/doclets/formats/html/MethodWriterImpl.java	Fri Feb 27 10:54:11 2009 -0800
    13.2 +++ b/src/share/classes/com/sun/tools/doclets/formats/html/MethodWriterImpl.java	Mon Mar 02 15:11:29 2009 -0800
    13.3 @@ -25,13 +25,13 @@
    13.4  
    13.5  package com.sun.tools.doclets.formats.html;
    13.6  
    13.7 +import java.io.*;
    13.8 +
    13.9 +import com.sun.javadoc.*;
   13.10  import com.sun.tools.doclets.internal.toolkit.*;
   13.11  import com.sun.tools.doclets.internal.toolkit.util.*;
   13.12  import com.sun.tools.doclets.internal.toolkit.taglets.*;
   13.13  
   13.14 -import java.io.*;
   13.15 -import com.sun.javadoc.*;
   13.16 -
   13.17  /**
   13.18   * Writes method documentation in HTML format.
   13.19   *
   13.20 @@ -172,7 +172,7 @@
   13.21          writeParameters(method);
   13.22          writeExceptions(method);
   13.23          writer.preEnd();
   13.24 -        writer.dl();
   13.25 +        assert !writer.getMemberDetailsListPrinted();
   13.26      }
   13.27  
   13.28      /**
   13.29 @@ -181,12 +181,7 @@
   13.30       * @param method the method being documented.
   13.31       */
   13.32      public void writeDeprecated(MethodDoc method) {
   13.33 -        String output = ((TagletOutputImpl)
   13.34 -            (new DeprecatedTaglet()).getTagletOutput(method,
   13.35 -            writer.getTagletWriterInstance(false))).toString();
   13.36 -        if (output != null && output.trim().length() > 0) {
   13.37 -            writer.print(output);
   13.38 -        }
   13.39 +        printDeprecated(method);
   13.40      }
   13.41  
   13.42      /**
   13.43 @@ -197,11 +192,13 @@
   13.44      public void writeComments(Type holder, MethodDoc method) {
   13.45          ClassDoc holderClassDoc = holder.asClassDoc();
   13.46          if (method.inlineTags().length > 0) {
   13.47 +            writer.printMemberDetailsListStartTag();
   13.48              if (holder.asClassDoc().equals(classdoc) ||
   13.49                  (! (holderClassDoc.isPublic() ||
   13.50                      Util.isLinkable(holderClassDoc, configuration())))) {
   13.51                  writer.dd();
   13.52                  writer.printInlineComment(method);
   13.53 +                writer.ddEnd();
   13.54              } else {
   13.55                  String classlink = writer.codeText(
   13.56                      writer.getDocLink(LinkInfoImpl.CONTEXT_METHOD_DOC_COPY,
   13.57 @@ -217,6 +214,7 @@
   13.58                  writer.ddEnd();
   13.59                  writer.dd();
   13.60                  writer.printInlineComment(method);
   13.61 +                writer.ddEnd();
   13.62              }
   13.63          }
   13.64      }
   13.65 @@ -234,8 +232,7 @@
   13.66       * Write the method footer.
   13.67       */
   13.68      public void writeMethodFooter() {
   13.69 -        writer.ddEnd();
   13.70 -        writer.dlEnd();
   13.71 +        printMemberFooter();
   13.72      }
   13.73  
   13.74      /**
   13.75 @@ -318,6 +315,7 @@
   13.76              String name = method.name();
   13.77              writer.dt();
   13.78              writer.strongText(label);
   13.79 +            writer.dtEnd();
   13.80              writer.dd();
   13.81              String methLink = writer.codeText(
   13.82                  writer.getLink(
   13.83 @@ -326,6 +324,7 @@
   13.84                          writer.getAnchor(method), name, false)
   13.85                  ));
   13.86              writer.printText("doclet.in_class", methLink, overriddenTypeLink);
   13.87 +            writer.ddEnd();
   13.88          }
   13.89      }
   13.90  
   13.91 @@ -364,11 +363,13 @@
   13.92                      LinkInfoImpl.CONTEXT_METHOD_SPECIFIED_BY, intfac)));
   13.93              writer.dt();
   13.94              writer.strongText("doclet.Specified_By");
   13.95 +            writer.dtEnd();
   13.96              writer.dd();
   13.97              methlink = writer.codeText(writer.getDocLink(
   13.98                  LinkInfoImpl.CONTEXT_MEMBER, implementedMeth,
   13.99                  implementedMeth.name(), false));
  13.100              writer.printText("doclet.in_interface", methlink, intfaclink);
  13.101 +            writer.ddEnd();
  13.102          }
  13.103  
  13.104      }
    14.1 --- a/src/share/classes/com/sun/tools/doclets/formats/html/NestedClassWriterImpl.java	Fri Feb 27 10:54:11 2009 -0800
    14.2 +++ b/src/share/classes/com/sun/tools/doclets/formats/html/NestedClassWriterImpl.java	Mon Mar 02 15:11:29 2009 -0800
    14.3 @@ -25,11 +25,11 @@
    14.4  
    14.5  package com.sun.tools.doclets.formats.html;
    14.6  
    14.7 +import java.io.*;
    14.8 +
    14.9 +import com.sun.javadoc.*;
   14.10  import com.sun.tools.doclets.internal.toolkit.*;
   14.11  import com.sun.tools.doclets.internal.toolkit.util.*;
   14.12 -import com.sun.javadoc.*;
   14.13 -
   14.14 -import java.io.*;
   14.15  
   14.16  /**
   14.17   * Writes nested class documentation in HTML format.
   14.18 @@ -129,7 +129,6 @@
   14.19              writer.println("");
   14.20          }
   14.21          writer.anchor(nestedClass.name());
   14.22 -        writer.dl();
   14.23          writer.h3();
   14.24          writer.print(nestedClass.name());
   14.25          writer.h3End();
    15.1 --- a/src/share/classes/com/sun/tools/doclets/formats/html/PackageTreeWriter.java	Fri Feb 27 10:54:11 2009 -0800
    15.2 +++ b/src/share/classes/com/sun/tools/doclets/formats/html/PackageTreeWriter.java	Mon Mar 02 15:11:29 2009 -0800
    15.3 @@ -25,9 +25,10 @@
    15.4  
    15.5  package com.sun.tools.doclets.formats.html;
    15.6  
    15.7 +import java.io.*;
    15.8 +
    15.9 +import com.sun.javadoc.*;
   15.10  import com.sun.tools.doclets.internal.toolkit.util.*;
   15.11 -import com.sun.javadoc.*;
   15.12 -import java.io.*;
   15.13  
   15.14  /**
   15.15   * Class to generate Tree page for a package. The name of the file generated is
   15.16 @@ -145,8 +146,10 @@
   15.17          dl();
   15.18          dt();
   15.19          strongText("doclet.Package_Hierarchies");
   15.20 +        dtEnd();
   15.21          dd();
   15.22          navLinkMainTree(configuration.getText("doclet.All_Packages"));
   15.23 +        ddEnd();
   15.24          dlEnd();
   15.25          hr();
   15.26      }
    16.1 --- a/src/share/classes/com/sun/tools/doclets/formats/html/TagletWriterImpl.java	Fri Feb 27 10:54:11 2009 -0800
    16.2 +++ b/src/share/classes/com/sun/tools/doclets/formats/html/TagletWriterImpl.java	Mon Mar 02 15:11:29 2009 -0800
    16.3 @@ -25,17 +25,18 @@
    16.4  
    16.5  package com.sun.tools.doclets.formats.html;
    16.6  
    16.7 +import com.sun.javadoc.*;
    16.8  import com.sun.tools.doclets.internal.toolkit.*;
    16.9  import com.sun.tools.doclets.internal.toolkit.builders.SerializedFormBuilder;
   16.10  import com.sun.tools.doclets.internal.toolkit.taglets.*;
   16.11  import com.sun.tools.doclets.internal.toolkit.util.*;
   16.12 -import com.sun.javadoc.*;
   16.13  
   16.14  /**
   16.15   * The taglet writer that writes HTML.
   16.16   *
   16.17   * @since 1.5
   16.18   * @author Jamie Ho
   16.19 + * @author Bhavesh Patel (Modified)
   16.20   */
   16.21  
   16.22  public class TagletWriterImpl extends TagletWriter {
   16.23 @@ -99,11 +100,12 @@
   16.24                      output.append(DocletConstants.NL + "<P>" +
   16.25                          DocletConstants.NL);
   16.26                  }
   16.27 +                output.append("</DD>");
   16.28              } else {
   16.29                  if (Util.isDeprecated(member.containingClass())) {
   16.30                      output.append("<DD><STRONG>" +
   16.31                      ConfigurationImpl.getInstance().
   16.32 -                            getText("doclet.Deprecated") + "</STRONG>&nbsp;");
   16.33 +                            getText("doclet.Deprecated") + "</STRONG>&nbsp;</DD>");
   16.34                  }
   16.35              }
   16.36          }
   16.37 @@ -123,7 +125,7 @@
   16.38      public TagletOutput getParamHeader(String header) {
   16.39          StringBuffer result = new StringBuffer();
   16.40          result.append("<DT>");
   16.41 -        result.append("<STRONG>" +  header + "</STRONG>");
   16.42 +        result.append("<STRONG>" +  header + "</STRONG></DT>");
   16.43          return new TagletOutputImpl(result.toString());
   16.44      }
   16.45  
   16.46 @@ -132,7 +134,7 @@
   16.47       */
   16.48      public TagletOutput paramTagOutput(ParamTag paramTag, String paramName) {
   16.49          TagletOutput result = new TagletOutputImpl("<DD><CODE>" + paramName + "</CODE>"
   16.50 -         + " - " + htmlWriter.commentTagsToString(paramTag, null, paramTag.inlineTags(), false));
   16.51 +         + " - " + htmlWriter.commentTagsToString(paramTag, null, paramTag.inlineTags(), false) + "</DD>");
   16.52          return result;
   16.53      }
   16.54  
   16.55 @@ -142,9 +144,9 @@
   16.56      public TagletOutput returnTagOutput(Tag returnTag) {
   16.57          TagletOutput result = new TagletOutputImpl(DocletConstants.NL + "<DT>" +
   16.58              "<STRONG>" + htmlWriter.configuration.getText("doclet.Returns") +
   16.59 -            "</STRONG>" + "<DD>" +
   16.60 +            "</STRONG>" + "</DT>" + "<DD>" +
   16.61              htmlWriter.commentTagsToString(returnTag, null, returnTag.inlineTags(),
   16.62 -            false));
   16.63 +            false) + "</DD>");
   16.64          return result;
   16.65      }
   16.66  
   16.67 @@ -174,22 +176,21 @@
   16.68          }
   16.69          if (holder.isClass() && ((ClassDoc)holder).isSerializable()) {
   16.70              //Automatically add link to serialized form page for serializable classes.
   16.71 -            if (!(SerializedFormBuilder.serialInclude(holder) &&
   16.72 +            if ((SerializedFormBuilder.serialInclude(holder) &&
   16.73                        SerializedFormBuilder.serialInclude(((ClassDoc)holder).containingPackage()))) {
   16.74 -                return result.equals("") ? null : new TagletOutputImpl(result);
   16.75 +                result = addSeeHeader(result);
   16.76 +                result += htmlWriter.getHyperLink(htmlWriter.relativePath + "serialized-form.html",
   16.77 +                        ((ClassDoc)holder).qualifiedName(), htmlWriter.configuration.getText("doclet.Serialized_Form"), false);
   16.78              }
   16.79 -            result = addSeeHeader(result);
   16.80 -            result += htmlWriter.getHyperLink(htmlWriter.relativePath + "serialized-form.html",
   16.81 -                ((ClassDoc)holder).qualifiedName(), htmlWriter.configuration.getText("doclet.Serialized_Form"), false);
   16.82          }
   16.83 -        return result.equals("") ? null : new TagletOutputImpl(result);
   16.84 +        return result.equals("") ? null : new TagletOutputImpl(result + "</DD>");
   16.85      }
   16.86  
   16.87      private String addSeeHeader(String result) {
   16.88          if (result != null && result.length() > 0) {
   16.89              return result + ", " + DocletConstants.NL;
   16.90          } else {
   16.91 -            return "<DT><STRONG>" + htmlWriter.configuration().getText("doclet.See_Also") + "</STRONG><DD>";
   16.92 +            return "<DT><STRONG>" + htmlWriter.configuration().getText("doclet.See_Also") + "</STRONG></DT><DD>";
   16.93          }
   16.94       }
   16.95  
   16.96 @@ -205,7 +206,8 @@
   16.97              }
   16.98              result += htmlWriter.commentTagsToString(simpleTags[i], null, simpleTags[i].inlineTags(), false);
   16.99          }
  16.100 -         return new TagletOutputImpl(result + "</DD>" + DocletConstants.NL);
  16.101 +        result += "</DD>" + DocletConstants.NL;
  16.102 +        return new TagletOutputImpl(result);
  16.103      }
  16.104  
  16.105      /**
  16.106 @@ -222,7 +224,7 @@
  16.107       */
  16.108      public TagletOutput getThrowsHeader() {
  16.109          return new TagletOutputImpl(DocletConstants.NL + "<DT>" + "<STRONG>" +
  16.110 -            htmlWriter.configuration().getText("doclet.Throws") + "</STRONG>");
  16.111 +            htmlWriter.configuration().getText("doclet.Throws") + "</STRONG></DT>");
  16.112      }
  16.113  
  16.114      /**
  16.115 @@ -241,6 +243,7 @@
  16.116          if (text != null && text.toString().length() > 0) {
  16.117              result += " - " + text;
  16.118          }
  16.119 +        result += "</DD>";
  16.120          return new TagletOutputImpl(result);
  16.121      }
  16.122  
  16.123 @@ -250,7 +253,7 @@
  16.124      public TagletOutput throwsTagOutput(Type throwsType) {
  16.125          return new TagletOutputImpl(DocletConstants.NL + "<DD>" +
  16.126              htmlWriter.codeText(htmlWriter.getLink(
  16.127 -                new LinkInfoImpl(LinkInfoImpl.CONTEXT_MEMBER, throwsType))));
  16.128 +                new LinkInfoImpl(LinkInfoImpl.CONTEXT_MEMBER, throwsType))) + "</DD>");
  16.129      }
  16.130  
  16.131      /**
    17.1 --- a/src/share/classes/com/sun/tools/doclets/formats/html/TreeWriter.java	Fri Feb 27 10:54:11 2009 -0800
    17.2 +++ b/src/share/classes/com/sun/tools/doclets/formats/html/TreeWriter.java	Mon Mar 02 15:11:29 2009 -0800
    17.3 @@ -25,9 +25,11 @@
    17.4  
    17.5  package com.sun.tools.doclets.formats.html;
    17.6  
    17.7 +import java.io.*;
    17.8 +
    17.9 +import com.sun.javadoc.*;
   17.10  import com.sun.tools.doclets.internal.toolkit.util.*;
   17.11 -import com.sun.javadoc.*;
   17.12 -import java.io.*;
   17.13 +
   17.14  /**
   17.15   * Generate Class Hierarchy page for all the Classes in this run.  Use
   17.16   * ClassTree for building the Tree. The name of
   17.17 @@ -120,6 +122,7 @@
   17.18              dl();
   17.19              dt();
   17.20              strongText("doclet.Package_Hierarchies");
   17.21 +            dtEnd();
   17.22              dd();
   17.23              for (int i = 0; i < packages.length; i++) {
   17.24                  if (packages[i].name().length() == 0) {
   17.25 @@ -131,6 +134,7 @@
   17.26                      print(", ");
   17.27                  }
   17.28              }
   17.29 +            ddEnd();
   17.30              dlEnd();
   17.31              hr();
   17.32          }
    18.1 --- a/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlDocWriter.java	Fri Feb 27 10:54:11 2009 -0800
    18.2 +++ b/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlDocWriter.java	Mon Mar 02 15:11:29 2009 -0800
    18.3 @@ -245,6 +245,31 @@
    18.4      }
    18.5  
    18.6      /**
    18.7 +     * Keep track of member details list. Print the definition list start tag
    18.8 +     * if it is not printed yet.
    18.9 +     */
   18.10 +    public void printMemberDetailsListStartTag () {
   18.11 +        if (!getMemberDetailsListPrinted()) {
   18.12 +            dl();
   18.13 +            memberDetailsListPrinted = true;
   18.14 +        }
   18.15 +    }
   18.16 +
   18.17 +    /**
   18.18 +     * Print the definition list end tag if the list start tag was printed.
   18.19 +     */
   18.20 +    public void printMemberDetailsListEndTag () {
   18.21 +        if (getMemberDetailsListPrinted()) {
   18.22 +            dlEnd();
   18.23 +            memberDetailsListPrinted = false;
   18.24 +        }
   18.25 +    }
   18.26 +
   18.27 +    public boolean getMemberDetailsListPrinted() {
   18.28 +        return memberDetailsListPrinted;
   18.29 +    }
   18.30 +
   18.31 +    /**
   18.32       * Print the frameset version of the Html file header.
   18.33       * Called only when generating an HTML frameset file.
   18.34       *
    19.1 --- a/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlWriter.java	Fri Feb 27 10:54:11 2009 -0800
    19.2 +++ b/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlWriter.java	Mon Mar 02 15:11:29 2009 -0800
    19.3 @@ -25,9 +25,10 @@
    19.4  
    19.5  package com.sun.tools.doclets.formats.html.markup;
    19.6  
    19.7 +import java.io.*;
    19.8 +
    19.9  import com.sun.tools.doclets.internal.toolkit.*;
   19.10  import com.sun.tools.doclets.internal.toolkit.util.*;
   19.11 -import java.io.*;
   19.12  
   19.13  /**
   19.14   * Class for the Html format code generation.
   19.15 @@ -61,6 +62,11 @@
   19.16      protected Configuration configuration;
   19.17  
   19.18      /**
   19.19 +     * The flag to indicate whether a member details list is printed or not.
   19.20 +     */
   19.21 +    protected boolean memberDetailsListPrinted;
   19.22 +
   19.23 +    /**
   19.24       * Constructor.
   19.25       *
   19.26       * @param path The directory path to be created for this file
   19.27 @@ -79,6 +85,7 @@
   19.28          super(Util.genWriter(configuration, path, filename, docencoding));
   19.29          this.configuration = configuration;
   19.30          htmlFilename = filename;
   19.31 +        this.memberDetailsListPrinted = false;
   19.32      }
   19.33  
   19.34      /**
   19.35 @@ -529,7 +536,14 @@
   19.36      }
   19.37  
   19.38      /**
   19.39 -     * Print &lt;DT&gt; tag.
   19.40 +     * Print &lt;/DT&gt; tag.
   19.41 +     */
   19.42 +    public void dtEnd() {
   19.43 +        print("</DT>");
   19.44 +    }
   19.45 +
   19.46 +    /**
   19.47 +     * Print &lt;DD&gt; tag.
   19.48       */
   19.49      public void dd() {
   19.50          print("<DD>");
    20.1 --- a/src/share/classes/com/sun/tools/doclets/internal/toolkit/SerializedFormWriter.java	Fri Feb 27 10:54:11 2009 -0800
    20.2 +++ b/src/share/classes/com/sun/tools/doclets/internal/toolkit/SerializedFormWriter.java	Mon Mar 02 15:11:29 2009 -0800
    20.3 @@ -25,8 +25,9 @@
    20.4  
    20.5  package com.sun.tools.doclets.internal.toolkit;
    20.6  
    20.7 +import java.io.*;
    20.8 +
    20.9  import com.sun.javadoc.*;
   20.10 -import java.io.*;
   20.11  
   20.12  /**
   20.13   * The interface for writing serialized form output.
   20.14 @@ -147,22 +148,27 @@
   20.15              String fieldDimensions, String fieldName);
   20.16  
   20.17          /**
   20.18 +         * Write the member footer.
   20.19 +         */
   20.20 +        public void writeMemberFooter();
   20.21 +
   20.22 +        /**
   20.23 +         * Check to see if overview details should be printed. If
   20.24 +         * nocomment option set or if there is no text to be printed
   20.25 +         * for deprecation info, inline comment or tags,
   20.26 +         * do not print overview details.
   20.27 +         *
   20.28 +         * @param field the field to check overview details for.
   20.29 +         * @return true if overview details need to be printed
   20.30 +         */
   20.31 +        public boolean shouldPrintOverview(FieldDoc field);
   20.32 +
   20.33 +        /**
   20.34           * Write the footer.
   20.35           *
   20.36 -         * @param member the member to write the header for.
   20.37 +         * @param heading the heading that was written.
   20.38           */
   20.39 -        public void writeMemberFooter(FieldDoc member);
   20.40 -
   20.41 -        /**
   20.42 -         * Check to see if member details should be printed. If
   20.43 -         * nocomment option set or if there is no text to be printed
   20.44 -         * for deprecation info, inline comment, no serial tag or inline tags,
   20.45 -         * do not print member details.
   20.46 -         *
   20.47 -         * @param member the member to check details for.
   20.48 -         * @return true if details need to be printed
   20.49 -         */
   20.50 -        public boolean shouldPrintMemberDetails(FieldDoc member);
   20.51 +        public void writeFooter (String heading);
   20.52      }
   20.53  
   20.54      /**
   20.55 @@ -193,10 +199,8 @@
   20.56  
   20.57          /**
   20.58           * Write the footer.
   20.59 -         *
   20.60 -         * @param member the member to write the header for.
   20.61           */
   20.62 -        public void writeMemberFooter(MethodDoc member);
   20.63 +        public void writeMemberFooter();
   20.64  
   20.65          /**
   20.66           * Write the deprecated information for this member.
    21.1 --- a/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/SerializedFormBuilder.java	Fri Feb 27 10:54:11 2009 -0800
    21.2 +++ b/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/SerializedFormBuilder.java	Mon Mar 02 15:11:29 2009 -0800
    21.3 @@ -25,13 +25,14 @@
    21.4  
    21.5  package com.sun.tools.doclets.internal.toolkit.builders;
    21.6  
    21.7 -import com.sun.tools.doclets.internal.toolkit.util.*;
    21.8 -import com.sun.tools.doclets.internal.toolkit.*;
    21.9 -import com.sun.javadoc.*;
   21.10  import java.io.*;
   21.11  import java.lang.reflect.*;
   21.12  import java.util.*;
   21.13  
   21.14 +import com.sun.javadoc.*;
   21.15 +import com.sun.tools.doclets.internal.toolkit.util.*;
   21.16 +import com.sun.tools.doclets.internal.toolkit.*;
   21.17 +
   21.18  /**
   21.19   * Builds the serialized form.
   21.20   *
   21.21 @@ -40,6 +41,7 @@
   21.22   * Do not use it as an API
   21.23   *
   21.24   * @author Jamie Ho
   21.25 + * @author Bhavesh Patel (Modified)
   21.26   * @since 1.5
   21.27   */
   21.28  public class SerializedFormBuilder extends AbstractBuilder {
   21.29 @@ -379,7 +381,7 @@
   21.30       * Build the method footer.
   21.31       */
   21.32      public void buildMethodFooter() {
   21.33 -        methodWriter.writeMemberFooter((MethodDoc) currentMember);
   21.34 +        methodWriter.writeMemberFooter();
   21.35      }
   21.36  
   21.37      /**
   21.38 @@ -405,15 +407,18 @@
   21.39                  Util.asList(classDoc.serializableFields()).get(0);
   21.40              // Check to see if there are inline comments, tags or deprecation
   21.41              // information to be printed.
   21.42 -            if (fieldWriter.shouldPrintMemberDetails(serialPersistentField)) {
   21.43 +            if (fieldWriter.shouldPrintOverview(serialPersistentField)) {
   21.44                  fieldWriter.writeHeader(
   21.45 -                    configuration.getText("doclet.Serialized_Form_class"));
   21.46 +                        configuration.getText("doclet.Serialized_Form_class"));
   21.47                  fieldWriter.writeMemberDeprecatedInfo(serialPersistentField);
   21.48                  if (!configuration.nocomment) {
   21.49                      fieldWriter.writeMemberDescription(serialPersistentField);
   21.50                      fieldWriter.writeMemberTags(serialPersistentField);
   21.51                  }
   21.52 -                fieldWriter.writeMemberFooter(serialPersistentField);
   21.53 +                // Footer required to close the definition list tag
   21.54 +                // for serialization overview.
   21.55 +                fieldWriter.writeFooter(
   21.56 +                        configuration.getText("doclet.Serialized_Form_class"));
   21.57              }
   21.58          }
   21.59      }
   21.60 @@ -476,11 +481,11 @@
   21.61      }
   21.62  
   21.63      /**
   21.64 -     * Build the field footer.
   21.65 +     * Build the field sub footer.
   21.66       */
   21.67 -    public void buildFieldFooter() {
   21.68 +    public void buildFieldSubFooter() {
   21.69          if (! currentClass.definesSerializableFields()) {
   21.70 -            fieldWriter.writeMemberFooter((FieldDoc) currentMember);
   21.71 +            fieldWriter.writeMemberFooter();
   21.72          }
   21.73      }
   21.74  
    22.1 --- a/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclet.xml	Fri Feb 27 10:54:11 2009 -0800
    22.2 +++ b/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclet.xml	Mon Mar 02 15:11:29 2009 -0800
    22.3 @@ -1,205 +1,205 @@
    22.4 -<?xml version='1.0' encoding='utf-8'?>
    22.5 -
    22.6 -<!--
    22.7 - Copyright 2003 Sun Microsystems, Inc.  All Rights Reserved.
    22.8 - DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    22.9 -
   22.10 - This code is free software; you can redistribute it and/or modify it
   22.11 - under the terms of the GNU General Public License version 2 only, as
   22.12 - published by the Free Software Foundation.  Sun designates this
   22.13 - particular file as subject to the "Classpath" exception as provided
   22.14 - by Sun in the LICENSE file that accompanied this code.
   22.15 -
   22.16 - This code is distributed in the hope that it will be useful, but WITHOUT
   22.17 - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   22.18 - FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   22.19 - version 2 for more details (a copy is included in the LICENSE file that
   22.20 - accompanied this code).
   22.21 -
   22.22 - You should have received a copy of the GNU General Public License version
   22.23 - 2 along with this work; if not, write to the Free Software Foundation,
   22.24 - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   22.25 -
   22.26 - Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   22.27 - CA 95054 USA or visit www.sun.com if you need additional information or
   22.28 - have any questions.
   22.29 --->
   22.30 -
   22.31 -
   22.32 -<Doclet>
   22.33 -
   22.34 -    <PackageDoc>
   22.35 -        <PackageHeader/>
   22.36 -        <Summary>
   22.37 -            <SummaryHeader/>
   22.38 -            <InterfaceSummary/>
   22.39 -            <ClassSummary/>
   22.40 -            <EnumSummary/>
   22.41 -            <ExceptionSummary/>
   22.42 -            <ErrorSummary/>
   22.43 -            <AnnotationTypeSummary/>
   22.44 -            <SummaryFooter/>
   22.45 -        </Summary>
   22.46 -        <PackageDescription/>
   22.47 -        <PackageTags/>
   22.48 -        <PackageFooter/>
   22.49 -    </PackageDoc>
   22.50 -    
   22.51 -    <AnnotationTypeDoc>
   22.52 -        <AnnotationTypeHeader/>
   22.53 -        <DeprecationInfo/>
   22.54 -        <AnnotationTypeSignature/>
   22.55 -        <AnnotationTypeDescription/>
   22.56 -        <AnnotationTypeTagInfo/>
   22.57 -        <MemberSummary>
   22.58 -        	<AnnotationTypeRequiredMemberSummary/>
   22.59 -            <AnnotationTypeOptionalMemberSummary/>
   22.60 -        </MemberSummary>
   22.61 -        <AnnotationTypeRequiredMemberDetails>
   22.62 -            <Header/>
   22.63 -            <AnnotationTypeRequiredMember>
   22.64 -                <MemberHeader/>
   22.65 -                <Signature/>
   22.66 -                <DeprecationInfo/>
   22.67 -                <MemberComments/>
   22.68 -                <TagInfo/>
   22.69 -                <MemberFooter/>
   22.70 -            </AnnotationTypeRequiredMember>
   22.71 -        </AnnotationTypeRequiredMemberDetails>
   22.72 -        <AnnotationTypeOptionalMemberDetails>
   22.73 -            <AnnotationTypeOptionalMember>
   22.74 -                <MemberHeader/>
   22.75 -                <Signature/>
   22.76 -                <DeprecationInfo/>
   22.77 -                <MemberComments/>
   22.78 -                <TagInfo/>
   22.79 -                <DefaultValueInfo/>
   22.80 -                <MemberFooter/>
   22.81 -            </AnnotationTypeOptionalMember>
   22.82 -            <Footer/>
   22.83 -        </AnnotationTypeOptionalMemberDetails>        
   22.84 -        <AnnotationTypeFooter/>
   22.85 -    </AnnotationTypeDoc>
   22.86 -    
   22.87 -    <ClassDoc>
   22.88 -        <ClassHeader/>
   22.89 -        <ClassTree/>
   22.90 -        <TypeParamInfo/>
   22.91 -        <SuperInterfacesInfo/>
   22.92 -        <ImplementedInterfacesInfo/>        
   22.93 -        <SubClassInfo/>
   22.94 -        <SubInterfacesInfo/>
   22.95 -        <InterfaceUsageInfo/>
   22.96 -        <NestedClassInfo/>
   22.97 -        <DeprecationInfo/>
   22.98 -        <ClassSignature/>
   22.99 -        <ClassDescription/>
  22.100 -        <ClassTagInfo/>
  22.101 -        <MemberSummary>
  22.102 -            <NestedClassesSummary/>
  22.103 -            <NestedClassesInheritedSummary/>
  22.104 -            <EnumConstantsSummary/>
  22.105 -            <FieldsSummary/>
  22.106 -            <FieldsInheritedSummary/>  
  22.107 -            <ConstructorsSummary/>
  22.108 -            <MethodsSummary/>
  22.109 -            <MethodsInheritedSummary/>
  22.110 -        </MemberSummary>
  22.111 -        <EnumConstantsDetails>
  22.112 -            <Header/>
  22.113 -            <EnumConstant>
  22.114 -                <EnumConstantHeader/>
  22.115 -                <Signature/>
  22.116 -                <DeprecationInfo/>
  22.117 -                <EnumConstantComments/>
  22.118 -                <TagInfo/>
  22.119 -                <EnumConstantFooter/>
  22.120 -            </EnumConstant>
  22.121 -            <Footer/>
  22.122 -        </EnumConstantsDetails>
  22.123 -        <FieldDetails>
  22.124 -            <Header/>
  22.125 -            <FieldDoc>
  22.126 -                <FieldHeader/>
  22.127 -                <Signature/>
  22.128 -                <DeprecationInfo/>
  22.129 -                <FieldComments/>
  22.130 -                <TagInfo/>
  22.131 -                <FieldFooter/>
  22.132 -            </FieldDoc>
  22.133 -            <Footer/>
  22.134 -        </FieldDetails>
  22.135 -        <ConstructorDetails>
  22.136 -            <Header/>
  22.137 -            <ConstructorDoc>
  22.138 -                <ConstructorHeader/>
  22.139 -                <Signature/>
  22.140 -                <DeprecationInfo/>
  22.141 -                <ConstructorComments/>
  22.142 -                <TagInfo/>
  22.143 -                <ConstructorFooter/>
  22.144 -            </ConstructorDoc>
  22.145 -            <Footer/>
  22.146 -        </ConstructorDetails>
  22.147 -        <MethodDetails>
  22.148 -            <Header/>
  22.149 -            <MethodDoc>
  22.150 -                <MethodHeader/>
  22.151 -                <Signature/>
  22.152 -                <DeprecationInfo/>
  22.153 -                <MethodComments/>
  22.154 -                <TagInfo/>
  22.155 -                <MethodFooter/>
  22.156 -            </MethodDoc>
  22.157 -            <Footer/>
  22.158 -        </MethodDetails>
  22.159 -        <ClassFooter/>
  22.160 -    </ClassDoc>
  22.161 -    
  22.162 -    <ConstantSummary>
  22.163 -        <Header/>
  22.164 -        <Contents/>
  22.165 -        <ConstantSummaries>
  22.166 -            <PackageConstantSummary>
  22.167 -                <PackageHeader/>
  22.168 -                <ClassConstantSummary>
  22.169 -                    <ClassHeader/>
  22.170 -                    <ConstantMembers/>
  22.171 -                    <ClassFooter/>
  22.172 -                </ClassConstantSummary>     
  22.173 -            </PackageConstantSummary>
  22.174 -        </ConstantSummaries>    
  22.175 -        <Footer/>
  22.176 -    </ConstantSummary>
  22.177 -    
  22.178 -    <SerializedForm>
  22.179 -        <Header/>
  22.180 -        <SerializedFormSummaries>
  22.181 -            <PackageSerializedForm>
  22.182 -                <PackageHeader/>
  22.183 -                <ClassSerializedForm>
  22.184 -                    <ClassHeader/>
  22.185 -                    <SerialUIDInfo/>
  22.186 -                    <MethodHeader/>
  22.187 -                    <SerializableMethods>
  22.188 -                        <MethodSubHeader/>
  22.189 -                        <DeprecatedMethodInfo/>
  22.190 -                        <MethodInfo>
  22.191 -                            <MethodDescription/>
  22.192 -                            <MethodTags/>
  22.193 -                        </MethodInfo>
  22.194 -                        <MethodFooter/>
  22.195 -                    </SerializableMethods>
  22.196 -                    <FieldHeader/>
  22.197 -                    <SerializableFields>
  22.198 -                        <FieldSubHeader/>
  22.199 -                        <FieldDeprecationInfo/>
  22.200 -                        <FieldInfo/>
  22.201 -                        <FieldFooter/>
  22.202 -                    </SerializableFields>                  
  22.203 -                </ClassSerializedForm>
  22.204 -            </PackageSerializedForm>
  22.205 -        </SerializedFormSummaries>
  22.206 -        <Footer/>
  22.207 -    </SerializedForm>
  22.208 -</Doclet>
  22.209 +<?xml version='1.0' encoding='utf-8'?>
  22.210 +
  22.211 +<!--
  22.212 + Copyright 2003 Sun Microsystems, Inc.  All Rights Reserved.
  22.213 + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  22.214 +
  22.215 + This code is free software; you can redistribute it and/or modify it
  22.216 + under the terms of the GNU General Public License version 2 only, as
  22.217 + published by the Free Software Foundation.  Sun designates this
  22.218 + particular file as subject to the "Classpath" exception as provided
  22.219 + by Sun in the LICENSE file that accompanied this code.
  22.220 +
  22.221 + This code is distributed in the hope that it will be useful, but WITHOUT
  22.222 + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  22.223 + FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  22.224 + version 2 for more details (a copy is included in the LICENSE file that
  22.225 + accompanied this code).
  22.226 +
  22.227 + You should have received a copy of the GNU General Public License version
  22.228 + 2 along with this work; if not, write to the Free Software Foundation,
  22.229 + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  22.230 +
  22.231 + Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  22.232 + CA 95054 USA or visit www.sun.com if you need additional information or
  22.233 + have any questions.
  22.234 +-->
  22.235 +
  22.236 +
  22.237 +<Doclet>
  22.238 +
  22.239 +    <PackageDoc>
  22.240 +        <PackageHeader/>
  22.241 +        <Summary>
  22.242 +            <SummaryHeader/>
  22.243 +            <InterfaceSummary/>
  22.244 +            <ClassSummary/>
  22.245 +            <EnumSummary/>
  22.246 +            <ExceptionSummary/>
  22.247 +            <ErrorSummary/>
  22.248 +            <AnnotationTypeSummary/>
  22.249 +            <SummaryFooter/>
  22.250 +        </Summary>
  22.251 +        <PackageDescription/>
  22.252 +        <PackageTags/>
  22.253 +        <PackageFooter/>
  22.254 +    </PackageDoc>
  22.255 +    
  22.256 +    <AnnotationTypeDoc>
  22.257 +        <AnnotationTypeHeader/>
  22.258 +        <DeprecationInfo/>
  22.259 +        <AnnotationTypeSignature/>
  22.260 +        <AnnotationTypeDescription/>
  22.261 +        <AnnotationTypeTagInfo/>
  22.262 +        <MemberSummary>
  22.263 +        	<AnnotationTypeRequiredMemberSummary/>
  22.264 +            <AnnotationTypeOptionalMemberSummary/>
  22.265 +        </MemberSummary>
  22.266 +        <AnnotationTypeRequiredMemberDetails>
  22.267 +            <Header/>
  22.268 +            <AnnotationTypeRequiredMember>
  22.269 +                <MemberHeader/>
  22.270 +                <Signature/>
  22.271 +                <DeprecationInfo/>
  22.272 +                <MemberComments/>
  22.273 +                <TagInfo/>
  22.274 +                <MemberFooter/>
  22.275 +            </AnnotationTypeRequiredMember>
  22.276 +        </AnnotationTypeRequiredMemberDetails>
  22.277 +        <AnnotationTypeOptionalMemberDetails>
  22.278 +            <AnnotationTypeOptionalMember>
  22.279 +                <MemberHeader/>
  22.280 +                <Signature/>
  22.281 +                <DeprecationInfo/>
  22.282 +                <MemberComments/>
  22.283 +                <TagInfo/>
  22.284 +                <DefaultValueInfo/>
  22.285 +                <MemberFooter/>
  22.286 +            </AnnotationTypeOptionalMember>
  22.287 +            <Footer/>
  22.288 +        </AnnotationTypeOptionalMemberDetails>        
  22.289 +        <AnnotationTypeFooter/>
  22.290 +    </AnnotationTypeDoc>
  22.291 +    
  22.292 +    <ClassDoc>
  22.293 +        <ClassHeader/>
  22.294 +        <ClassTree/>
  22.295 +        <TypeParamInfo/>
  22.296 +        <SuperInterfacesInfo/>
  22.297 +        <ImplementedInterfacesInfo/>        
  22.298 +        <SubClassInfo/>
  22.299 +        <SubInterfacesInfo/>
  22.300 +        <InterfaceUsageInfo/>
  22.301 +        <NestedClassInfo/>
  22.302 +        <DeprecationInfo/>
  22.303 +        <ClassSignature/>
  22.304 +        <ClassDescription/>
  22.305 +        <ClassTagInfo/>
  22.306 +        <MemberSummary>
  22.307 +            <NestedClassesSummary/>
  22.308 +            <NestedClassesInheritedSummary/>
  22.309 +            <EnumConstantsSummary/>
  22.310 +            <FieldsSummary/>
  22.311 +            <FieldsInheritedSummary/>  
  22.312 +            <ConstructorsSummary/>
  22.313 +            <MethodsSummary/>
  22.314 +            <MethodsInheritedSummary/>
  22.315 +        </MemberSummary>
  22.316 +        <EnumConstantsDetails>
  22.317 +            <Header/>
  22.318 +            <EnumConstant>
  22.319 +                <EnumConstantHeader/>
  22.320 +                <Signature/>
  22.321 +                <DeprecationInfo/>
  22.322 +                <EnumConstantComments/>
  22.323 +                <TagInfo/>
  22.324 +                <EnumConstantFooter/>
  22.325 +            </EnumConstant>
  22.326 +            <Footer/>
  22.327 +        </EnumConstantsDetails>
  22.328 +        <FieldDetails>
  22.329 +            <Header/>
  22.330 +            <FieldDoc>
  22.331 +                <FieldHeader/>
  22.332 +                <Signature/>
  22.333 +                <DeprecationInfo/>
  22.334 +                <FieldComments/>
  22.335 +                <TagInfo/>
  22.336 +                <FieldFooter/>
  22.337 +            </FieldDoc>
  22.338 +            <Footer/>
  22.339 +        </FieldDetails>
  22.340 +        <ConstructorDetails>
  22.341 +            <Header/>
  22.342 +            <ConstructorDoc>
  22.343 +                <ConstructorHeader/>
  22.344 +                <Signature/>
  22.345 +                <DeprecationInfo/>
  22.346 +                <ConstructorComments/>
  22.347 +                <TagInfo/>
  22.348 +                <ConstructorFooter/>
  22.349 +            </ConstructorDoc>
  22.350 +            <Footer/>
  22.351 +        </ConstructorDetails>
  22.352 +        <MethodDetails>
  22.353 +            <Header/>
  22.354 +            <MethodDoc>
  22.355 +                <MethodHeader/>
  22.356 +                <Signature/>
  22.357 +                <DeprecationInfo/>
  22.358 +                <MethodComments/>
  22.359 +                <TagInfo/>
  22.360 +                <MethodFooter/>
  22.361 +            </MethodDoc>
  22.362 +            <Footer/>
  22.363 +        </MethodDetails>
  22.364 +        <ClassFooter/>
  22.365 +    </ClassDoc>
  22.366 +    
  22.367 +    <ConstantSummary>
  22.368 +        <Header/>
  22.369 +        <Contents/>
  22.370 +        <ConstantSummaries>
  22.371 +            <PackageConstantSummary>
  22.372 +                <PackageHeader/>
  22.373 +                <ClassConstantSummary>
  22.374 +                    <ClassHeader/>
  22.375 +                    <ConstantMembers/>
  22.376 +                    <ClassFooter/>
  22.377 +                </ClassConstantSummary>     
  22.378 +            </PackageConstantSummary>
  22.379 +        </ConstantSummaries>    
  22.380 +        <Footer/>
  22.381 +    </ConstantSummary>
  22.382 +    
  22.383 +    <SerializedForm>
  22.384 +        <Header/>
  22.385 +        <SerializedFormSummaries>
  22.386 +            <PackageSerializedForm>
  22.387 +                <PackageHeader/>
  22.388 +                <ClassSerializedForm>
  22.389 +                    <ClassHeader/>
  22.390 +                    <SerialUIDInfo/>
  22.391 +                    <MethodHeader/>
  22.392 +                    <SerializableMethods>
  22.393 +                        <MethodSubHeader/>
  22.394 +                        <DeprecatedMethodInfo/>
  22.395 +                        <MethodInfo>
  22.396 +                            <MethodDescription/>
  22.397 +                            <MethodTags/>
  22.398 +                        </MethodInfo>
  22.399 +                        <MethodFooter/>
  22.400 +                    </SerializableMethods>
  22.401 +                    <FieldHeader/>
  22.402 +                    <SerializableFields>
  22.403 +                        <FieldSubHeader/>
  22.404 +                        <FieldDeprecationInfo/>
  22.405 +                        <FieldInfo/>
  22.406 +                        <FieldSubFooter/>
  22.407 +                    </SerializableFields>
  22.408 +                </ClassSerializedForm>
  22.409 +            </PackageSerializedForm>
  22.410 +        </SerializedFormSummaries>
  22.411 +        <Footer/>
  22.412 +    </SerializedForm>
  22.413 +</Doclet>
    23.1 --- a/src/share/classes/com/sun/tools/javac/processing/JavacRoundEnvironment.java	Fri Feb 27 10:54:11 2009 -0800
    23.2 +++ b/src/share/classes/com/sun/tools/javac/processing/JavacRoundEnvironment.java	Mon Mar 02 15:11:29 2009 -0800
    23.3 @@ -1,5 +1,5 @@
    23.4  /*
    23.5 - * Copyright 2005-2008 Sun Microsystems, Inc.  All Rights Reserved.
    23.6 + * Copyright 2005-2009 Sun Microsystems, Inc.  All Rights Reserved.
    23.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    23.8   *
    23.9   * This code is free software; you can redistribute it and/or modify it
   23.10 @@ -111,6 +111,7 @@
   23.11       */
   23.12      public Set<? extends Element> getElementsAnnotatedWith(TypeElement a) {
   23.13          Set<Element> result = Collections.emptySet();
   23.14 +        Types typeUtil = processingEnv.getTypeUtils();
   23.15          if (a.getKind() != ElementKind.ANNOTATION_TYPE)
   23.16              throw new IllegalArgumentException(NOT_AN_ANNOTATION_TYPE + a);
   23.17  
   23.18 @@ -122,7 +123,7 @@
   23.19              throw new AssertionError("Bad implementation type for " + tm);
   23.20  
   23.21          ElementScanner6<Set<Element>, DeclaredType> scanner =
   23.22 -            new AnnotationSetScanner(result);
   23.23 +            new AnnotationSetScanner(result, typeUtil);
   23.24  
   23.25          for (Element element : rootElements)
   23.26              result = scanner.scan(element, annotationTypeElement);
   23.27 @@ -135,9 +136,11 @@
   23.28          ElementScanner6<Set<Element>, DeclaredType> {
   23.29          // Insertion-order preserving set
   23.30          Set<Element> annotatedElements = new LinkedHashSet<Element>();
   23.31 +        Types typeUtil;
   23.32  
   23.33 -        AnnotationSetScanner(Set<Element> defaultSet) {
   23.34 +        AnnotationSetScanner(Set<Element> defaultSet, Types typeUtil) {
   23.35              super(defaultSet);
   23.36 +            this.typeUtil = typeUtil;
   23.37          }
   23.38  
   23.39          @Override
   23.40 @@ -145,7 +148,7 @@
   23.41              java.util.List<? extends AnnotationMirror> annotationMirrors =
   23.42                  processingEnv.getElementUtils().getAllAnnotationMirrors(e);
   23.43              for (AnnotationMirror annotationMirror : annotationMirrors) {
   23.44 -                if (annotationMirror.getAnnotationType().equals(p))
   23.45 +                if (typeUtil.isSameType(annotationMirror.getAnnotationType(), p))
   23.46                      annotatedElements.add(e);
   23.47              }
   23.48              e.accept(this, p);
    24.1 --- a/src/share/classes/javax/annotation/processing/Filer.java	Fri Feb 27 10:54:11 2009 -0800
    24.2 +++ b/src/share/classes/javax/annotation/processing/Filer.java	Mon Mar 02 15:11:29 2009 -0800
    24.3 @@ -35,9 +35,11 @@
    24.4   * processor.  Files created in this way will be known to the
    24.5   * annotation processing tool implementing this interface, better
    24.6   * enabling the tool to manage them.  Source and class files so
    24.7 - * created will be considered for processing by the tool after the
    24.8 - * {@code close} method has been called on the {@code Writer} or
    24.9 - * {@code OutputStream} used to write the contents of the file.
   24.10 + * created will be {@linkplain RoundEnvironment#getRootElements
   24.11 + * considered for processing} by the tool in a subsequent {@linkplain
   24.12 + * RoundEnvironment round of processing} after the {@code close}
   24.13 + * method has been called on the {@code Writer} or {@code
   24.14 + * OutputStream} used to write the contents of the file.
   24.15   *
   24.16   * Three kinds of files are distinguished: source files, class files,
   24.17   * and auxiliary resource files.
    25.1 --- a/test/com/sun/javadoc/AuthorDD/AuthorDD.java	Fri Feb 27 10:54:11 2009 -0800
    25.2 +++ b/test/com/sun/javadoc/AuthorDD/AuthorDD.java	Mon Mar 02 15:11:29 2009 -0800
    25.3 @@ -91,7 +91,7 @@
    25.4  
    25.5              // Test multiple @author tags:
    25.6  
    25.7 -            { "<DT><STRONG>Author:</STRONG></DT>"+NL+"  <DD>Doug Kramer, Jamie, Neal</DD>"+NL,
    25.8 +            { "<DT><STRONG>Author:</STRONG></DT>"+NL+"  <DD>Doug Kramer, Jamie, Neal</DD>",
    25.9                                    BUGID + FS + "p1" + FS + "C1.html" },
   25.10  
   25.11          };
    26.1 --- a/test/com/sun/javadoc/testClassCrossReferences/TestClassCrossReferences.java	Fri Feb 27 10:54:11 2009 -0800
    26.2 +++ b/test/com/sun/javadoc/testClassCrossReferences/TestClassCrossReferences.java	Mon Mar 02 15:11:29 2009 -0800
    26.3 @@ -48,7 +48,7 @@
    26.4              "<A HREF=\"http://java.sun.com/j2se/1.4/docs/api/java/math/BigInteger.html?is-external=true#gcd(java.math.BigInteger)\" " +
    26.5                  "title=\"class or interface in java.math\"><CODE>Link to external member gcd</CODE></A>"},
    26.6          {BUG_ID + FS + "C.html",
    26.7 -            "<STRONG>Overrides:</STRONG><DD><CODE>toString</CODE> in class <CODE>java.lang.Object</CODE>"}
    26.8 +            "<STRONG>Overrides:</STRONG></DT><DD><CODE>toString</CODE> in class <CODE>java.lang.Object</CODE>"}
    26.9      };
   26.10      private static final String[][] NEGATED_TEST = NO_TEST;
   26.11      private static final String[] ARGS =
    27.1 --- a/test/com/sun/javadoc/testConstructorIndent/TestConstructorIndent.java	Fri Feb 27 10:54:11 2009 -0800
    27.2 +++ b/test/com/sun/javadoc/testConstructorIndent/TestConstructorIndent.java	Mon Mar 02 15:11:29 2009 -0800
    27.3 @@ -45,9 +45,10 @@
    27.4  
    27.5      //Input for string search tests.
    27.6      private static final String[][] TEST = {
    27.7 -        {BUG_ID + FS + "C.html", "<DL>"+NL+"<DD>This is just a simple constructor."+ NL +
    27.8 -            "<P>"+NL+"<DL>"+NL+"<DT><STRONG>Parameters:</STRONG><DD><CODE>i</CODE> - a param.</DL>"+NL +
    27.9 -            "</DL>"
   27.10 +        {BUG_ID + FS + "C.html", "<DL>" + NL + "<DD>This is just a simple constructor." + NL +
   27.11 +            "<P>" + NL + "</DD>" + NL + "<DD><DL>" + NL + "<DT><STRONG>Parameters:</STRONG>" +
   27.12 +            "</DT><DD><CODE>i</CODE> - a param.</DD></DL>" + NL +
   27.13 +            "</DD>" + NL + "</DL>"
   27.14          }
   27.15      };
   27.16      private static final String[][] NEGATED_TEST = NO_TEST;
    28.1 --- a/test/com/sun/javadoc/testDeprecatedDocs/TestDeprecatedDocs.java	Fri Feb 27 10:54:11 2009 -0800
    28.2 +++ b/test/com/sun/javadoc/testDeprecatedDocs/TestDeprecatedDocs.java	Mon Mar 02 15:11:29 2009 -0800
    28.3 @@ -78,13 +78,12 @@
    28.4  
    28.5          {TARGET_FILE2, "<STRONG>Deprecated.</STRONG>" + NL +
    28.6                  "<P>" + NL +
    28.7 -            "<DL>" + NL +
    28.8 -            "<DT><PRE><FONT SIZE=\"-1\">@Deprecated" + NL +
    28.9 +            "<PRE><FONT SIZE=\"-1\">@Deprecated" + NL +
   28.10              "</FONT>public class <STRONG>DeprecatedClassByAnnotation</STRONG>"},
   28.11  
   28.12          {TARGET_FILE2, "public int <STRONG>field</STRONG></PRE>" + NL +
   28.13              "<DL>" + NL +
   28.14 -            "<DD><STRONG>Deprecated.</STRONG>&nbsp;<DL>"},
   28.15 +            "<DD><STRONG>Deprecated.</STRONG>&nbsp;</DD></DL>"},
   28.16  
   28.17          {TARGET_FILE2, "<FONT SIZE=\"-1\">@Deprecated" + NL +
   28.18              "</FONT>public <STRONG>DeprecatedClassByAnnotation</STRONG>()</PRE>" + NL +
    29.1 --- a/test/com/sun/javadoc/testExternalOverridenMethod/TestExternalOverridenMethod.java	Fri Feb 27 10:54:11 2009 -0800
    29.2 +++ b/test/com/sun/javadoc/testExternalOverridenMethod/TestExternalOverridenMethod.java	Mon Mar 02 15:11:29 2009 -0800
    29.3 @@ -39,13 +39,13 @@
    29.4      private static final String BUG_ID = "4857717";
    29.5      private static final String[][] TEST = {
    29.6          {BUG_ID + FS + "pkg" + FS + "XReader.html",
    29.7 -            "<STRONG>Overrides:</STRONG><DD><CODE><A HREF=\"" +
    29.8 +            "<STRONG>Overrides:</STRONG></DT><DD><CODE><A HREF=\"" +
    29.9              "http://java.sun.com/j2se/1.4.1/docs/api/java/io/FilterReader.html?is-external=true#read()\"" +
   29.10                  " title=\"class or interface in java.io\">read</A></CODE> in class " +
   29.11                  "<CODE><A HREF=\"http://java.sun.com/j2se/1.4.1/docs/api/java/io/FilterReader.html?is-external=true\"" +
   29.12                  " title=\"class or interface in java.io\">FilterReader</A>"},
   29.13          {BUG_ID + FS + "pkg" + FS + "XReader.html",
   29.14 -            "<STRONG>Specified by:</STRONG><DD><CODE><A HREF=\"" +
   29.15 +            "<STRONG>Specified by:</STRONG></DT><DD><CODE><A HREF=\"" +
   29.16              "http://java.sun.com/j2se/1.4.1/docs/api/java/io/DataInput.html?is-external=true#readInt()\"" +
   29.17              " title=\"class or interface in java.io\">readInt</A></CODE> in interface " +
   29.18              "<CODE><A HREF=\"http://java.sun.com/j2se/1.4.1/docs/api/java/io/DataInput.html?is-external=true\"" +
    30.1 --- a/test/com/sun/javadoc/testHref/TestHref.java	Fri Feb 27 10:54:11 2009 -0800
    30.2 +++ b/test/com/sun/javadoc/testHref/TestHref.java	Mon Mar 02 15:11:29 2009 -0800
    30.3 @@ -67,7 +67,7 @@
    30.4          },
    30.5          //@see test.
    30.6          {BUG_ID + FS + "pkg" + FS + "C2.html",
    30.7 -            "See Also:</STRONG><DD><A HREF=\"../pkg/C1.html#method(int, int, java.util.ArrayList)\">"
    30.8 +            "See Also:</STRONG></DT><DD><A HREF=\"../pkg/C1.html#method(int, int, java.util.ArrayList)\">"
    30.9          },
   30.10  
   30.11          //Header does not link to the page itself.
    31.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    31.2 +++ b/test/com/sun/javadoc/testHtmlDefinitionListTag/TestHtmlDefinitionListTag.java	Mon Mar 02 15:11:29 2009 -0800
    31.3 @@ -0,0 +1,370 @@
    31.4 +/*
    31.5 + * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
    31.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    31.7 + *
    31.8 + * This code is free software; you can redistribute it and/or modify it
    31.9 + * under the terms of the GNU General Public License version 2 only, as
   31.10 + * published by the Free Software Foundation.  Sun designates this
   31.11 + * particular file as subject to the "Classpath" exception as provided
   31.12 + * by Sun in the LICENSE file that accompanied this code.
   31.13 + *
   31.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   31.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   31.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   31.17 + * version 2 for more details (a copy is included in the LICENSE file that
   31.18 + * accompanied this code).
   31.19 + *
   31.20 + * You should have received a copy of the GNU General Public License version
   31.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   31.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   31.23 + *
   31.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   31.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   31.26 + * have any questions.
   31.27 + */
   31.28 +
   31.29 +/*
   31.30 + * @test
   31.31 + * @bug 6786690
   31.32 + * @summary This test verifies the nesting of definition list tags.
   31.33 + * @author Bhavesh Patel
   31.34 + * @library ../lib/
   31.35 + * @build JavadocTester
   31.36 + * @build TestHtmlDefinitionListTag
   31.37 + * @run main TestHtmlDefinitionListTag
   31.38 + */
   31.39 +
   31.40 +public class TestHtmlDefinitionListTag extends JavadocTester {
   31.41 +
   31.42 +    private static final String BUG_ID = "6786690";
   31.43 +
   31.44 +    // Test common to all runs of javadoc. The class signature should print
   31.45 +    // properly enclosed definition list tags and the Annotation Type
   31.46 +    // Optional Element should print properly nested definition list tags
   31.47 +    // for default value.
   31.48 +    private static final String[][] TEST_ALL = {
   31.49 +        {BUG_ID + FS + "pkg1" + FS + "C1.html", "<PRE>public class " +
   31.50 +                 "<STRONG>C1</STRONG>" + NL + "extends " +
   31.51 +                 "java.lang.Object" + NL + "implements " +
   31.52 +                 "java.io.Serializable</PRE>"},
   31.53 +        {BUG_ID + FS + "pkg1" + FS + "C4.html", "<DL>" + NL + "<DD><DL>" + NL +
   31.54 +                 "<DT><STRONG>Default:</STRONG></DT><DD>true</DD>" + NL +
   31.55 +                 "</DL>" + NL + "</DD>" + NL + "</DL>"}};
   31.56 +
   31.57 +    // Test for normal run of javadoc in which various ClassDocs and
   31.58 +    // serialized form should have properly nested definition list tags
   31.59 +    // enclosing comments, tags and deprecated information.
   31.60 +    private static final String[][] TEST_CMNT_DEPR = {
   31.61 +        {BUG_ID + FS + "pkg1" + FS + "C1.html", "<DL>" + NL +
   31.62 +                 "<DT><STRONG>Since:</STRONG></DT>" + NL +
   31.63 +                 "  <DD>JDK1.0</DD>" + NL + "<DT><STRONG>See Also:</STRONG></DT><DD>" +
   31.64 +                 "<A HREF=\"../pkg1/C2.html\" title=\"class in pkg1\">" +
   31.65 +                 "<CODE>C2</CODE></A>, " + NL +
   31.66 +                 "<A HREF=\"../serialized-form.html#pkg1.C1\">" +
   31.67 +                 "Serialized Form</A></DD></DL>"},
   31.68 +        {BUG_ID + FS + "pkg1" + FS + "C1.html", "<DL>" + NL +
   31.69 +                 "<DD><STRONG>Deprecated.</STRONG>&nbsp;<I>As of JDK version" +
   31.70 +                 " 1.5, replaced by" + NL +
   31.71 +                 " <A HREF=\"../pkg1/C1.html#setUndecorated(boolean)\">" +
   31.72 +                 "<CODE>setUndecorated(boolean)</CODE></A>.</I></DD>" +
   31.73 +                 "<DD>This field indicates whether the C1 is undecorated." + NL +
   31.74 +                 "<P>" + NL + "</DD>" + NL + "<DD><DL>" + NL + "<DT><STRONG>" +
   31.75 +                 "Since:</STRONG></DT>" + NL + "  <DD>1.4</DD>" + NL + "<DT>" +
   31.76 +                 "<STRONG>See Also:</STRONG></DT><DD>" +
   31.77 +                 "<A HREF=\"../pkg1/C1.html#setUndecorated(boolean)\"><CODE>" +
   31.78 +                 "setUndecorated(boolean)</CODE></A></DD></DL>" + NL +"</DD>" + NL +
   31.79 +                 "</DL>"},
   31.80 +        {BUG_ID + FS + "pkg1" + FS + "C1.html", "<DL>" + NL +
   31.81 +                 "<DD>Constructor." + NL + "<P>" + NL + "</DD>" + NL +
   31.82 +                 "<DD><DL>" + NL + "<DT><STRONG>Parameters:</STRONG></DT><DD>" +
   31.83 +                 "<CODE>title</CODE> - the title</DD><DD><CODE>test</CODE>" +
   31.84 +                 " - boolean value</DD>" + NL + "<DT><STRONG>Throws:</STRONG></DT>" + NL +
   31.85 +                 "<DD><CODE>java.lang.IllegalArgumentException</CODE>" +
   31.86 +                 " - if the <code>owner</code>'s" + NL + "     <code>GraphicsConfiguration" +
   31.87 +                 "</code> is not from a screen device</DD>" + NL +"<DD><CODE>" +
   31.88 +                 "HeadlessException</CODE></DD></DL>" + NL + "</DD>" + NL +
   31.89 +                 "</DL>"},
   31.90 +        {BUG_ID + FS + "pkg1" + FS + "C1.html", "<DL>" + NL +
   31.91 +                 "<DD>Method comments." + NL + "<P>" + NL +
   31.92 +                 "</DD>" + NL + "<DD><DL>" + NL + "<DT><STRONG>Parameters:" +
   31.93 +                 "</STRONG></DT><DD><CODE>undecorated</CODE> - <code>true</code>" +
   31.94 +                 " if no decorations are" + NL + "         to be enabled;" + NL +
   31.95 +                 "         <code>false</code> if decorations are to be enabled." +
   31.96 +                 "</DD><DT><STRONG>Since:</STRONG></DT>" + NL +
   31.97 +                 "  <DD>1.4</DD>" + NL + "<DT><STRONG>See Also:</STRONG></DT>" +
   31.98 +                 "<DD><A HREF=\"../pkg1/C1.html#readObject()\"><CODE>" +
   31.99 +                 "readObject()</CODE></A></DD></DL>" + NL + "</DD>" + NL +
  31.100 +                 "</DL>"},
  31.101 +        {BUG_ID + FS + "pkg1" + FS + "C1.html", "<DL>" + NL + "<DD><DL>" + NL +
  31.102 +                 "<DT><STRONG>Throws:</STRONG></DT>" + NL + "<DD><CODE>" +
  31.103 +                 "java.io.IOException</CODE></DD><DT><STRONG>See Also:" +
  31.104 +                 "</STRONG></DT><DD>" +
  31.105 +                 "<A HREF=\"../pkg1/C1.html#setUndecorated(boolean)\">" +
  31.106 +                 "<CODE>setUndecorated(boolean)</CODE></A></DD></DL>" + NL +
  31.107 +                 "</DD>" + NL + "</DL>"},
  31.108 +        {BUG_ID + FS + "pkg1" + FS + "C1.ModalExclusionType.html", "<DL>" + NL +
  31.109 +                 "<DD>No modal exclusion." + NL + "<P>" + NL +"</DD>" + NL +
  31.110 +                 "</DL>"},
  31.111 +        {BUG_ID + FS + "pkg1" + FS + "C2.html", "<DL>" + NL + "<DD>Constructor." + NL +
  31.112 +                 "<P>" + NL +"</DD>" + NL + "</DL>"},
  31.113 +        {BUG_ID + FS + "pkg1" + FS + "C2.html", "<DL>" + NL + "<DD><STRONG>" +
  31.114 +                 "Deprecated.</STRONG>&nbsp;<I>As of JDK version 1.5, replaced " +
  31.115 +                 "by" + NL + " <A HREF=\"../pkg1/C1.html#setUndecorated(boolean)\">" +
  31.116 +                 "<CODE>setUndecorated(boolean)</CODE></A>.</I>" + NL + "<P>" + NL +
  31.117 +                 "</DD><DD>Set visible." + NL + "<P>" + NL + "</DD>" +NL +
  31.118 +                 "<DD><DL>" + NL + "<DT><STRONG>Parameters:</STRONG></DT><DD>" +
  31.119 +                 "<CODE>set</CODE> - boolean</DD><DT><STRONG>Since:</STRONG></DT>" + NL +
  31.120 +                 "  <DD>1.4</DD></DL>" + NL + "</DD>" + NL + "</DL>"},
  31.121 +        {BUG_ID + FS + "pkg1" + FS + "C3.html", "<DL>" + NL + "<DD>Comment." + NL +
  31.122 +                 "<P>" + NL + "</DD>" + NL + "</DL>"},
  31.123 +        {BUG_ID + FS + "serialized-form.html", "<DL>" + NL + "<DD><DL>" + NL +
  31.124 +                 "<DT><STRONG>Throws:</STRONG></DT>" + NL + "<DD><CODE>" +
  31.125 +                 "java.io.IOException</CODE></DD><DT><STRONG>See Also:</STRONG>" +
  31.126 +                 "</DT><DD><A HREF=\"pkg1/C1.html#setUndecorated(boolean)\">" +
  31.127 +                 "<CODE>C1.setUndecorated(boolean)</CODE></A></DD></DL>" + NL +
  31.128 +                 "</DD>" + NL + "</DL>"},
  31.129 +        {BUG_ID + FS + "serialized-form.html", "<DL>" + NL +
  31.130 +                 "<DD><STRONG>Deprecated.</STRONG>&nbsp;<I>As of JDK version " +
  31.131 +                 "1.5, replaced by" + NL +
  31.132 +                 " <A HREF=\"pkg1/C1.html#setUndecorated(boolean)\">" +
  31.133 +                 "<CODE>setUndecorated(boolean)</CODE></A>.</I></DD>" +
  31.134 +                 "<DD>This field indicates whether the C1 is undecorated." + NL +
  31.135 +                 "<P>" + NL + "</DD>" + NL + "<DD>&nbsp;</DD>" + NL +
  31.136 +                 "<DD><DL>" + NL + "<DT><STRONG>Since:</STRONG></DT>" + NL +
  31.137 +                 "  <DD>1.4</DD>" + NL + "<DT><STRONG>See Also:</STRONG>" +
  31.138 +                 "</DT><DD><A HREF=\"pkg1/C1.html#setUndecorated(boolean)\">" +
  31.139 +                 "<CODE>C1.setUndecorated(boolean)</CODE></A></DD></DL>" + NL +
  31.140 +                 "</DD>" + NL + "</DL>"},
  31.141 +        {BUG_ID + FS + "serialized-form.html", "<DL>" + NL +
  31.142 +                 "<DD><STRONG>Deprecated.</STRONG>&nbsp;<I>As of JDK version" +
  31.143 +                 " 1.5, replaced by" + NL +
  31.144 +                 " <A HREF=\"pkg1/C1.html#setUndecorated(boolean)\">" +
  31.145 +                 "<CODE>setUndecorated(boolean)</CODE></A>.</I>" + NL + "<P>" + NL +
  31.146 +                 "</DD><DD>Reads the object stream." + NL + "<P>" + NL +
  31.147 +                 "</DD>" + NL + "<DD><DL>" + NL + "<DT><STRONG>Throws:" +
  31.148 +                 "</STRONG></DT>" + NL + "<DD><CODE><code>" +
  31.149 +                 "IOException</code></CODE></DD>" + NL +
  31.150 +                 "<DD><CODE>java.io.IOException</CODE></DD></DL>" + NL +
  31.151 +                 "</DD>" + NL + "</DL>"},
  31.152 +        {BUG_ID + FS + "serialized-form.html", "<DL>" + NL +
  31.153 +                 "<DD><STRONG>Deprecated.</STRONG>&nbsp;</DD><DD>" +
  31.154 +                 "The name for this class." + NL + "<P>" + NL + "</DD>" + NL +
  31.155 +                 "<DD>&nbsp;</DD>" + NL + "</DL>"}};
  31.156 +
  31.157 +    // Test with -nocomment option. The ClassDocs and serialized form should
  31.158 +    // have properly nested definition list tags enclosing deprecated
  31.159 +    // information and should not display definition lists for comments
  31.160 +    // and tags.
  31.161 +    private static final String[][] TEST_NOCMNT = {
  31.162 +        {BUG_ID + FS + "pkg1" + FS + "C1.html", "<DL>" + NL + "<DD><STRONG>" +
  31.163 +                 "Deprecated.</STRONG>&nbsp;<I>As of JDK version 1.5, replaced by" + NL +
  31.164 +                 " <A HREF=\"../pkg1/C1.html#setUndecorated(boolean)\"><CODE>" +
  31.165 +                 "setUndecorated(boolean)</CODE></A>.</I></DD></DL>"},
  31.166 +        {BUG_ID + FS + "pkg1" + FS + "C2.html", "<DL>" + NL +
  31.167 +                 "<DD><STRONG>Deprecated.</STRONG>&nbsp;<I>As of JDK version" +
  31.168 +                 " 1.5, replaced by" + NL +
  31.169 +                 " <A HREF=\"../pkg1/C1.html#setUndecorated(boolean)\">" +
  31.170 +                 "<CODE>setUndecorated(boolean)</CODE></A>.</I>" + NL + "<P>" + NL +
  31.171 +                 "</DD></DL>"},
  31.172 +        {BUG_ID + FS + "pkg1" + FS + "C5.html", "<PRE>" + NL +
  31.173 +                 "protected <STRONG>C5</STRONG>()</PRE>" + NL + "<DL>" + NL +
  31.174 +                 "<DD><STRONG>Deprecated.</STRONG>&nbsp;</DD></DL>"},
  31.175 +        {BUG_ID + FS + "pkg1" + FS + "C5.html", "<PRE>" + NL +
  31.176 +                 "public void <STRONG>printInfo</STRONG>()</PRE>" + NL + "<DL>" + NL +
  31.177 +                 "<DD><STRONG>Deprecated.</STRONG>&nbsp;</DD></DL>"},
  31.178 +        {BUG_ID + FS + "serialized-form.html", "<PRE>" + NL + "boolean <STRONG>" +
  31.179 +                 "undecorated</STRONG></PRE>" + NL + "<DL>" + NL + "<DD><STRONG>" +
  31.180 +                 "Deprecated.</STRONG>&nbsp;<I>As of JDK version 1.5, replaced by" + NL +
  31.181 +                 " <A HREF=\"pkg1/C1.html#setUndecorated(boolean)\"><CODE>" +
  31.182 +                 "setUndecorated(boolean)</CODE></A>.</I></DD></DL>"},
  31.183 +        {BUG_ID + FS + "serialized-form.html", "<DL>" + NL + "<DD><STRONG>" +
  31.184 +                 "Deprecated.</STRONG>&nbsp;<I>As of JDK version" +
  31.185 +                 " 1.5, replaced by" + NL +
  31.186 +                 " <A HREF=\"pkg1/C1.html#setUndecorated(boolean)\">" +
  31.187 +                 "<CODE>setUndecorated(boolean)</CODE></A>.</I>" + NL + "<P>" + NL +
  31.188 +                 "</DD></DL>"},
  31.189 +        {BUG_ID + FS + "serialized-form.html", "<PRE>" + NL + "int <STRONG>" +
  31.190 +                 "publicKey</STRONG></PRE>" + NL + "<DL>" + NL + "<DD><STRONG>" +
  31.191 +                 "Deprecated.</STRONG>&nbsp;</DD></DL>"}};
  31.192 +
  31.193 +    // Test with -nodeprecated option. The ClassDocs should have properly nested
  31.194 +    // definition list tags enclosing comments and tags. The ClassDocs should not
  31.195 +    // display definition list for deprecated information. The serialized form
  31.196 +    // should display properly nested definition list tags for comments, tags
  31.197 +    // and deprecated information.
  31.198 +    private static final String[][] TEST_NODEPR = {
  31.199 +        {BUG_ID + FS + "pkg1" + FS + "C1.html", "<DL>" + NL +
  31.200 +                 "<DT><STRONG>Since:</STRONG></DT>" + NL +
  31.201 +                 "  <DD>JDK1.0</DD>" + NL + "<DT><STRONG>See Also:</STRONG></DT><DD>" +
  31.202 +                 "<A HREF=\"../pkg1/C2.html\" title=\"class in pkg1\">" +
  31.203 +                 "<CODE>C2</CODE></A>, " + NL +
  31.204 +                 "<A HREF=\"../serialized-form.html#pkg1.C1\">" +
  31.205 +                 "Serialized Form</A></DD></DL>"},
  31.206 +        {BUG_ID + FS + "pkg1" + FS + "C1.html", "<DL>" + NL +
  31.207 +                 "<DD>Constructor." + NL + "<P>" + NL + "</DD>" + NL +
  31.208 +                 "<DD><DL>" + NL + "<DT><STRONG>Parameters:</STRONG></DT><DD>" +
  31.209 +                 "<CODE>title</CODE> - the title</DD><DD><CODE>test</CODE>" +
  31.210 +                 " - boolean value</DD>" + NL + "<DT><STRONG>Throws:</STRONG></DT>" + NL +
  31.211 +                 "<DD><CODE>java.lang.IllegalArgumentException</CODE>" +
  31.212 +                 " - if the <code>owner</code>'s" + NL + "     <code>GraphicsConfiguration" +
  31.213 +                 "</code> is not from a screen device</DD>" + NL +"<DD><CODE>" +
  31.214 +                 "HeadlessException</CODE></DD></DL>" + NL + "</DD>" + NL +
  31.215 +                 "</DL>"},
  31.216 +        {BUG_ID + FS + "pkg1" + FS + "C1.html", "<DL>" + NL +
  31.217 +                 "<DD>Method comments." + NL + "<P>" + NL +
  31.218 +                 "</DD>" + NL + "<DD><DL>" + NL + "<DT><STRONG>Parameters:" +
  31.219 +                 "</STRONG></DT><DD><CODE>undecorated</CODE> - <code>true</code>" +
  31.220 +                 " if no decorations are" + NL + "         to be enabled;" + NL +
  31.221 +                 "         <code>false</code> if decorations are to be enabled." +
  31.222 +                 "</DD><DT><STRONG>Since:</STRONG></DT>" + NL +
  31.223 +                 "  <DD>1.4</DD>" + NL + "<DT><STRONG>See Also:</STRONG></DT>" +
  31.224 +                 "<DD><A HREF=\"../pkg1/C1.html#readObject()\"><CODE>" +
  31.225 +                 "readObject()</CODE></A></DD></DL>" + NL + "</DD>" + NL +
  31.226 +                 "</DL>"},
  31.227 +        {BUG_ID + FS + "pkg1" + FS + "C1.html", "<DL>" + NL + "<DD><DL>" + NL +
  31.228 +                 "<DT><STRONG>Throws:</STRONG></DT>" + NL + "<DD><CODE>" +
  31.229 +                 "java.io.IOException</CODE></DD><DT><STRONG>See Also:" +
  31.230 +                 "</STRONG></DT><DD>" +
  31.231 +                 "<A HREF=\"../pkg1/C1.html#setUndecorated(boolean)\">" +
  31.232 +                 "<CODE>setUndecorated(boolean)</CODE></A></DD></DL>" + NL +
  31.233 +                 "</DD>" + NL + "</DL>"},
  31.234 +        {BUG_ID + FS + "pkg1" + FS + "C1.ModalExclusionType.html", "<DL>" + NL +
  31.235 +                 "<DD>No modal exclusion." + NL + "<P>" + NL +"</DD>" + NL +
  31.236 +                 "</DL>"},
  31.237 +        {BUG_ID + FS + "pkg1" + FS + "C2.html", "<DL>" + NL + "<DD>Constructor." + NL +
  31.238 +                 "<P>" + NL +"</DD>" + NL + "</DL>"},
  31.239 +        {BUG_ID + FS + "pkg1" + FS + "C3.html", "<DL>" + NL + "<DD>Comment." + NL +
  31.240 +                 "<P>" + NL + "</DD>" + NL + "</DL>"},
  31.241 +        {BUG_ID + FS + "serialized-form.html", "<DL>" + NL + "<DD><DL>" + NL +
  31.242 +                 "<DT><STRONG>Throws:</STRONG></DT>" + NL + "<DD><CODE>" +
  31.243 +                 "java.io.IOException</CODE></DD><DT><STRONG>See Also:</STRONG>" +
  31.244 +                 "</DT><DD><A HREF=\"pkg1/C1.html#setUndecorated(boolean)\">" +
  31.245 +                 "<CODE>C1.setUndecorated(boolean)</CODE></A></DD></DL>" + NL +
  31.246 +                 "</DD>" + NL + "</DL>"},
  31.247 +        {BUG_ID + FS + "serialized-form.html", "<DL>" + NL +
  31.248 +                 "<DD><STRONG>Deprecated.</STRONG>&nbsp;<I>As of JDK version " +
  31.249 +                 "1.5, replaced by" + NL +
  31.250 +                 " <A HREF=\"pkg1/C1.html#setUndecorated(boolean)\">" +
  31.251 +                 "<CODE>setUndecorated(boolean)</CODE></A>.</I></DD>" +
  31.252 +                 "<DD>This field indicates whether the C1 is undecorated." + NL +
  31.253 +                 "<P>" + NL + "</DD>" + NL + "<DD>&nbsp;</DD>" + NL +
  31.254 +                 "<DD><DL>" + NL + "<DT><STRONG>Since:</STRONG></DT>" + NL +
  31.255 +                 "  <DD>1.4</DD>" + NL + "<DT><STRONG>See Also:</STRONG>" +
  31.256 +                 "</DT><DD><A HREF=\"pkg1/C1.html#setUndecorated(boolean)\">" +
  31.257 +                 "<CODE>C1.setUndecorated(boolean)</CODE></A></DD></DL>" + NL +
  31.258 +                 "</DD>" + NL + "</DL>"},
  31.259 +        {BUG_ID + FS + "serialized-form.html", "<DL>" + NL +
  31.260 +                 "<DD><STRONG>Deprecated.</STRONG>&nbsp;<I>As of JDK version" +
  31.261 +                 " 1.5, replaced by" + NL +
  31.262 +                 " <A HREF=\"pkg1/C1.html#setUndecorated(boolean)\">" +
  31.263 +                 "<CODE>setUndecorated(boolean)</CODE></A>.</I>" + NL + "<P>" + NL +
  31.264 +                 "</DD><DD>Reads the object stream." + NL + "<P>" + NL +
  31.265 +                 "</DD>" + NL + "<DD><DL>" + NL + "<DT><STRONG>Throws:" +
  31.266 +                 "</STRONG></DT>" + NL + "<DD><CODE><code>" +
  31.267 +                 "IOException</code></CODE></DD>" + NL +
  31.268 +                 "<DD><CODE>java.io.IOException</CODE></DD></DL>" + NL +
  31.269 +                 "</DD>" + NL + "</DL>"},
  31.270 +        {BUG_ID + FS + "serialized-form.html", "<DL>" + NL +
  31.271 +                 "<DD><STRONG>Deprecated.</STRONG>&nbsp;</DD><DD>" +
  31.272 +                 "The name for this class." + NL + "<P>" + NL + "</DD>" + NL +
  31.273 +                 "<DD>&nbsp;</DD>" + NL + "</DL>"}};
  31.274 +
  31.275 +    // Test with -nocomment and -nodeprecated options. The ClassDocs whould
  31.276 +    // not display definition lists for any member details. The serialized
  31.277 +    // form should display properly nested definition list tags for
  31.278 +    // deprecated information only.
  31.279 +    private static final String[][] TEST_NOCMNT_NODEPR = {
  31.280 +        {BUG_ID + FS + "pkg1" + FS + "C1.html", "<PRE>" + NL + "public void " +
  31.281 +                 "<STRONG>readObject</STRONG>()" + NL + "                throws" +
  31.282 +                 " java.io.IOException</PRE>" + NL + "<HR>"},
  31.283 +        {BUG_ID + FS + "pkg1" + FS + "C2.html", "<PRE>" +NL + "public <STRONG>" +
  31.284 +                 "C2</STRONG>()</PRE>" + NL + "<HR>"},
  31.285 +        {BUG_ID + FS + "pkg1" + FS + "C1.ModalExclusionType.html", "<PRE>" + NL +
  31.286 +                 "public static final " +
  31.287 +                 "<A HREF=\"../pkg1/C1.ModalExclusionType.html\" " +
  31.288 +                 "title=\"enum in pkg1\">C1.ModalExclusionType</A> <STRONG>" +
  31.289 +                 "APPLICATION_EXCLUDE</STRONG></PRE>" + NL + "<HR>"},
  31.290 +        {BUG_ID + FS + "serialized-form.html", "<PRE>" + NL + "boolean <STRONG>" +
  31.291 +                 "undecorated</STRONG></PRE>" + NL + "<DL>" + NL + "<DD><STRONG>" +
  31.292 +                 "Deprecated.</STRONG>&nbsp;<I>As of JDK version 1.5, replaced by" + NL +
  31.293 +                 " <A HREF=\"pkg1/C1.html#setUndecorated(boolean)\"><CODE>" +
  31.294 +                 "setUndecorated(boolean)</CODE></A>.</I></DD></DL>"},
  31.295 +        {BUG_ID + FS + "serialized-form.html", "<DL>" + NL + "<DD><STRONG>" +
  31.296 +                 "Deprecated.</STRONG>&nbsp;<I>As of JDK version" +
  31.297 +                 " 1.5, replaced by" + NL +
  31.298 +                 " <A HREF=\"pkg1/C1.html#setUndecorated(boolean)\">" +
  31.299 +                 "<CODE>setUndecorated(boolean)</CODE></A>.</I>" + NL + "<P>" + NL +
  31.300 +                 "</DD></DL>"},
  31.301 +        {BUG_ID + FS + "serialized-form.html", "<PRE>" + NL + "int <STRONG>" +
  31.302 +                 "publicKey</STRONG></PRE>" + NL + "<DL>" + NL + "<DD><STRONG>" +
  31.303 +                 "Deprecated.</STRONG>&nbsp;</DD></DL>"}};
  31.304 +
  31.305 +    // Test for valid HTML generation which should not comprise of empty
  31.306 +    // definition list tags.
  31.307 +    private static final String[][] NEGATED_TEST = {
  31.308 +        {BUG_ID + FS + "pkg1" + FS + "C1.html", "<DL></DL>"},
  31.309 +        {BUG_ID + FS + "pkg1" + FS + "C1.html", "<DL>" + NL + "</DL>"},
  31.310 +        {BUG_ID + FS + "pkg1" + FS + "C1.ModalExclusionType.html", "<DL></DL>"},
  31.311 +        {BUG_ID + FS + "pkg1" + FS + "C1.ModalExclusionType.html", "<DL>" + NL + "</DL>"},
  31.312 +        {BUG_ID + FS + "pkg1" + FS + "C2.html", "<DL></DL>"},
  31.313 +        {BUG_ID + FS + "pkg1" + FS + "C2.html", "<DL>" + NL + "</DL>"},
  31.314 +        {BUG_ID + FS + "pkg1" + FS + "C2.ModalType.html", "<DL></DL>"},
  31.315 +        {BUG_ID + FS + "pkg1" + FS + "C2.ModalType.html", "<DL>" + NL + "</DL>"},
  31.316 +        {BUG_ID + FS + "pkg1" + FS + "C3.html", "<DL></DL>"},
  31.317 +        {BUG_ID + FS + "pkg1" + FS + "C3.html", "<DL>" + NL + "</DL>"},
  31.318 +        {BUG_ID + FS + "pkg1" + FS + "C4.html", "<DL></DL>"},
  31.319 +        {BUG_ID + FS + "pkg1" + FS + "C4.html", "<DL>" + NL + "</DL>"},
  31.320 +        {BUG_ID + FS + "pkg1" + FS + "C5.html", "<DL></DL>"},
  31.321 +        {BUG_ID + FS + "pkg1" + FS + "C5.html", "<DL>" + NL + "</DL>"},
  31.322 +        {BUG_ID + FS + "overview-tree.html", "<DL></DL>"},
  31.323 +        {BUG_ID + FS + "overview-tree.html", "<DL>" + NL + "</DL>"},
  31.324 +        {BUG_ID + FS + "serialized-form.html", "<DL></DL>"},
  31.325 +        {BUG_ID + FS + "serialized-form.html", "<DL>" + NL + "</DL>"}};
  31.326 +
  31.327 +    private static final String[] ARGS1 =
  31.328 +        new String[] {
  31.329 +            "-d", BUG_ID, "-sourcepath", SRC_DIR, "pkg1"};
  31.330 +
  31.331 +    private static final String[] ARGS2 =
  31.332 +        new String[] {
  31.333 +            "-d", BUG_ID, "-nocomment", "-sourcepath", SRC_DIR, "pkg1"};
  31.334 +
  31.335 +    private static final String[] ARGS3 =
  31.336 +        new String[] {
  31.337 +            "-d", BUG_ID, "-nodeprecated", "-sourcepath", SRC_DIR, "pkg1"};
  31.338 +
  31.339 +    private static final String[] ARGS4 =
  31.340 +        new String[] {
  31.341 +            "-d", BUG_ID, "-nocomment", "-nodeprecated", "-sourcepath", SRC_DIR, "pkg1"};
  31.342 +
  31.343 +    /**
  31.344 +     * The entry point of the test.
  31.345 +     * @param args the array of command line arguments.
  31.346 +     */
  31.347 +    public static void main(String[] args) {
  31.348 +        TestHtmlDefinitionListTag tester = new TestHtmlDefinitionListTag();
  31.349 +        run(tester, ARGS1, TEST_ALL, NEGATED_TEST);
  31.350 +        run(tester, ARGS1, TEST_CMNT_DEPR, NEGATED_TEST);
  31.351 +        run(tester, ARGS2, TEST_ALL, NEGATED_TEST);
  31.352 +        run(tester, ARGS2, TEST_NOCMNT, TEST_CMNT_DEPR);
  31.353 +        run(tester, ARGS3, TEST_ALL, NEGATED_TEST);
  31.354 +        run(tester, ARGS3, TEST_NODEPR, TEST_NOCMNT_NODEPR);
  31.355 +        run(tester, ARGS4, TEST_ALL, NEGATED_TEST);
  31.356 +        run(tester, ARGS4, TEST_NOCMNT_NODEPR, TEST_CMNT_DEPR);
  31.357 +        tester.printSummary();
  31.358 +    }
  31.359 +
  31.360 +    /**
  31.361 +     * {@inheritDoc}
  31.362 +     */
  31.363 +    public String getBugId() {
  31.364 +        return BUG_ID;
  31.365 +    }
  31.366 +
  31.367 +    /**
  31.368 +     * {@inheritDoc}
  31.369 +     */
  31.370 +    public String getBugName() {
  31.371 +        return getClass().getName();
  31.372 +    }
  31.373 +}
    32.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    32.2 +++ b/test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/C1.java	Mon Mar 02 15:11:29 2009 -0800
    32.3 @@ -0,0 +1,108 @@
    32.4 +/*
    32.5 + * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
    32.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    32.7 + *
    32.8 + * This code is free software; you can redistribute it and/or modify it
    32.9 + * under the terms of the GNU General Public License version 2 only, as
   32.10 + * published by the Free Software Foundation.  Sun designates this
   32.11 + * particular file as subject to the "Classpath" exception as provided
   32.12 + * by Sun in the LICENSE file that accompanied this code.
   32.13 + *
   32.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   32.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   32.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   32.17 + * version 2 for more details (a copy is included in the LICENSE file that
   32.18 + * accompanied this code).
   32.19 + *
   32.20 + * You should have received a copy of the GNU General Public License version
   32.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   32.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   32.23 + *
   32.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   32.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   32.26 + * have any questions.
   32.27 + */
   32.28 +
   32.29 +package pkg1;
   32.30 +
   32.31 +import java.io.IOException;
   32.32 +import java.io.Serializable;
   32.33 +
   32.34 +/**
   32.35 + * A class comment for testing.
   32.36 + *
   32.37 + * @author      Bhavesh Patel
   32.38 + * @see C2
   32.39 + * @since       JDK1.0
   32.40 + */
   32.41 +
   32.42 +public class C1 implements Serializable {
   32.43 +
   32.44 +    /**
   32.45 +     * This field indicates whether the C1 is undecorated.
   32.46 +     *
   32.47 +     * @see #setUndecorated(boolean)
   32.48 +     * @since 1.4
   32.49 +     * @serial
   32.50 +     * @deprecated As of JDK version 1.5, replaced by
   32.51 +     * {@link C1#setUndecorated(boolean) setUndecorated(boolean)}.
   32.52 +     */
   32.53 +     @Deprecated
   32.54 +    public boolean undecorated = false;
   32.55 +
   32.56 +    private String title;
   32.57 +
   32.58 +    /**
   32.59 +     * This enum specifies the possible modal exclusion types.
   32.60 +     *
   32.61 +     * @since 1.6
   32.62 +     */
   32.63 +    public static enum ModalExclusionType {
   32.64 +        /**
   32.65 +         * No modal exclusion.
   32.66 +         */
   32.67 +        NO_EXCLUDE,
   32.68 +        /**
   32.69 +         * <code>APPLICATION_EXCLUDE</code> indicates that a top-level window
   32.70 +         * won't be blocked by any application-modal dialogs. Also, it isn't
   32.71 +         * blocked by document-modal dialogs from outside of its child hierarchy.
   32.72 +         */
   32.73 +        APPLICATION_EXCLUDE
   32.74 +    };
   32.75 +
   32.76 +    /**
   32.77 +     * Constructor.
   32.78 +     *
   32.79 +     * @param title the title
   32.80 +     * @param test boolean value
   32.81 +     * @exception IllegalArgumentException if the <code>owner</code>'s
   32.82 +     *     <code>GraphicsConfiguration</code> is not from a screen device
   32.83 +     * @exception HeadlessException
   32.84 +     */
   32.85 +     public C1(String title, boolean test) {
   32.86 +
   32.87 +     }
   32.88 +
   32.89 +     public C1(String title) {
   32.90 +
   32.91 +     }
   32.92 +
   32.93 +    /**
   32.94 +     * Method comments.
   32.95 +     * @param  undecorated <code>true</code> if no decorations are
   32.96 +     *         to be enabled;
   32.97 +     *         <code>false</code> if decorations are to be enabled.
   32.98 +     * @see    #readObject()
   32.99 +     * @since 1.4
  32.100 +     */
  32.101 +    public void setUndecorated(boolean undecorated) {
  32.102 +        /* Make sure we don't run in the middle of peer creation.*/
  32.103 +    }
  32.104 +
  32.105 +    /**
  32.106 +     * @see #setUndecorated(boolean)
  32.107 +     */
  32.108 +    public void readObject() throws IOException {
  32.109 +
  32.110 +    }
  32.111 +}
    33.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    33.2 +++ b/test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/C2.java	Mon Mar 02 15:11:29 2009 -0800
    33.3 @@ -0,0 +1,86 @@
    33.4 +/*
    33.5 + * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
    33.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    33.7 + *
    33.8 + * This code is free software; you can redistribute it and/or modify it
    33.9 + * under the terms of the GNU General Public License version 2 only, as
   33.10 + * published by the Free Software Foundation.  Sun designates this
   33.11 + * particular file as subject to the "Classpath" exception as provided
   33.12 + * by Sun in the LICENSE file that accompanied this code.
   33.13 + *
   33.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   33.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   33.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   33.17 + * version 2 for more details (a copy is included in the LICENSE file that
   33.18 + * accompanied this code).
   33.19 + *
   33.20 + * You should have received a copy of the GNU General Public License version
   33.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   33.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   33.23 + *
   33.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   33.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   33.26 + * have any questions.
   33.27 + */
   33.28 +
   33.29 +package pkg1;
   33.30 +
   33.31 +import java.io.ObjectInputStream;
   33.32 +import java.io.IOException;
   33.33 +import java.io.Serializable;
   33.34 +
   33.35 +/**
   33.36 + * A class comment for testing.
   33.37 + *
   33.38 + * @author      Bhavesh Patel
   33.39 + * @see C1
   33.40 + * @since       JDK1.0
   33.41 + */
   33.42 +
   33.43 +public class C2 implements Serializable {
   33.44 +
   33.45 +    /**
   33.46 +     * This field indicates title.
   33.47 +     */
   33.48 +    String title;
   33.49 +
   33.50 +    public static enum ModalType {
   33.51 +        NO_EXCLUDE
   33.52 +    };
   33.53 +
   33.54 +    /**
   33.55 +     * Constructor.
   33.56 +     *
   33.57 +     */
   33.58 +     public C2() {
   33.59 +
   33.60 +     }
   33.61 +
   33.62 +     public C2(String title) {
   33.63 +
   33.64 +     }
   33.65 +
   33.66 +     /**
   33.67 +     * Set visible.
   33.68 +     *
   33.69 +     * @param set boolean
   33.70 +     * @since 1.4
   33.71 +     * @deprecated As of JDK version 1.5, replaced by
   33.72 +     * {@link C1#setUndecorated(boolean) setUndecorated(boolean)}.
   33.73 +     */
   33.74 +     @Deprecated
   33.75 +     public void setVisible(boolean set) {
   33.76 +     }
   33.77 +
   33.78 +     /**
   33.79 +     * Reads the object stream.
   33.80 +     *
   33.81 +     * @param s ObjectInputStream
   33.82 +     * @throws <code>IOException</code>
   33.83 +     * @deprecated As of JDK version 1.5, replaced by
   33.84 +     * {@link C1#setUndecorated(boolean) setUndecorated(boolean)}.
   33.85 +     */
   33.86 +     @Deprecated
   33.87 +     public void readObject(ObjectInputStream s) throws IOException {
   33.88 +     }
   33.89 +}
    34.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    34.2 +++ b/test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/C3.java	Mon Mar 02 15:11:29 2009 -0800
    34.3 @@ -0,0 +1,42 @@
    34.4 +/*
    34.5 + * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
    34.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    34.7 + *
    34.8 + * This code is free software; you can redistribute it and/or modify it
    34.9 + * under the terms of the GNU General Public License version 2 only, as
   34.10 + * published by the Free Software Foundation.  Sun designates this
   34.11 + * particular file as subject to the "Classpath" exception as provided
   34.12 + * by Sun in the LICENSE file that accompanied this code.
   34.13 + *
   34.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   34.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   34.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   34.17 + * version 2 for more details (a copy is included in the LICENSE file that
   34.18 + * accompanied this code).
   34.19 + *
   34.20 + * You should have received a copy of the GNU General Public License version
   34.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   34.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   34.23 + *
   34.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   34.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   34.26 + * have any questions.
   34.27 + */
   34.28 +
   34.29 +package pkg1;
   34.30 +
   34.31 +import java.lang.annotation.*;
   34.32 +
   34.33 +/**
   34.34 + * Test Annotation class.
   34.35 + *
   34.36 + * @author Bhavesh Patel
   34.37 + * @since 1.5
   34.38 + */
   34.39 +@Retention(RetentionPolicy.SOURCE)
   34.40 +public @interface C3 {
   34.41 +    /**
   34.42 +     * Comment.
   34.43 +     */
   34.44 +    String[] value();
   34.45 +}
    35.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    35.2 +++ b/test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/C4.java	Mon Mar 02 15:11:29 2009 -0800
    35.3 @@ -0,0 +1,39 @@
    35.4 +/*
    35.5 + * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
    35.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    35.7 + *
    35.8 + * This code is free software; you can redistribute it and/or modify it
    35.9 + * under the terms of the GNU General Public License version 2 only, as
   35.10 + * published by the Free Software Foundation.  Sun designates this
   35.11 + * particular file as subject to the "Classpath" exception as provided
   35.12 + * by Sun in the LICENSE file that accompanied this code.
   35.13 + *
   35.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   35.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   35.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   35.17 + * version 2 for more details (a copy is included in the LICENSE file that
   35.18 + * accompanied this code).
   35.19 + *
   35.20 + * You should have received a copy of the GNU General Public License version
   35.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   35.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   35.23 + *
   35.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   35.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   35.26 + * have any questions.
   35.27 + */
   35.28 +
   35.29 +package pkg1;
   35.30 +
   35.31 +import java.lang.annotation.*;
   35.32 +
   35.33 +/*
   35.34 + * The @Inherited annotation has no effect when applied to an interface.
   35.35 + */
   35.36 +@Documented
   35.37 +@Retention(RetentionPolicy.RUNTIME)
   35.38 +@Target(ElementType.TYPE)
   35.39 +@Inherited
   35.40 +public @interface C4 {
   35.41 +    boolean value() default true;
   35.42 +}
    36.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    36.2 +++ b/test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/C5.java	Mon Mar 02 15:11:29 2009 -0800
    36.3 @@ -0,0 +1,65 @@
    36.4 +/*
    36.5 + * Copyright 2009 Sun Microsystems, Inc.  All Rights Reserved.
    36.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    36.7 + *
    36.8 + * This code is free software; you can redistribute it and/or modify it
    36.9 + * under the terms of the GNU General Public License version 2 only, as
   36.10 + * published by the Free Software Foundation.  Sun designates this
   36.11 + * particular file as subject to the "Classpath" exception as provided
   36.12 + * by Sun in the LICENSE file that accompanied this code.
   36.13 + *
   36.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   36.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   36.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   36.17 + * version 2 for more details (a copy is included in the LICENSE file that
   36.18 + * accompanied this code).
   36.19 + *
   36.20 + * You should have received a copy of the GNU General Public License version
   36.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   36.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   36.23 + *
   36.24 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   36.25 + * CA 95054 USA or visit www.sun.com if you need additional information or
   36.26 + * have any questions.
   36.27 + */
   36.28 +
   36.29 +package pkg1;
   36.30 +
   36.31 +import java.io.Serializable;
   36.32 +
   36.33 +/**
   36.34 + * Test for Serializable
   36.35 + *
   36.36 + * @author Bhavesh Patel
   36.37 + * @deprecated This class is no longer used.
   36.38 + */
   36.39 +@Deprecated
   36.40 +public abstract class C5 implements Serializable {
   36.41 +
   36.42 +    /**
   36.43 +     * The name for this class.
   36.44 +     *
   36.45 +     * @serial
   36.46 +     */
   36.47 +    private String name;
   36.48 +
   36.49 +    /**
   36.50 +     * @serial
   36.51 +     */
   36.52 +    private int publicKey;
   36.53 +
   36.54 +    /**
   36.55 +     * Constructor for serialization only.
   36.56 +     */
   36.57 +    protected C5() {
   36.58 +
   36.59 +    }
   36.60 +
   36.61 +    /**
   36.62 +     * Prints general information.
   36.63 +     *
   36.64 +     */
   36.65 +    public void printInfo() {
   36.66 +
   36.67 +    }
   36.68 +}
    37.1 --- a/test/com/sun/javadoc/testIndex/TestIndex.java	Fri Feb 27 10:54:11 2009 -0800
    37.2 +++ b/test/com/sun/javadoc/testIndex/TestIndex.java	Mon Mar 02 15:11:29 2009 -0800
    37.3 @@ -73,10 +73,10 @@
    37.4          {BUG_ID + FS + "index-all.html",
    37.5              "<DT><A HREF=\"./pkg/C.html#Java\"><STRONG>Java</STRONG></A> - " + NL +
    37.6              "Static variable in class pkg.<A HREF=\"./pkg/C.html\" title=\"class in pkg\">C</A>" + NL +
    37.7 -            "<DD>&nbsp;" + NL +
    37.8 +            "</DT><DD>&nbsp;</DD>" + NL + NL +
    37.9              "<DT><A HREF=\"./pkg/C.html#JDK\"><STRONG>JDK</STRONG></A> - " + NL +
   37.10              "Static variable in class pkg.<A HREF=\"./pkg/C.html\" title=\"class in pkg\">C</A>" + NL +
   37.11 -            "<DD>&nbsp;"},
   37.12 +            "</DT><DD>&nbsp;</DD>"},
   37.13      };
   37.14      private static final String[][] NEGATED_TEST = NO_TEST;
   37.15  
    38.1 --- a/test/com/sun/javadoc/testInterface/TestInterface.java	Fri Feb 27 10:54:11 2009 -0800
    38.2 +++ b/test/com/sun/javadoc/testInterface/TestInterface.java	Mon Mar 02 15:11:29 2009 -0800
    38.3 @@ -55,7 +55,7 @@
    38.4  
    38.5          // Make sure known implementing class list is correct and omits type parameters.
    38.6          {BUG_ID + FS + "pkg" + FS + "Interface.html",
    38.7 -            "<DT><STRONG>All Known Implementing Classes:</STRONG> " +
    38.8 +            "<DT><STRONG>All Known Implementing Classes:</STRONG></DT> " +
    38.9              "<DD><A HREF=\"../pkg/Child.html\" " +
   38.10              "title=\"class in pkg\">Child</A>, " +
   38.11              "<A HREF=\"../pkg/Parent.html\" title=\"class in pkg\">" +
   38.12 @@ -63,7 +63,9 @@
   38.13  
   38.14           // Make sure "All Implemented Interfaces": has substituted type parameters
   38.15           {BUG_ID + FS + "pkg" + FS + "Child.html",
   38.16 -            "<STRONG>All Implemented Interfaces:</STRONG> <DD><A HREF=\"../pkg/Interface.html\" title=\"interface in pkg\">Interface</A>&lt;T&gt;"
   38.17 +            "<STRONG>All Implemented Interfaces:</STRONG></DT> <DD>" +
   38.18 +            "<A HREF=\"../pkg/Interface.html\" title=\"interface in pkg\">" +
   38.19 +            "Interface</A>&lt;T&gt;"
   38.20           },
   38.21           //Make sure Class Tree has substituted type parameters.
   38.22           {BUG_ID + FS + "pkg" + FS + "Child.html",
   38.23 @@ -75,15 +77,15 @@
   38.24           },
   38.25           //Make sure "Direct Know Subclasses" omits type parameters
   38.26          {BUG_ID + FS + "pkg" + FS + "Parent.html",
   38.27 -            "<STRONG>Direct Known Subclasses:</STRONG> <DD><A HREF=\"../pkg/Child.html\" title=\"class in pkg\">Child</A>"
   38.28 +            "<STRONG>Direct Known Subclasses:</STRONG></DT> <DD><A HREF=\"../pkg/Child.html\" title=\"class in pkg\">Child</A>"
   38.29          },
   38.30          //Make sure "Specified By" has substituted type parameters.
   38.31          {BUG_ID + FS + "pkg" + FS + "Child.html",
   38.32 -            "<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>&lt;<A HREF=\"../pkg/Child.html\" title=\"type parameter in Child\">T</A>&gt;</CODE>"
   38.33 +            "<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>&lt;<A HREF=\"../pkg/Child.html\" title=\"type parameter in Child\">T</A>&gt;</CODE>"
   38.34           },
   38.35          //Make sure "Overrides" has substituted type parameters.
   38.36          {BUG_ID + FS + "pkg" + FS + "Child.html",
   38.37 -            "<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>&lt;<A HREF=\"../pkg/Child.html\" title=\"type parameter in Child\">T</A>&gt;</CODE>"
   38.38 +            "<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>&lt;<A HREF=\"../pkg/Child.html\" title=\"type parameter in Child\">T</A>&gt;</CODE>"
   38.39           },
   38.40      };
   38.41      private static final String[][] NEGATED_TEST = {
    39.1 --- a/test/com/sun/javadoc/testLinkOption/TestLinkOption.java	Fri Feb 27 10:54:11 2009 -0800
    39.2 +++ b/test/com/sun/javadoc/testLinkOption/TestLinkOption.java	Mon Mar 02 15:11:29 2009 -0800
    39.3 @@ -63,7 +63,8 @@
    39.4              "title=\"class or interface in java.lang\">Object</A>&nbsp;p3)"
    39.5          },
    39.6          {BUG_ID + "-1" + FS + "java" + FS + "lang" + FS + "StringBuilderChild.html",
    39.7 -                "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>"
    39.8 +                "public abstract class <STRONG>StringBuilderChild</STRONG>" + NL +
    39.9 +                "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>"
   39.10          },
   39.11  
   39.12      };
    40.1 --- a/test/com/sun/javadoc/testLinkTaglet/TestLinkTaglet.java	Fri Feb 27 10:54:11 2009 -0800
    40.2 +++ b/test/com/sun/javadoc/testLinkTaglet/TestLinkTaglet.java	Mon Mar 02 15:11:29 2009 -0800
    40.3 @@ -59,7 +59,7 @@
    40.4              " Link to another inner class: <A HREF=\"../pkg/C.InnerC2.html\" title=\"class in pkg\"><CODE>C.InnerC2</CODE></A>"
    40.5          },
    40.6          {BUG_ID + FS + "pkg" + FS + "C.InnerC2.html",
    40.7 -            "Enclosing class:</STRONG><DD><A HREF=\"../pkg/C.html\" title=\"class in pkg\">C</A>"
    40.8 +            "Enclosing class:</STRONG></DT><DD><A HREF=\"../pkg/C.html\" title=\"class in pkg\">C</A>"
    40.9          },
   40.10      };
   40.11      private static final String[][] NEGATED_TEST = {
    41.1 --- a/test/com/sun/javadoc/testMemberInheritence/TestMemberInheritence.java	Fri Feb 27 10:54:11 2009 -0800
    41.2 +++ b/test/com/sun/javadoc/testMemberInheritence/TestMemberInheritence.java	Mon Mar 02 15:11:29 2009 -0800
    41.3 @@ -74,7 +74,7 @@
    41.4  
    41.5           // Test overriding/implementing methods with generic parameters.
    41.6                   {BUG_ID + FS + "pkg" + FS + "BaseClass.html",
    41.7 -         "<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>"},
    41.8 +         "<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>"},
    41.9  
   41.10           // Test diamond inheritence member summary (6256068)
   41.11                   {BUG_ID + FS + "diamond" + FS + "Z.html",
    42.1 --- a/test/com/sun/javadoc/testNewLanguageFeatures/TestNewLanguageFeatures.java	Fri Feb 27 10:54:11 2009 -0800
    42.2 +++ b/test/com/sun/javadoc/testNewLanguageFeatures/TestNewLanguageFeatures.java	Mon Mar 02 15:11:29 2009 -0800
    42.3 @@ -54,7 +54,7 @@
    42.4              {BUG_ID + FS + "pkg" + FS + "Coin.html", "Enum Coin</H2>"},
    42.5              //Make sure enum signature is correct.
    42.6              {BUG_ID + FS + "pkg" + FS + "Coin.html", "public enum "+
    42.7 -                "<STRONG>Coin</STRONG><DT>extends java.lang.Enum&lt;" +
    42.8 +                "<STRONG>Coin</STRONG>" + NL + "extends java.lang.Enum&lt;" +
    42.9                  "<A HREF=\"../pkg/Coin.html\" title=\"enum in pkg\">Coin</A>&gt;"
   42.10              },
   42.11              //Check for enum constant section
   42.12 @@ -79,20 +79,20 @@
   42.13                  "Class TypeParameters&lt;E&gt;</H2>"},
   42.14              //Check class type parameters section.
   42.15              {BUG_ID + FS + "pkg" + FS + "TypeParameters.html",
   42.16 -                "<DT><STRONG>Type Parameters:</STRONG><DD><CODE>E</CODE> - " +
   42.17 +                "<DT><STRONG>Type Parameters:</STRONG></DT><DD><CODE>E</CODE> - " +
   42.18                  "the type parameter for this class."},
   42.19              //Type parameters in @see/@link
   42.20              {BUG_ID + FS + "pkg" + FS + "TypeParameters.html",
   42.21 -                "<DT><STRONG>See Also:</STRONG><DD><A HREF=\"../pkg/TypeParameters.html\" " +
   42.22 -                    "title=\"class in pkg\"><CODE>TypeParameters</CODE></A></DL>"},
   42.23 +                "<DT><STRONG>See Also:</STRONG></DT><DD><A HREF=\"../pkg/TypeParameters.html\" " +
   42.24 +                    "title=\"class in pkg\"><CODE>TypeParameters</CODE></A></DD></DL>"},
   42.25              //Method that uses class type parameter.
   42.26              {BUG_ID + FS + "pkg" + FS + "TypeParameters.html",
   42.27                  "(<A HREF=\"../pkg/TypeParameters.html\" title=\"type " +
   42.28                      "parameter in TypeParameters\">E</A>&nbsp;param)"},
   42.29              //Method type parameter section.
   42.30              {BUG_ID + FS + "pkg" + FS + "TypeParameters.html",
   42.31 -                "<STRONG>Type Parameters:</STRONG><DD><CODE>T</CODE> - This is the first " +
   42.32 -                    "type parameter.<DD><CODE>V</CODE> - This is the second type " +
   42.33 +                "<STRONG>Type Parameters:</STRONG></DT><DD><CODE>T</CODE> - This is the first " +
   42.34 +                    "type parameter.</DD><DD><CODE>V</CODE> - This is the second type " +
   42.35                      "parameter."},
   42.36              //Signature of method with type parameters
   42.37              {BUG_ID + FS + "pkg" + FS + "TypeParameters.html",
   42.38 @@ -117,17 +117,17 @@
   42.39              //Signature of subclass that has type parameters.
   42.40              {BUG_ID + FS + "pkg" + FS + "TypeParameterSubClass.html",
   42.41                  "public class <STRONG>TypeParameterSubClass&lt;T extends java.lang.String&gt;" +
   42.42 -                "</STRONG><DT>extends <A HREF=\"../pkg/TypeParameterSuperClass.html\" " +
   42.43 +                "</STRONG>" + NL + "extends <A HREF=\"../pkg/TypeParameterSuperClass.html\" " +
   42.44                  "title=\"class in pkg\">TypeParameterSuperClass</A>&lt;T&gt;"},
   42.45  
   42.46              //Interface generic parameter substitution
   42.47              //Signature of subclass that has type parameters.
   42.48              {BUG_ID + FS + "pkg" + FS + "TypeParameters.html",
   42.49 -                "<STRONG>All Implemented Interfaces:</STRONG> <DD><A HREF=\"../pkg/SubInterface.html\" title=\"interface in pkg\">SubInterface</A>&lt;E&gt;, <A HREF=\"../pkg/SuperInterface.html\" title=\"interface in pkg\">SuperInterface</A>&lt;E&gt;</DD>"},
   42.50 +                "<STRONG>All Implemented Interfaces:</STRONG></DT> <DD><A HREF=\"../pkg/SubInterface.html\" title=\"interface in pkg\">SubInterface</A>&lt;E&gt;, <A HREF=\"../pkg/SuperInterface.html\" title=\"interface in pkg\">SuperInterface</A>&lt;E&gt;</DD>"},
   42.51              {BUG_ID + FS + "pkg" + FS + "SuperInterface.html",
   42.52 -                "<STRONG>All Known Subinterfaces:</STRONG> <DD><A HREF=\"../pkg/SubInterface.html\" title=\"interface in pkg\">SubInterface</A>&lt;V&gt;</DD>"},
   42.53 +                "<STRONG>All Known Subinterfaces:</STRONG></DT> <DD><A HREF=\"../pkg/SubInterface.html\" title=\"interface in pkg\">SubInterface</A>&lt;V&gt;</DD>"},
   42.54              {BUG_ID + FS + "pkg" + FS + "SubInterface.html",
   42.55 -                "<STRONG>All Superinterfaces:</STRONG> <DD><A HREF=\"../pkg/SuperInterface.html\" title=\"interface in pkg\">SuperInterface</A>&lt;V&gt;</DD>"},
   42.56 +                "<STRONG>All Superinterfaces:</STRONG></DT> <DD><A HREF=\"../pkg/SuperInterface.html\" title=\"interface in pkg\">SuperInterface</A>&lt;V&gt;</DD>"},
   42.57  
   42.58              //=================================
   42.59              // VAR ARG TESTING
   42.60 @@ -166,7 +166,7 @@
   42.61                  "Element Detail"},
   42.62              //Make sure default annotation type value is printed when necessary.
   42.63              {BUG_ID + FS + "pkg" + FS + "AnnotationType.html",
   42.64 -                "<STRONG>Default:</STRONG><DD>\"unknown\"</DD>"},
   42.65 +                "<STRONG>Default:</STRONG></DT><DD>\"unknown\"</DD>"},
   42.66  
   42.67              //=================================
   42.68              // ANNOTATION TYPE USAGE TESTING
   42.69 @@ -182,7 +182,8 @@
   42.70                  "<FONT SIZE=\"-1\">" +
   42.71                  "<A HREF=\"../pkg/AnnotationType.html\" title=\"annotation in pkg\">@AnnotationType</A>(<A HREF=\"../pkg/AnnotationType.html#optional()\">optional</A>=\"Class Annotation\","+NL +
   42.72                  "                <A HREF=\"../pkg/AnnotationType.html#required()\">required</A>=1994)"+NL +
   42.73 -                "</FONT>public class <STRONG>AnnotationTypeUsage</STRONG><DT>extends java.lang.Object</DL>"},
   42.74 +                "</FONT>public class <STRONG>AnnotationTypeUsage</STRONG>" + NL +
   42.75 +                "extends java.lang.Object"},
   42.76  
   42.77              //FIELD
   42.78              {BUG_ID + FS + "pkg" + FS + "AnnotationTypeUsage.html",
   42.79 @@ -270,8 +271,7 @@
   42.80              {BUG_ID + FS + "pkg1" + FS + "B.html",
   42.81                  "<PRE><FONT SIZE=\"-1\"><A HREF=\"../pkg1/A.html\" title=\"annotation in pkg1\">@A</A>"},
   42.82              {BUG_ID + FS + "pkg1" + FS + "B.html",
   42.83 -                "</FONT>public interface <STRONG>B</STRONG></DL>" + NL +
   42.84 -                    "</PRE>"},
   42.85 +                "</FONT>public interface <STRONG>B</STRONG></PRE>"},
   42.86  
   42.87  
   42.88              //==============================================================
   42.89 @@ -525,7 +525,7 @@
   42.90              "<FONT SIZE=\"-1\">" + NL +
   42.91              "<A HREF=\"../pkg/AnnotationTypeUndocumented.html\" title=\"annotation in pkg\">@AnnotationTypeUndocumented</A>(<A HREF=\"../pkg/AnnotationType.html#optional\">optional</A>=\"Class Annotation\"," + NL +
   42.92              "                <A HREF=\"../pkg/AnnotationType.html#required\">required</A>=1994)" + NL +
   42.93 -            "</FONT>public class <STRONG>AnnotationTypeUsage</STRONG><DT>extends java.lang.Object</DL>"},
   42.94 +            "</FONT>public class <STRONG>AnnotationTypeUsage</STRONG></DT><DT>extends java.lang.Object</DT></DL>"},
   42.95  
   42.96          //FIELD
   42.97          {BUG_ID + FS + "pkg" + FS + "AnnotationTypeUsage.html",
    43.1 --- a/test/com/sun/javadoc/testOverridenMethods/TestOverridenPrivateMethods.java	Fri Feb 27 10:54:11 2009 -0800
    43.2 +++ b/test/com/sun/javadoc/testOverridenMethods/TestOverridenPrivateMethods.java	Mon Mar 02 15:11:29 2009 -0800
    43.3 @@ -40,11 +40,11 @@
    43.4      private static final String[][] TEST = {
    43.5          //The public method should be overriden
    43.6          {BUG_ID + FS + "pkg1" + FS + "SubClass.html",
    43.7 -         "Overrides:</STRONG><DD><CODE><A HREF=\"../pkg1/BaseClass.html#publicMethod"},
    43.8 +         "Overrides:</STRONG></DT><DD><CODE><A HREF=\"../pkg1/BaseClass.html#publicMethod"},
    43.9  
   43.10          //The public method in different package should be overriden
   43.11          {BUG_ID + FS + "pkg2" + FS + "SubClass.html",
   43.12 -         "Overrides:</STRONG><DD><CODE><A HREF=\"../pkg1/BaseClass.html#publicMethod"}
   43.13 +         "Overrides:</STRONG></DT><DD><CODE><A HREF=\"../pkg1/BaseClass.html#publicMethod"}
   43.14      };
   43.15  
   43.16      private static final String[][] NEGATED_TEST = {
   43.17 @@ -52,20 +52,20 @@
   43.18          //The package private method should be overriden since the base and sub class are in the same
   43.19          //package.  However, the link should not show up because the package private methods are not documented.
   43.20          {BUG_ID + FS + "pkg1" + FS + "SubClass.html",
   43.21 -         "Overrides:</STRONG><DD><CODE><A HREF=\"../pkg1/BaseClass.html#packagePrivateMethod"},
   43.22 +         "Overrides:</STRONG></DT><DD><CODE><A HREF=\"../pkg1/BaseClass.html#packagePrivateMethod"},
   43.23  
   43.24          //The private method in should not be overriden
   43.25          {BUG_ID + FS + "pkg1" + FS + "SubClass.html",
   43.26 -         "Overrides:</STRONG><DD><CODE><A HREF=\"../pkg1/BaseClass.html#privateMethod"},
   43.27 +         "Overrides:</STRONG></DT><DD><CODE><A HREF=\"../pkg1/BaseClass.html#privateMethod"},
   43.28  
   43.29          //The private method in different package should not be overriden
   43.30          {BUG_ID + FS + "pkg2" + FS + "SubClass.html",
   43.31 -         "Overrides:</STRONG><DD><CODE><A HREF=\"../pkg1/BaseClass.html#privateMethod"},
   43.32 +         "Overrides:</STRONG></DT><DD><CODE><A HREF=\"../pkg1/BaseClass.html#privateMethod"},
   43.33  
   43.34          //The package private method should not be overriden since the base and sub class are in
   43.35          //different packages.
   43.36          {BUG_ID + FS + "pkg2" + FS + "SubClass.html",
   43.37 -         "Overrides:</STRONG><DD><CODE><A HREF=\"../pkg1/BaseClass.html#packagePrivateMethod"}
   43.38 +         "Overrides:</STRONG></DT><DD><CODE><A HREF=\"../pkg1/BaseClass.html#packagePrivateMethod"}
   43.39      };
   43.40  
   43.41      private static final String[] ARGS =
    44.1 --- a/test/com/sun/javadoc/testOverridenMethods/TestOverridenPrivateMethodsWithPackageFlag.java	Fri Feb 27 10:54:11 2009 -0800
    44.2 +++ b/test/com/sun/javadoc/testOverridenMethods/TestOverridenPrivateMethodsWithPackageFlag.java	Mon Mar 02 15:11:29 2009 -0800
    44.3 @@ -40,32 +40,32 @@
    44.4      private static final String[][] TEST = {
    44.5          //The public method should be overriden
    44.6          {BUG_ID + FS + "pkg1" + FS + "SubClass.html",
    44.7 -         "Overrides:</STRONG><DD><CODE><A HREF=\"../pkg1/BaseClass.html#publicMethod"},
    44.8 +         "Overrides:</STRONG></DT><DD><CODE><A HREF=\"../pkg1/BaseClass.html#publicMethod"},
    44.9  
   44.10          //The public method in different package should be overriden
   44.11          {BUG_ID + FS + "pkg2" + FS + "SubClass.html",
   44.12 -         "Overrides:</STRONG><DD><CODE><A HREF=\"../pkg1/BaseClass.html#publicMethod"},
   44.13 +         "Overrides:</STRONG></DT><DD><CODE><A HREF=\"../pkg1/BaseClass.html#publicMethod"},
   44.14  
   44.15          //The package private method should be overriden since the base and sub class are in the same
   44.16          //package.
   44.17          {BUG_ID + FS + "pkg1" + FS + "SubClass.html",
   44.18 -         "Overrides:</STRONG><DD><CODE><A HREF=\"../pkg1/BaseClass.html#packagePrivateMethod"}
   44.19 +         "Overrides:</STRONG></DT><DD><CODE><A HREF=\"../pkg1/BaseClass.html#packagePrivateMethod"}
   44.20      };
   44.21  
   44.22      private static final String[][] NEGATED_TEST = {
   44.23  
   44.24          //The private method in should not be overriden
   44.25          {BUG_ID + FS + "pkg1" + FS + "SubClass.html",
   44.26 -         "Overrides:</STRONG><DD><CODE><A HREF=\"../pkg1/BaseClass.html#privateMethod"},
   44.27 +         "Overrides:</STRONG></DT><DD><CODE><A HREF=\"../pkg1/BaseClass.html#privateMethod"},
   44.28  
   44.29          //The private method in different package should not be overriden
   44.30          {BUG_ID + FS + "pkg2" + FS + "SubClass.html",
   44.31 -         "Overrides:</STRONG><DD><CODE><A HREF=\"../pkg1/BaseClass.html#privateMethod"},
   44.32 +         "Overrides:</STRONG></DT><DD><CODE><A HREF=\"../pkg1/BaseClass.html#privateMethod"},
   44.33  
   44.34          //The package private method should not be overriden since the base and sub class are in
   44.35          //different packages.
   44.36          {BUG_ID + FS + "pkg2" + FS + "SubClass.html",
   44.37 -         "Overrides:</STRONG><DD><CODE><A HREF=\"../pkg1/BaseClass.html#packagePrivateMethod"},
   44.38 +         "Overrides:</STRONG></DT><DD><CODE><A HREF=\"../pkg1/BaseClass.html#packagePrivateMethod"},
   44.39      };
   44.40  
   44.41      private static final String[] ARGS =
    45.1 --- a/test/com/sun/javadoc/testOverridenMethods/TestOverridenPrivateMethodsWithPrivateFlag.java	Fri Feb 27 10:54:11 2009 -0800
    45.2 +++ b/test/com/sun/javadoc/testOverridenMethods/TestOverridenPrivateMethodsWithPrivateFlag.java	Mon Mar 02 15:11:29 2009 -0800
    45.3 @@ -40,32 +40,32 @@
    45.4      private static final String[][] TEST = {
    45.5          //The public method should be overriden
    45.6          {BUG_ID + FS + "pkg1" + FS + "SubClass.html",
    45.7 -         "Overrides:</STRONG><DD><CODE><A HREF=\"../pkg1/BaseClass.html#publicMethod"},
    45.8 +         "Overrides:</STRONG></DT><DD><CODE><A HREF=\"../pkg1/BaseClass.html#publicMethod"},
    45.9  
   45.10          //The package private method should be overriden since the base and sub class are in the same
   45.11          //package.
   45.12          {BUG_ID + FS + "pkg1" + FS + "SubClass.html",
   45.13 -         "Overrides:</STRONG><DD><CODE><A HREF=\"../pkg1/BaseClass.html#packagePrivateMethod"},
   45.14 +         "Overrides:</STRONG></DT><DD><CODE><A HREF=\"../pkg1/BaseClass.html#packagePrivateMethod"},
   45.15  
   45.16          //The public method in different package should be overriden
   45.17          {BUG_ID + FS + "pkg2" + FS + "SubClass.html",
   45.18 -         "Overrides:</STRONG><DD><CODE><A HREF=\"../pkg1/BaseClass.html#publicMethod"},
   45.19 +         "Overrides:</STRONG></DT><DD><CODE><A HREF=\"../pkg1/BaseClass.html#publicMethod"},
   45.20      };
   45.21  
   45.22      private static final String[][] NEGATED_TEST = {
   45.23  
   45.24          //The private method in should not be overriden
   45.25          {BUG_ID + FS + "pkg1" + FS + "SubClass.html",
   45.26 -         "Overrides:</STRONG><DD><CODE><A HREF=\"../pkg1/BaseClass.html#privateMethod"},
   45.27 +         "Overrides:</STRONG></DT><DD><CODE><A HREF=\"../pkg1/BaseClass.html#privateMethod"},
   45.28  
   45.29          //The private method in different package should not be overriden
   45.30          {BUG_ID + FS + "pkg2" + FS + "SubClass.html",
   45.31 -         "Overrides:</STRONG><DD><CODE><A HREF=\"../pkg1/BaseClass.html#privateMethod"},
   45.32 +         "Overrides:</STRONG></DT><DD><CODE><A HREF=\"../pkg1/BaseClass.html#privateMethod"},
   45.33  
   45.34          //The package private method should not be overriden since the base and sub class are in
   45.35          //different packages.
   45.36          {BUG_ID + FS + "pkg2" + FS + "SubClass.html",
   45.37 -         "Overrides:</STRONG><DD><CODE><A HREF=\"../pkg1/BaseClass.html#packagePrivateMethod"}
   45.38 +         "Overrides:</STRONG></DT><DD><CODE><A HREF=\"../pkg1/BaseClass.html#packagePrivateMethod"}
   45.39  
   45.40  
   45.41      };
    46.1 --- a/test/com/sun/javadoc/testParamTaglet/TestParamTaglet.java	Fri Feb 27 10:54:11 2009 -0800
    46.2 +++ b/test/com/sun/javadoc/testParamTaglet/TestParamTaglet.java	Mon Mar 02 15:11:29 2009 -0800
    46.3 @@ -48,12 +48,12 @@
    46.4      private static final String[][] TEST = {
    46.5          //Regular param tags.
    46.6          {BUG_ID + FS + "pkg" + FS + "C.html",
    46.7 -            "<STRONG>Parameters:</STRONG><DD><CODE>param1</CODE> - testing 1 2 3." +
    46.8 +            "<STRONG>Parameters:</STRONG></DT><DD><CODE>param1</CODE> - testing 1 2 3.</DD>" +
    46.9                  "<DD><CODE>param2</CODE> - testing 1 2 3."
   46.10          },
   46.11          //Param tags that don't match with any real parameters.
   46.12          {BUG_ID + FS + "pkg" + FS + "C.html",
   46.13 -            "<STRONG>Parameters:</STRONG><DD><CODE><I>p1</I></CODE> - testing 1 2 3." +
   46.14 +            "<STRONG>Parameters:</STRONG></DT><DD><CODE><I>p1</I></CODE> - testing 1 2 3.</DD>" +
   46.15                  "<DD><CODE><I>p2</I></CODE> - testing 1 2 3."
   46.16          },
   46.17          //{@inherit} doc misuse does not cause doclet to throw exception.
    47.1 --- a/test/com/sun/javadoc/testPrivateClasses/TestPrivateClasses.java	Fri Feb 27 10:54:11 2009 -0800
    47.2 +++ b/test/com/sun/javadoc/testPrivateClasses/TestPrivateClasses.java	Mon Mar 02 15:11:29 2009 -0800
    47.3 @@ -96,11 +96,11 @@
    47.4  
    47.5          //Make sure implemented interfaces from private superclass are inherited
    47.6          {BUG_ID + "-1" + FS + "pkg" + FS + "PublicInterface.html",
    47.7 -            "<STRONG>All Known Implementing Classes:</STRONG> <DD><A HREF=\"../pkg/PublicChild.html\" " +
    47.8 +            "<STRONG>All Known Implementing Classes:</STRONG></DT> <DD><A HREF=\"../pkg/PublicChild.html\" " +
    47.9              "title=\"class in pkg\">PublicChild</A>"},
   47.10  
   47.11          {BUG_ID + "-1" + FS + "pkg" + FS + "PublicChild.html",
   47.12 -            "<STRONG>All Implemented Interfaces:</STRONG> <DD><A HREF=\"../pkg/PublicInterface.html\" " +
   47.13 +            "<STRONG>All Implemented Interfaces:</STRONG></DT> <DD><A HREF=\"../pkg/PublicInterface.html\" " +
   47.14              "title=\"interface in pkg\">PublicInterface</A>"},
   47.15  
   47.16          //Generic interface method test.
   47.17 @@ -174,18 +174,18 @@
   47.18          },
   47.19          // Should document that a method overrides method from private class.
   47.20         {BUG_ID + "-2" + FS + "pkg" + FS + "PublicChild.html",
   47.21 -            "<STRONG>Overrides:</STRONG><DD><CODE>" +
   47.22 +            "<STRONG>Overrides:</STRONG></DT><DD><CODE>" +
   47.23              "<A HREF=\"../pkg/PrivateParent.html#methodOverridenFromParent(char[], int, T, V, java.util.List)\">" +
   47.24              "methodOverridenFromParent</A></CODE> in class <CODE>" +
   47.25              "<A HREF=\"../pkg/PrivateParent.html\" title=\"class in pkg\">" +
   47.26 -            "PrivateParent</A></CODE></DL>"},
   47.27 +            "PrivateParent</A></CODE></DD>" + NL + "</DL>"},
   47.28         // Should document that a method is specified by private interface.
   47.29         {BUG_ID + "-2" + FS + "pkg" + FS + "PublicChild.html",
   47.30 -            "<STRONG>Specified by:</STRONG><DD><CODE>" +
   47.31 +            "<STRONG>Specified by:</STRONG></DT><DD><CODE>" +
   47.32              "<A HREF=\"../pkg/PrivateInterface.html#methodInterface(int)\">" +
   47.33              "methodInterface</A></CODE> in interface <CODE>" +
   47.34              "<A HREF=\"../pkg/PrivateInterface.html\" title=\"interface in pkg\">" +
   47.35 -            "PrivateInterface</A></CODE></DL>" + NL + "</DD>"},
   47.36 +            "PrivateInterface</A></CODE></DD>" + NL + "</DL>" + NL + "</DD>"},
   47.37         // Method inheritence from non-public superinterface.
   47.38         {BUG_ID + "-2" + FS + "pkg" + FS + "PublicInterface.html",
   47.39              "Methods inherited from interface " +
   47.40 @@ -209,12 +209,12 @@
   47.41  
   47.42        //Make sure implemented interfaces from private superclass are inherited
   47.43        {BUG_ID + "-2" + FS + "pkg" + FS + "PublicInterface.html",
   47.44 -        "<STRONG>All Known Implementing Classes:</STRONG> <DD><A HREF=\"../pkg/PrivateParent.html\" " +
   47.45 +        "<STRONG>All Known Implementing Classes:</STRONG></DT> <DD><A HREF=\"../pkg/PrivateParent.html\" " +
   47.46          "title=\"class in pkg\">PrivateParent</A>, " +
   47.47          "<A HREF=\"../pkg/PublicChild.html\" title=\"class in pkg\">PublicChild</A>"},
   47.48  
   47.49        {BUG_ID + "-2" + FS + "pkg" + FS + "PublicChild.html",
   47.50 -        "<STRONG>All Implemented Interfaces:</STRONG> <DD><A HREF=\"../pkg/PrivateInterface.html\" " +
   47.51 +        "<STRONG>All Implemented Interfaces:</STRONG></DT> <DD><A HREF=\"../pkg/PrivateInterface.html\" " +
   47.52          "title=\"interface in pkg\">PrivateInterface</A>, " +
   47.53          "<A HREF=\"../pkg/PublicInterface.html\" title=\"interface in pkg\">" +
   47.54          "PublicInterface</A>"},
   47.55 @@ -226,7 +226,7 @@
   47.56              "<CODE><A HREF=\"../pkg2/I.html#hello(T)\">I</A></CODE></STRONG>"},
   47.57  
   47.58        {BUG_ID + "-2" + FS + "pkg2" + FS + "C.html",
   47.59 -            "<STRONG>Specified by:</STRONG><DD><CODE><A HREF=\"../pkg2/I.html#hello(T)\">" +
   47.60 +            "<STRONG>Specified by:</STRONG></DT><DD><CODE><A HREF=\"../pkg2/I.html#hello(T)\">" +
   47.61              "hello</A></CODE> in interface <CODE><A HREF=\"../pkg2/I.html\" " +
   47.62              "title=\"interface in pkg2\">I</A>"},
   47.63      };
    48.1 --- a/test/com/sun/javadoc/testSerializedFormDeprecationInfo/TestSerializedFormDeprecationInfo.java	Fri Feb 27 10:54:11 2009 -0800
    48.2 +++ b/test/com/sun/javadoc/testSerializedFormDeprecationInfo/TestSerializedFormDeprecationInfo.java	Mon Mar 02 15:11:29 2009 -0800
    48.3 @@ -41,39 +41,39 @@
    48.4      // Test for normal run of javadoc. The serialized-form.html should
    48.5      // display the inline comments, tags and deprecation information if any.
    48.6      private static final String[][] TEST_CMNT_DEPR = {
    48.7 -        {BUG_ID + FS + "serialized-form.html", "<DL>" + NL + "<DD><DL>" + NL + NL +
    48.8 -                 "<DT><STRONG>Throws:</STRONG>" + NL + "<DD><CODE>" +
    48.9 -                 "java.io.IOException</CODE><DT><STRONG>See Also:</STRONG>" +
   48.10 -                 "<DD><A HREF=\"pkg1/C1.html#setUndecorated(boolean)\">" +
   48.11 -                 "<CODE>C1.setUndecorated(boolean)</CODE></A></DD>" + NL +
   48.12 -                 "</DL>" + NL + "</DL>"},
   48.13 +        {BUG_ID + FS + "serialized-form.html", "<DL>" + NL + "<DD><DL>" + NL +
   48.14 +                 "<DT><STRONG>Throws:</STRONG></DT>" + NL + "<DD><CODE>" +
   48.15 +                 "java.io.IOException</CODE></DD><DT><STRONG>See Also:</STRONG>" +
   48.16 +                 "</DT><DD><A HREF=\"pkg1/C1.html#setUndecorated(boolean)\">" +
   48.17 +                 "<CODE>C1.setUndecorated(boolean)</CODE></A></DD></DL>" + NL +
   48.18 +                 "</DD>" + NL + "</DL>"},
   48.19          {BUG_ID + FS + "serialized-form.html", "<DL>" + NL +
   48.20 -                 "<DD><STRONG>Deprecated.</STRONG>&nbsp;<I>As of JDK version" +
   48.21 -                 " 1.5, replaced by" + NL +
   48.22 +                 "<DD><STRONG>Deprecated.</STRONG>&nbsp;<I>As of JDK version " +
   48.23 +                 "1.5, replaced by" + NL +
   48.24                   " <A HREF=\"pkg1/C1.html#setUndecorated(boolean)\">" +
   48.25 -                 "<CODE>setUndecorated(boolean)</CODE></A>.</I>" +
   48.26 +                 "<CODE>setUndecorated(boolean)</CODE></A>.</I></DD>" +
   48.27                   "<DD>This field indicates whether the C1 is undecorated." + NL +
   48.28 -                 "<P>" + NL + "<DT><DD>&nbsp;<DL>" + NL +
   48.29 -                 "<DT><STRONG>Since:</STRONG></DT>" + NL +
   48.30 +                 "<P>" + NL + "</DD>" + NL + "<DD>&nbsp;</DD>" + NL +
   48.31 +                 "<DD><DL>" + NL + "<DT><STRONG>Since:</STRONG></DT>" + NL +
   48.32                   "  <DD>1.4</DD>" + NL + "<DT><STRONG>See Also:</STRONG>" +
   48.33 -                 "<DD><A HREF=\"pkg1/C1.html#setUndecorated(boolean)\">" +
   48.34 -                 "<CODE>C1.setUndecorated(boolean)</CODE></A></DL>" + NL +
   48.35 -                 "</DL>"},
   48.36 +                 "</DT><DD><A HREF=\"pkg1/C1.html#setUndecorated(boolean)\">" +
   48.37 +                 "<CODE>C1.setUndecorated(boolean)</CODE></A></DD></DL>" + NL +
   48.38 +                 "</DD>" + NL + "</DL>"},
   48.39          {BUG_ID + FS + "serialized-form.html", "<DL>" + NL +
   48.40                   "<DD><STRONG>Deprecated.</STRONG>&nbsp;<I>As of JDK version" +
   48.41                   " 1.5, replaced by" + NL +
   48.42                   " <A HREF=\"pkg1/C1.html#setUndecorated(boolean)\">" +
   48.43                   "<CODE>setUndecorated(boolean)</CODE></A>.</I>" + NL + "<P>" + NL +
   48.44 -                 "<DD>Reads the object stream." + NL + "<P>" + NL +
   48.45 -                 "<DD><DL>" + NL + NL + "<DT><STRONG>Throws:" +
   48.46 -                 "</STRONG>" + NL + "<DD><CODE><code>" +
   48.47 -                 "IOException</code></CODE>" + NL +
   48.48 -                 "<DD><CODE>java.io.IOException</CODE></DD>" + NL +
   48.49 -                 "</DL>" + NL + "</DL>"},
   48.50 +                 "</DD><DD>Reads the object stream." + NL + "<P>" + NL +
   48.51 +                 "</DD>" + NL + "<DD><DL>" + NL + "<DT><STRONG>Throws:" +
   48.52 +                 "</STRONG></DT>" + NL + "<DD><CODE><code>" +
   48.53 +                 "IOException</code></CODE></DD>" + NL +
   48.54 +                 "<DD><CODE>java.io.IOException</CODE></DD></DL>" + NL +
   48.55 +                 "</DD>" + NL + "</DL>"},
   48.56          {BUG_ID + FS + "serialized-form.html", "<DL>" + NL +
   48.57 -                 "<DD><STRONG>Deprecated.</STRONG>&nbsp;<DD>" +
   48.58 -                 "The name for this class." + NL + "<P>" + NL +
   48.59 -                 "<DT><DD>&nbsp;<DL>" + NL + "</DL>" + NL + "</DL>"}};
   48.60 +                 "<DD><STRONG>Deprecated.</STRONG>&nbsp;</DD><DD>" +
   48.61 +                 "The name for this class." + NL + "<P>" + NL + "</DD>" + NL +
   48.62 +                 "<DD>&nbsp;</DD>" + NL + "</DL>"}};
   48.63  
   48.64      // Test with -nocomment option. The serialized-form.html should
   48.65      // not display the inline comments and tags but should display deprecation
   48.66 @@ -83,16 +83,16 @@
   48.67                   "undecorated</STRONG></PRE>" + NL + "<DL>" + NL + "<DD><STRONG>" +
   48.68                   "Deprecated.</STRONG>&nbsp;<I>As of JDK version 1.5, replaced by" + NL +
   48.69                   " <A HREF=\"pkg1/C1.html#setUndecorated(boolean)\"><CODE>" +
   48.70 -                 "setUndecorated(boolean)</CODE></A>.</I></DL>"},
   48.71 +                 "setUndecorated(boolean)</CODE></A>.</I></DD></DL>"},
   48.72          {BUG_ID + FS + "serialized-form.html", "<DL>" + NL + "<DD><STRONG>" +
   48.73                   "Deprecated.</STRONG>&nbsp;<I>As of JDK version" +
   48.74                   " 1.5, replaced by" + NL +
   48.75                   " <A HREF=\"pkg1/C1.html#setUndecorated(boolean)\">" +
   48.76                   "<CODE>setUndecorated(boolean)</CODE></A>.</I>" + NL + "<P>" + NL +
   48.77 -                 "</DL>"},
   48.78 +                 "</DD></DL>"},
   48.79          {BUG_ID + FS + "serialized-form.html", "<PRE>" + NL + "int <STRONG>" +
   48.80                   "publicKey</STRONG></PRE>" + NL + "<DL>" + NL + "<DD><STRONG>" +
   48.81 -                 "Deprecated.</STRONG>&nbsp;</DL>"}};
   48.82 +                 "Deprecated.</STRONG>&nbsp;</DD></DL>"}};
   48.83  
   48.84      // Test with -nodeprecated option. The serialized-form.html should
   48.85      // ignore the -nodeprecated tag and display the deprecation info. This
    49.1 --- a/test/com/sun/javadoc/testThrowsTag/TestThrowsTag.java	Fri Feb 27 10:54:11 2009 -0800
    49.2 +++ b/test/com/sun/javadoc/testThrowsTag/TestThrowsTag.java	Mon Mar 02 15:11:29 2009 -0800
    49.3 @@ -46,14 +46,14 @@
    49.4      //Input for string search tests.
    49.5      private static final String[][] TEST = {
    49.6          {BUG_ID + FS + "pkg" + FS + "C.html",
    49.7 -            "<DD><CODE><A HREF=\"../pkg/T1.html\" title=\"class in pkg\">T1</A></CODE> - the first throws tag." + NL +
    49.8 -            "<DD><CODE><A HREF=\"../pkg/T2.html\" title=\"class in pkg\">T2</A></CODE> - the second throws tag." + NL +
    49.9 -            "<DD><CODE><A HREF=\"../pkg/T3.html\" title=\"class in pkg\">T3</A></CODE> - the third throws tag." + NL +
   49.10 -            "<DD><CODE><A HREF=\"../pkg/T4.html\" title=\"class in pkg\">T4</A></CODE> - the fourth throws tag." + NL +
   49.11 -            "<DD><CODE><A HREF=\"../pkg/T5.html\" title=\"class in pkg\">T5</A></CODE> - the first inherited throws tag." + NL +
   49.12 -            "<DD><CODE><A HREF=\"../pkg/T6.html\" title=\"class in pkg\">T6</A></CODE> - the second inherited throws tag." + NL +
   49.13 -            "<DD><CODE><A HREF=\"../pkg/T7.html\" title=\"class in pkg\">T7</A></CODE> - the third inherited throws tag." + NL +
   49.14 -            "<DD><CODE><A HREF=\"../pkg/T8.html\" title=\"class in pkg\">T8</A></CODE> - the fourth inherited throws tag."
   49.15 +            "<DD><CODE><A HREF=\"../pkg/T1.html\" title=\"class in pkg\">T1</A></CODE> - the first throws tag.</DD>" + NL +
   49.16 +            "<DD><CODE><A HREF=\"../pkg/T2.html\" title=\"class in pkg\">T2</A></CODE> - the second throws tag.</DD>" + NL +
   49.17 +            "<DD><CODE><A HREF=\"../pkg/T3.html\" title=\"class in pkg\">T3</A></CODE> - the third throws tag.</DD>" + NL +
   49.18 +            "<DD><CODE><A HREF=\"../pkg/T4.html\" title=\"class in pkg\">T4</A></CODE> - the fourth throws tag.</DD>" + NL +
   49.19 +            "<DD><CODE><A HREF=\"../pkg/T5.html\" title=\"class in pkg\">T5</A></CODE> - the first inherited throws tag.</DD>" + NL +
   49.20 +            "<DD><CODE><A HREF=\"../pkg/T6.html\" title=\"class in pkg\">T6</A></CODE> - the second inherited throws tag.</DD>" + NL +
   49.21 +            "<DD><CODE><A HREF=\"../pkg/T7.html\" title=\"class in pkg\">T7</A></CODE> - the third inherited throws tag.</DD>" + NL +
   49.22 +            "<DD><CODE><A HREF=\"../pkg/T8.html\" title=\"class in pkg\">T8</A></CODE> - the fourth inherited throws tag.</DD>"
   49.23          },
   49.24      };
   49.25      private static final String[][] NEGATED_TEST = NO_TEST;
    50.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    50.2 +++ b/test/tools/javac/processing/environment/round/Foo.java	Mon Mar 02 15:11:29 2009 -0800
    50.3 @@ -0,0 +1,27 @@
    50.4 +/*
    50.5 + * Copyright 2006 Sun Microsystems, Inc.  All Rights Reserved.
    50.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    50.7 + *
    50.8 + * This code is free software; you can redistribute it and/or modify it
    50.9 + * under the terms of the GNU General Public License version 2 only, as
   50.10 + * published by the Free Software Foundation.
   50.11 + *
   50.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
   50.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   50.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   50.15 + * version 2 for more details (a copy is included in the LICENSE file that
   50.16 + * accompanied this code).
   50.17 + *
   50.18 + * You should have received a copy of the GNU General Public License version
   50.19 + * 2 along with this work; if not, write to the Free Software Foundation,
   50.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   50.21 + *
   50.22 + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
   50.23 + * CA 95054 USA or visit www.sun.com if you need additional information or
   50.24 + * have any questions.
   50.25 + */
   50.26 +
   50.27 +@AnnotatedElementInfo(annotationName="AnnotatedElementInfo",
   50.28 +                      expectedSize=1,
   50.29 +                      names="Foo")
   50.30 +public class Foo {}
    51.1 --- a/test/tools/javac/processing/environment/round/TestElementsAnnotatedWith.java	Fri Feb 27 10:54:11 2009 -0800
    51.2 +++ b/test/tools/javac/processing/environment/round/TestElementsAnnotatedWith.java	Mon Mar 02 15:11:29 2009 -0800
    51.3 @@ -1,5 +1,5 @@
    51.4  /*
    51.5 - * Copyright 2006-2007 Sun Microsystems, Inc.  All Rights Reserved.
    51.6 + * Copyright 2006-2009 Sun Microsystems, Inc.  All Rights Reserved.
    51.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    51.8   *
    51.9   * This code is free software; you can redistribute it and/or modify it
   51.10 @@ -23,7 +23,7 @@
   51.11  
   51.12  /*
   51.13   * @test
   51.14 - * @bug 6397298 6400986 6425592 6449798 6453386 6508401
   51.15 + * @bug 6397298 6400986 6425592 6449798 6453386 6508401 6498938
   51.16   * @summary Tests that getElementsAnnotatedWith works properly.
   51.17   * @author  Joseph D. Darcy
   51.18   * @compile TestElementsAnnotatedWith.java
   51.19 @@ -31,16 +31,22 @@
   51.20   * @compile -processor TestElementsAnnotatedWith -proc:only SurfaceAnnotations.java
   51.21   * @compile -processor TestElementsAnnotatedWith -proc:only BuriedAnnotations.java
   51.22   * @compile -processor TestElementsAnnotatedWith -proc:only Part1.java Part2.java
   51.23 + * @compile -processor TestElementsAnnotatedWith -proc:only C2.java
   51.24 + * @compile -processor TestElementsAnnotatedWith -proc:only Foo.java
   51.25 + * @compile -XD-d=. Foo.java
   51.26   * @compile -processor TestElementsAnnotatedWith -proc:only TestElementsAnnotatedWith.java
   51.27 - * @compile -processor TestElementsAnnotatedWith -proc:only C2.java
   51.28   */
   51.29  
   51.30  import java.lang.annotation.Annotation;
   51.31 +import java.io.*;
   51.32  import java.util.Collections;
   51.33  import java.util.Set;
   51.34  import java.util.HashSet;
   51.35 +import java.util.List;
   51.36 +import java.util.ArrayList;
   51.37  import java.util.Arrays;
   51.38  import javax.annotation.processing.*;
   51.39 +import javax.tools.*;
   51.40  import javax.lang.model.SourceVersion;
   51.41  import javax.lang.model.element.*;
   51.42  import javax.lang.model.util.*;
   51.43 @@ -120,6 +126,9 @@
   51.44                  System.err.println("AnnotatedElementInfo: " + annotatedElementInfo);
   51.45                  throw new RuntimeException();
   51.46              }
   51.47 +
   51.48 +            if("TestElementsAnnotatedWith".equals(firstType.getSimpleName().toString()))
   51.49 +               writeClassFile(); // Start another round to test class file input
   51.50          } else {
   51.51              // If processing is over without an error, the specified
   51.52              // elements should be empty so an empty set should be returned.
   51.53 @@ -161,6 +170,37 @@
   51.54          } catch(IllegalArgumentException iae) {}
   51.55      }
   51.56  
   51.57 +    /*
   51.58 +     * Hack alert!  The class file read below is generated by the
   51.59 +     * "@compile -XD-d=. Foo.java" directive above.  This sneakily
   51.60 +     * overrides the output location to the current directory where a
   51.61 +     * subsequent @compile can read the file.  This could be improved
   51.62 +     * if either a new directive like @process accepted class file
   51.63 +     * arguments (the javac command accepts such arguments but
   51.64 +     * @compile does not) or the test.src and test.classes properties
   51.65 +     * were set to be read with @compile jobs.
   51.66 +     */
   51.67 +    private void writeClassFile() {
   51.68 +        try {
   51.69 +            Filer filer = processingEnv.getFiler();
   51.70 +            JavaFileObject jfo = filer.createClassFile("Foo");
   51.71 +            OutputStream os = jfo.openOutputStream();
   51.72 +            // Copy the bytes over
   51.73 +            System.out.println((new File(".")).getAbsolutePath());
   51.74 +            InputStream io = new BufferedInputStream(new FileInputStream(new File(".", "Foo.class")));
   51.75 +            int datum = io.read();
   51.76 +            while(datum != -1) {
   51.77 +                os.write(datum);
   51.78 +                datum = io.read();
   51.79 +            }
   51.80 +            os.close();
   51.81 +        } catch (IOException io) {
   51.82 +            throw new RuntimeException(io);
   51.83 +        }
   51.84 +
   51.85 +
   51.86 +    }
   51.87 +
   51.88      @Override
   51.89      public SourceVersion getSupportedSourceVersion() {
   51.90          return SourceVersion.latest();

mercurial