8005092: javadoc should check for synthesized bit on an annotation

Sat, 05 Jan 2013 00:55:53 -0800

author
bpatel
date
Sat, 05 Jan 2013 00:55:53 -0800
changeset 1477
8c0c63a6e3b7
parent 1476
0e17c3c23e3b
child 1478
a9cb93cca229

8005092: javadoc should check for synthesized bit on an annotation
Reviewed-by: jjg

src/share/classes/com/sun/javadoc/AnnotationDesc.java file | annotate | diff | comparison | revisions
src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java file | annotate | diff | comparison | revisions
src/share/classes/com/sun/tools/javadoc/AnnotationDescImpl.java file | annotate | diff | comparison | revisions
test/com/sun/javadoc/testRepeatedAnnotations/TestRepeatedAnnotations.java file | annotate | diff | comparison | revisions
test/com/sun/javadoc/testRepeatedAnnotations/pkg/C.java file | annotate | diff | comparison | revisions
test/com/sun/javadoc/testRepeatedAnnotations/pkg/ContaineeRegDoc.java file | annotate | diff | comparison | revisions
test/com/sun/javadoc/testRepeatedAnnotations/pkg/ContaineeSynthDoc.java file | annotate | diff | comparison | revisions
test/com/sun/javadoc/testRepeatedAnnotations/pkg/ContainerRegDoc.java file | annotate | diff | comparison | revisions
test/com/sun/javadoc/testRepeatedAnnotations/pkg/ContainerRegNotDoc.java file | annotate | diff | comparison | revisions
test/com/sun/javadoc/testRepeatedAnnotations/pkg/ContainerSynthDoc.java file | annotate | diff | comparison | revisions
test/com/sun/javadoc/testRepeatedAnnotations/pkg/D.java file | annotate | diff | comparison | revisions
test/com/sun/javadoc/testRepeatedAnnotations/pkg/NonSynthDocContainer.java file | annotate | diff | comparison | revisions
test/com/sun/javadoc/testRepeatedAnnotations/pkg/RegArryDoc.java file | annotate | diff | comparison | revisions
test/com/sun/javadoc/testRepeatedAnnotations/pkg/RegContaineeDoc.java file | annotate | diff | comparison | revisions
test/com/sun/javadoc/testRepeatedAnnotations/pkg/RegContaineeNotDoc.java file | annotate | diff | comparison | revisions
test/com/sun/javadoc/testRepeatedAnnotations/pkg/RegContainerDoc.java file | annotate | diff | comparison | revisions
test/com/sun/javadoc/testRepeatedAnnotations/pkg/RegContainerNotDoc.java file | annotate | diff | comparison | revisions
test/com/sun/javadoc/testRepeatedAnnotations/pkg/RegDoc.java file | annotate | diff | comparison | revisions
test/com/sun/javadoc/testRepeatedAnnotations/pkg1/C.java file | annotate | diff | comparison | revisions
test/com/sun/javadoc/testRepeatedAnnotations/pkg1/ContaineeNotDoc.java file | annotate | diff | comparison | revisions
test/com/sun/javadoc/testRepeatedAnnotations/pkg1/ContaineeSynthDoc.java file | annotate | diff | comparison | revisions
test/com/sun/javadoc/testRepeatedAnnotations/pkg1/ContainerSynthNotDoc.java file | annotate | diff | comparison | revisions
test/com/sun/javadoc/testRepeatedAnnotations/pkg1/ContainerValDoc.java file | annotate | diff | comparison | revisions
test/com/sun/javadoc/testRepeatedAnnotations/pkg1/ContainerValNotDoc.java file | annotate | diff | comparison | revisions
test/com/sun/javadoc/testRepeatedAnnotations/pkg1/RegContaineeDoc.java file | annotate | diff | comparison | revisions
test/com/sun/javadoc/testRepeatedAnnotations/pkg1/RegContaineeNotDoc.java file | annotate | diff | comparison | revisions
test/com/sun/javadoc/testRepeatedAnnotations/pkg1/RegContainerValDoc.java file | annotate | diff | comparison | revisions
test/com/sun/javadoc/testRepeatedAnnotations/pkg1/RegContainerValNotDoc.java file | annotate | diff | comparison | revisions
     1.1 --- a/src/share/classes/com/sun/javadoc/AnnotationDesc.java	Fri Jan 04 23:06:05 2013 -0800
     1.2 +++ b/src/share/classes/com/sun/javadoc/AnnotationDesc.java	Sat Jan 05 00:55:53 2013 -0800
     1.3 @@ -52,6 +52,12 @@
     1.4       */
     1.5      ElementValuePair[] elementValues();
     1.6  
     1.7 +    /**
     1.8 +     * Check for the synthesized bit on the annotation.
     1.9 +     *
    1.10 +     * @return true if the annotation is synthesized.
    1.11 +     */
    1.12 +    boolean isSynthesized();
    1.13  
    1.14      /**
    1.15       * Represents an association between an annotation type element
     2.1 --- a/src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java	Fri Jan 04 23:06:05 2013 -0800
     2.2 +++ b/src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java	Sat Jan 05 00:55:53 2013 -0800
     2.3 @@ -90,6 +90,16 @@
     2.4      protected boolean printedAnnotationHeading = false;
     2.5  
     2.6      /**
     2.7 +     * To check whether the repeated annotations is documented or not.
     2.8 +     */
     2.9 +    private boolean isAnnotationDocumented = false;
    2.10 +
    2.11 +    /**
    2.12 +     * To check whether the container annotations is documented or not.
    2.13 +     */
    2.14 +    private boolean isContainerDocumented = false;
    2.15 +
    2.16 +    /**
    2.17       * Constructor to construct the HtmlStandardWriter object.
    2.18       *
    2.19       * @param path File to be generated.
    2.20 @@ -1793,50 +1803,66 @@
    2.21          StringBuilder annotation;
    2.22          for (int i = 0; i < descList.length; i++) {
    2.23              AnnotationTypeDoc annotationDoc = descList[i].annotationType();
    2.24 -            if (! Util.isDocumentedAnnotation(annotationDoc)){
    2.25 +            // If an annotation is not documented, do not add it to the list. If
    2.26 +            // the annotation is of a repeatable type, and if it is not documented
    2.27 +            // and also if its container annotation is not documented, do not add it
    2.28 +            // to the list. If an annotation of a repeatable type is not documented
    2.29 +            // but its container is documented, it will be added to the list.
    2.30 +            if (! Util.isDocumentedAnnotation(annotationDoc) &&
    2.31 +                    (!isAnnotationDocumented && !isContainerDocumented)) {
    2.32                  continue;
    2.33              }
    2.34              annotation = new StringBuilder();
    2.35 +            isAnnotationDocumented = false;
    2.36              LinkInfoImpl linkInfo = new LinkInfoImpl(configuration,
    2.37                  LinkInfoImpl.CONTEXT_ANNOTATION, annotationDoc);
    2.38 -            linkInfo.label = "@" + annotationDoc.name();
    2.39 -            annotation.append(getLink(linkInfo));
    2.40              AnnotationDesc.ElementValuePair[] pairs = descList[i].elementValues();
    2.41 -            if (pairs.length > 0) {
    2.42 -                annotation.append('(');
    2.43 +            // If the annotation is synthesized, do not print the container.
    2.44 +            if (descList[i].isSynthesized()) {
    2.45                  for (int j = 0; j < pairs.length; j++) {
    2.46 -                    if (j > 0) {
    2.47 -                        annotation.append(",");
    2.48 -                        if (linkBreak) {
    2.49 -                            annotation.append(DocletConstants.NL);
    2.50 -                            int spaces = annotationDoc.name().length() + 2;
    2.51 -                            for (int k = 0; k < (spaces + indent); k++) {
    2.52 -                                annotation.append(' ');
    2.53 -                            }
    2.54 -                        }
    2.55 -                    }
    2.56 -                    annotation.append(getDocLink(LinkInfoImpl.CONTEXT_ANNOTATION,
    2.57 -                        pairs[j].element(), pairs[j].element().name(), false));
    2.58 -                    annotation.append('=');
    2.59                      AnnotationValue annotationValue = pairs[j].value();
    2.60                      List<AnnotationValue> annotationTypeValues = new ArrayList<AnnotationValue>();
    2.61                      if (annotationValue.value() instanceof AnnotationValue[]) {
    2.62                          AnnotationValue[] annotationArray =
    2.63 -                            (AnnotationValue[]) annotationValue.value();
    2.64 -                        for (int k = 0; k < annotationArray.length; k++) {
    2.65 -                            annotationTypeValues.add(annotationArray[k]);
    2.66 -                        }
    2.67 +                                (AnnotationValue[]) annotationValue.value();
    2.68 +                        annotationTypeValues.addAll(Arrays.asList(annotationArray));
    2.69                      } else {
    2.70                          annotationTypeValues.add(annotationValue);
    2.71                      }
    2.72 -                    annotation.append(annotationTypeValues.size() == 1 ? "" : "{");
    2.73 -                    for (Iterator<AnnotationValue> iter = annotationTypeValues.iterator(); iter.hasNext(); ) {
    2.74 -                        annotation.append(annotationValueToString(iter.next()));
    2.75 -                        annotation.append(iter.hasNext() ? "," : "");
    2.76 +                    String sep = "";
    2.77 +                    for (AnnotationValue av : annotationTypeValues) {
    2.78 +                        annotation.append(sep);
    2.79 +                        annotation.append(annotationValueToString(av));
    2.80 +                        sep = " ";
    2.81                      }
    2.82 -                    annotation.append(annotationTypeValues.size() == 1 ? "" : "}");
    2.83                  }
    2.84 -                annotation.append(")");
    2.85 +            }
    2.86 +            else if (isAnnotationArray(pairs)) {
    2.87 +                // If the container has 1 or more value defined and if the
    2.88 +                // repeatable type annotation is not documented, do not print
    2.89 +                // the container.
    2.90 +                if (pairs.length == 1 && isAnnotationDocumented) {
    2.91 +                    AnnotationValue[] annotationArray =
    2.92 +                            (AnnotationValue[]) (pairs[0].value()).value();
    2.93 +                    List<AnnotationValue> annotationTypeValues = new ArrayList<AnnotationValue>();
    2.94 +                    annotationTypeValues.addAll(Arrays.asList(annotationArray));
    2.95 +                    String sep = "";
    2.96 +                    for (AnnotationValue av : annotationTypeValues) {
    2.97 +                        annotation.append(sep);
    2.98 +                        annotation.append(annotationValueToString(av));
    2.99 +                        sep = " ";
   2.100 +                    }
   2.101 +                }
   2.102 +                // If the container has 1 or more value defined and if the
   2.103 +                // repeatable type annotation is not documented, print the container.
   2.104 +                else {
   2.105 +                    addAnnotations(annotationDoc, linkInfo, annotation, pairs,
   2.106 +                        indent, false);
   2.107 +                }
   2.108 +            }
   2.109 +            else {
   2.110 +                addAnnotations(annotationDoc, linkInfo, annotation, pairs,
   2.111 +                        indent, linkBreak);
   2.112              }
   2.113              annotation.append(linkBreak ? DocletConstants.NL : "");
   2.114              results.add(annotation.toString());
   2.115 @@ -1844,6 +1870,91 @@
   2.116          return results;
   2.117      }
   2.118  
   2.119 +    /**
   2.120 +     * Add annotation to the annotation string.
   2.121 +     *
   2.122 +     * @param annotationDoc the annotation being documented
   2.123 +     * @param linkInfo the information about the link
   2.124 +     * @param annotation the annotation string to which the annotation will be added
   2.125 +     * @param pairs annotation type element and value pairs
   2.126 +     * @param indent the number of extra spaces to indent the annotations.
   2.127 +     * @param linkBreak if true, add new line between each member value
   2.128 +     */
   2.129 +    private void addAnnotations(AnnotationTypeDoc annotationDoc, LinkInfoImpl linkInfo,
   2.130 +            StringBuilder annotation, AnnotationDesc.ElementValuePair[] pairs,
   2.131 +            int indent, boolean linkBreak) {
   2.132 +        linkInfo.label = "@" + annotationDoc.name();
   2.133 +        annotation.append(getLink(linkInfo));
   2.134 +        if (pairs.length > 0) {
   2.135 +            annotation.append('(');
   2.136 +            for (int j = 0; j < pairs.length; j++) {
   2.137 +                if (j > 0) {
   2.138 +                    annotation.append(",");
   2.139 +                    if (linkBreak) {
   2.140 +                        annotation.append(DocletConstants.NL);
   2.141 +                        int spaces = annotationDoc.name().length() + 2;
   2.142 +                        for (int k = 0; k < (spaces + indent); k++) {
   2.143 +                            annotation.append(' ');
   2.144 +                        }
   2.145 +                    }
   2.146 +                }
   2.147 +                annotation.append(getDocLink(LinkInfoImpl.CONTEXT_ANNOTATION,
   2.148 +                        pairs[j].element(), pairs[j].element().name(), false));
   2.149 +                annotation.append('=');
   2.150 +                AnnotationValue annotationValue = pairs[j].value();
   2.151 +                List<AnnotationValue> annotationTypeValues = new ArrayList<AnnotationValue>();
   2.152 +                if (annotationValue.value() instanceof AnnotationValue[]) {
   2.153 +                    AnnotationValue[] annotationArray =
   2.154 +                            (AnnotationValue[]) annotationValue.value();
   2.155 +                    annotationTypeValues.addAll(Arrays.asList(annotationArray));
   2.156 +                } else {
   2.157 +                    annotationTypeValues.add(annotationValue);
   2.158 +                }
   2.159 +                annotation.append(annotationTypeValues.size() == 1 ? "" : "{");
   2.160 +                String sep = "";
   2.161 +                for (AnnotationValue av : annotationTypeValues) {
   2.162 +                    annotation.append(sep);
   2.163 +                    annotation.append(annotationValueToString(av));
   2.164 +                    sep = ",";
   2.165 +                }
   2.166 +                annotation.append(annotationTypeValues.size() == 1 ? "" : "}");
   2.167 +                isContainerDocumented = false;
   2.168 +            }
   2.169 +            annotation.append(")");
   2.170 +        }
   2.171 +    }
   2.172 +
   2.173 +    /**
   2.174 +     * Check if the annotation contains an array of annotation as a value. This
   2.175 +     * check is to verify if a repeatable type annotation is present or not.
   2.176 +     *
   2.177 +     * @param pairs annotation type element and value pairs
   2.178 +     *
   2.179 +     * @return true if the annotation contains an array of annotation as a value.
   2.180 +     */
   2.181 +    private boolean isAnnotationArray(AnnotationDesc.ElementValuePair[] pairs) {
   2.182 +        AnnotationValue annotationValue;
   2.183 +        for (int j = 0; j < pairs.length; j++) {
   2.184 +            annotationValue = pairs[j].value();
   2.185 +            if (annotationValue.value() instanceof AnnotationValue[]) {
   2.186 +                AnnotationValue[] annotationArray =
   2.187 +                        (AnnotationValue[]) annotationValue.value();
   2.188 +                if (annotationArray.length > 1) {
   2.189 +                    if (annotationArray[0].value() instanceof AnnotationDesc) {
   2.190 +                        AnnotationTypeDoc annotationDoc =
   2.191 +                                ((AnnotationDesc) annotationArray[0].value()).annotationType();
   2.192 +                        isContainerDocumented = true;
   2.193 +                        if (Util.isDocumentedAnnotation(annotationDoc)) {
   2.194 +                            isAnnotationDocumented = true;
   2.195 +                        }
   2.196 +                        return true;
   2.197 +                    }
   2.198 +                }
   2.199 +            }
   2.200 +        }
   2.201 +        return false;
   2.202 +    }
   2.203 +
   2.204      private String annotationValueToString(AnnotationValue annotationValue) {
   2.205          if (annotationValue.value() instanceof Type) {
   2.206              Type type = (Type) annotationValue.value();
     3.1 --- a/src/share/classes/com/sun/tools/javadoc/AnnotationDescImpl.java	Fri Jan 04 23:06:05 2013 -0800
     3.2 +++ b/src/share/classes/com/sun/tools/javadoc/AnnotationDescImpl.java	Sat Jan 05 00:55:53 2013 -0800
     3.3 @@ -89,6 +89,15 @@
     3.4      }
     3.5  
     3.6      /**
     3.7 +     * Check for the synthesized bit on the annotation.
     3.8 +     *
     3.9 +     * @return true if the annotation is synthesized.
    3.10 +     */
    3.11 +    public boolean isSynthesized() {
    3.12 +        return annotation.isSynthesized();
    3.13 +    }
    3.14 +
    3.15 +    /**
    3.16       * Returns a string representation of this annotation.
    3.17       * String is of one of the forms:
    3.18       *     @com.example.foo(name1=val1, name2=val2)
     4.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.2 +++ b/test/com/sun/javadoc/testRepeatedAnnotations/TestRepeatedAnnotations.java	Sat Jan 05 00:55:53 2013 -0800
     4.3 @@ -0,0 +1,187 @@
     4.4 +/*
     4.5 + * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
     4.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4.7 + *
     4.8 + * This code is free software; you can redistribute it and/or modify it
     4.9 + * under the terms of the GNU General Public License version 2 only, as
    4.10 + * published by the Free Software Foundation.
    4.11 + *
    4.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
    4.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    4.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    4.15 + * version 2 for more details (a copy is included in the LICENSE file that
    4.16 + * accompanied this code).
    4.17 + *
    4.18 + * You should have received a copy of the GNU General Public License version
    4.19 + * 2 along with this work; if not, write to the Free Software Foundation,
    4.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    4.21 + *
    4.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
    4.23 + * or visit www.oracle.com if you need additional information or have any
    4.24 + * questions.
    4.25 + */
    4.26 +
    4.27 +/*
    4.28 + * @test
    4.29 + * @bug      8005092
    4.30 + * @summary  Test repeated annotations output.
    4.31 + * @author   bpatel
    4.32 + * @library  ../lib/
    4.33 + * @build    JavadocTester TestRepeatedAnnotations
    4.34 + * @run main TestRepeatedAnnotations
    4.35 + */
    4.36 +
    4.37 +public class TestRepeatedAnnotations extends JavadocTester {
    4.38 +
    4.39 +    //Test information.
    4.40 +    private static final String BUG_ID = "8005092";
    4.41 +
    4.42 +    //Javadoc arguments.
    4.43 +    private static final String[] ARGS = new String[] {
    4.44 +        "-d", BUG_ID, "-sourcepath", SRC_DIR, "pkg", "pkg1"
    4.45 +    };
    4.46 +
    4.47 +    //Input for string search tests.
    4.48 +    private static final String[][] TEST = {
    4.49 +        {BUG_ID + FS + "pkg" + FS + "C.html",
    4.50 +            "<a href=\"../pkg/ContaineeSynthDoc.html\" " +
    4.51 +            "title=\"annotation in pkg\">@ContaineeSynthDoc</a> " +
    4.52 +            "<a href=\"../pkg/ContaineeSynthDoc.html\" " +
    4.53 +            "title=\"annotation in pkg\">@ContaineeSynthDoc</a>"},
    4.54 +        {BUG_ID + FS + "pkg" + FS + "C.html",
    4.55 +            "<a href=\"../pkg/ContaineeRegDoc.html\" " +
    4.56 +            "title=\"annotation in pkg\">@ContaineeRegDoc</a> " +
    4.57 +            "<a href=\"../pkg/ContaineeRegDoc.html\" " +
    4.58 +            "title=\"annotation in pkg\">@ContaineeRegDoc</a>"},
    4.59 +        {BUG_ID + FS + "pkg" + FS + "C.html",
    4.60 +            "<a href=\"../pkg/RegContainerDoc.html\" " +
    4.61 +            "title=\"annotation in pkg\">@RegContainerDoc</a>" +
    4.62 +            "(<a href=\"../pkg/RegContainerDoc.html#value()\">value</a>={" +
    4.63 +            "<a href=\"../pkg/RegContaineeNotDoc.html\" " +
    4.64 +            "title=\"annotation in pkg\">@RegContaineeNotDoc</a>," +
    4.65 +            "<a href=\"../pkg/RegContaineeNotDoc.html\" " +
    4.66 +            "title=\"annotation in pkg\">@RegContaineeNotDoc</a>})"},
    4.67 +        {BUG_ID + FS + "pkg" + FS + "C.html",
    4.68 +            "<a href=\"../pkg/ContaineeSynthDoc.html\" " +
    4.69 +            "title=\"annotation in pkg\">@ContaineeSynthDoc</a> " +
    4.70 +            "<a href=\"../pkg/ContaineeSynthDoc.html\" " +
    4.71 +            "title=\"annotation in pkg\">@ContaineeSynthDoc</a> " +
    4.72 +            "<a href=\"../pkg/ContaineeSynthDoc.html\" " +
    4.73 +            "title=\"annotation in pkg\">@ContaineeSynthDoc</a>"},
    4.74 +        {BUG_ID + FS + "pkg" + FS + "C.html",
    4.75 +            "<a href=\"../pkg/ContainerSynthDoc.html\" " +
    4.76 +            "title=\"annotation in pkg\">@ContainerSynthDoc</a>(" +
    4.77 +            "<a href=\"../pkg/ContainerSynthDoc.html#value()\">value</a>=" +
    4.78 +            "<a href=\"../pkg/ContaineeSynthDoc.html\" " +
    4.79 +            "title=\"annotation in pkg\">@ContaineeSynthDoc</a>)"},
    4.80 +        {BUG_ID + FS + "pkg" + FS + "C.html",
    4.81 +            "<a href=\"../pkg/ContaineeSynthDoc.html\" " +
    4.82 +            "title=\"annotation in pkg\">@ContaineeSynthDoc</a> " +
    4.83 +            "<a href=\"../pkg/ContaineeSynthDoc.html\" " +
    4.84 +            "title=\"annotation in pkg\">@ContaineeSynthDoc</a>"},
    4.85 +
    4.86 +        {BUG_ID + FS + "pkg" + FS + "D.html",
    4.87 +            "<a href=\"../pkg/RegDoc.html\" title=\"annotation in pkg\">@RegDoc</a>" +
    4.88 +            "(<a href=\"../pkg/RegDoc.html#x()\">x</a>=1)"},
    4.89 +        {BUG_ID + FS + "pkg" + FS + "D.html",
    4.90 +            "<a href=\"../pkg/RegArryDoc.html\" title=\"annotation in pkg\">@RegArryDoc</a>" +
    4.91 +            "(<a href=\"../pkg/RegArryDoc.html#y()\">y</a>=1)"},
    4.92 +        {BUG_ID + FS + "pkg" + FS + "D.html",
    4.93 +            "<a href=\"../pkg/RegArryDoc.html\" title=\"annotation in pkg\">@RegArryDoc</a>" +
    4.94 +            "(<a href=\"../pkg/RegArryDoc.html#y()\">y</a>={1,2})"},
    4.95 +        {BUG_ID + FS + "pkg" + FS + "D.html",
    4.96 +            "<a href=\"../pkg/NonSynthDocContainer.html\" " +
    4.97 +            "title=\"annotation in pkg\">@NonSynthDocContainer</a>" +
    4.98 +            "(<a href=\"../pkg/NonSynthDocContainer.html#value()\">value</a>=" +
    4.99 +            "<a href=\"../pkg/RegArryDoc.html\" title=\"annotation in pkg\">@RegArryDoc</a>)"},
   4.100 +
   4.101 +        {BUG_ID + FS + "pkg1" + FS + "C.html",
   4.102 +            "<a href=\"../pkg1/RegContainerValDoc.html\" " +
   4.103 +            "title=\"annotation in pkg1\">@RegContainerValDoc</a>" +
   4.104 +            "(<a href=\"../pkg1/RegContainerValDoc.html#value()\">value</a>={" +
   4.105 +            "<a href=\"../pkg1/RegContaineeNotDoc.html\" " +
   4.106 +            "title=\"annotation in pkg1\">@RegContaineeNotDoc</a>," +
   4.107 +            "<a href=\"../pkg1/RegContaineeNotDoc.html\" " +
   4.108 +            "title=\"annotation in pkg1\">@RegContaineeNotDoc</a>}," +
   4.109 +            "<a href=\"../pkg1/RegContainerValDoc.html#y()\">y</a>=3)"},
   4.110 +        {BUG_ID + FS + "pkg1" + FS + "C.html",
   4.111 +            "<a href=\"../pkg1/ContainerValDoc.html\" " +
   4.112 +            "title=\"annotation in pkg1\">@ContainerValDoc</a>" +
   4.113 +            "(<a href=\"../pkg1/ContainerValDoc.html#value()\">value</a>={" +
   4.114 +            "<a href=\"../pkg1/ContaineeNotDoc.html\" " +
   4.115 +            "title=\"annotation in pkg1\">@ContaineeNotDoc</a>," +
   4.116 +            "<a href=\"../pkg1/ContaineeNotDoc.html\" " +
   4.117 +            "title=\"annotation in pkg1\">@ContaineeNotDoc</a>}," +
   4.118 +            "<a href=\"../pkg1/ContainerValDoc.html#x()\">x</a>=1)"}
   4.119 +    };
   4.120 +
   4.121 +    private static final String[][] NEGATED_TEST = {
   4.122 +        {BUG_ID + FS + "pkg" + FS + "C.html",
   4.123 +            "<a href=\"../pkg/RegContaineeDoc.html\" " +
   4.124 +            "title=\"annotation in pkg\">@RegContaineeDoc</a> " +
   4.125 +            "<a href=\"../pkg/RegContaineeDoc.html\" " +
   4.126 +            "title=\"annotation in pkg\">@RegContaineeDoc</a>"},
   4.127 +        {BUG_ID + FS + "pkg" + FS + "C.html",
   4.128 +            "<a href=\"../pkg/RegContainerNotDoc.html\" " +
   4.129 +            "title=\"annotation in pkg\">@RegContainerNotDoc</a>" +
   4.130 +            "(<a href=\"../pkg/RegContainerNotDoc.html#value()\">value</a>={" +
   4.131 +            "<a href=\"../pkg/RegContaineeNotDoc.html\" " +
   4.132 +            "title=\"annotation in pkg\">@RegContaineeNotDoc</a>," +
   4.133 +            "<a href=\"../pkg/RegContaineeNotDoc.html\" " +
   4.134 +            "title=\"annotation in pkg\">@RegContaineeNotDoc</a>})"},
   4.135 +
   4.136 +        {BUG_ID + FS + "pkg1" + FS + "C.html",
   4.137 +            "<a href=\"../pkg1/ContaineeSynthDoc.html\" " +
   4.138 +            "title=\"annotation in pkg1\">@ContaineeSynthDoc</a> " +
   4.139 +            "<a href=\"../pkg1/ContaineeSynthDoc.html\" " +
   4.140 +            "title=\"annotation in pkg1\">@ContaineeSynthDoc</a>"},
   4.141 +        {BUG_ID + FS + "pkg1" + FS + "C.html",
   4.142 +            "<a href=\"../pkg1/RegContainerValNotDoc.html\" " +
   4.143 +            "title=\"annotation in pkg1\">@RegContainerValNotDoc</a>" +
   4.144 +            "(<a href=\"../pkg1/RegContainerValNotDoc.html#value()\">value</a>={" +
   4.145 +            "<a href=\"../pkg1/RegContaineeDoc.html\" " +
   4.146 +            "title=\"annotation in pkg1\">@RegContaineeDoc</a>," +
   4.147 +            "<a href=\"../pkg1/RegContaineeDoc.html\" " +
   4.148 +            "title=\"annotation in pkg1\">@RegContaineeDoc</a>}," +
   4.149 +            "<a href=\"../pkg1/RegContainerValNotDoc.html#y()\">y</a>=4)"},
   4.150 +        {BUG_ID + FS + "pkg1" + FS + "C.html",
   4.151 +            "<a href=\"../pkg1/ContainerValNotDoc.html\" " +
   4.152 +            "title=\"annotation in pkg1\">@ContainerValNotDoc</a>" +
   4.153 +            "(<a href=\"../pkg1/ContainerValNotDoc.html#value()\">value</a>={" +
   4.154 +            "<a href=\"../pkg1/ContaineeNotDoc.html\" " +
   4.155 +            "title=\"annotation in pkg1\">@ContaineeNotDoc</a>," +
   4.156 +            "<a href=\"../pkg1/ContaineeNotDoc.html\" " +
   4.157 +            "title=\"annotation in pkg1\">@ContaineeNotDoc</a>}," +
   4.158 +            "<a href=\"../pkg1/ContainerValNotDoc.html#x()\">x</a>=2)"},
   4.159 +        {BUG_ID + FS + "pkg1" + FS + "C.html",
   4.160 +            "<a href=\"../pkg1/ContainerSynthNotDoc.html\" " +
   4.161 +            "title=\"annotation in pkg1\">@ContainerSynthNotDoc</a>(" +
   4.162 +            "<a href=\"../pkg1/ContainerSynthNotDoc.html#value()\">value</a>=" +
   4.163 +            "<a href=\"../pkg1/ContaineeSynthDoc.html\" " +
   4.164 +            "title=\"annotation in pkg1\">@ContaineeSynthDoc</a>)"}
   4.165 +    };
   4.166 +
   4.167 +    /**
   4.168 +     * The entry point of the test.
   4.169 +     * @param args the array of command line arguments.
   4.170 +     */
   4.171 +    public static void main(String[] args) {
   4.172 +        TestRepeatedAnnotations tester = new TestRepeatedAnnotations();
   4.173 +        run(tester, ARGS, TEST, NEGATED_TEST);
   4.174 +        tester.printSummary();
   4.175 +    }
   4.176 +
   4.177 +    /**
   4.178 +     * {@inheritDoc}
   4.179 +     */
   4.180 +    public String getBugId() {
   4.181 +        return BUG_ID;
   4.182 +    }
   4.183 +
   4.184 +    /**
   4.185 +     * {@inheritDoc}
   4.186 +     */
   4.187 +    public String getBugName() {
   4.188 +        return getClass().getName();
   4.189 +    }
   4.190 +}
     5.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.2 +++ b/test/com/sun/javadoc/testRepeatedAnnotations/pkg/C.java	Sat Jan 05 00:55:53 2013 -0800
     5.3 @@ -0,0 +1,39 @@
     5.4 +/*
     5.5 + * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
     5.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     5.7 + *
     5.8 + * This code is free software; you can redistribute it and/or modify it
     5.9 + * under the terms of the GNU General Public License version 2 only, as
    5.10 + * published by the Free Software Foundation.
    5.11 + *
    5.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
    5.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    5.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    5.15 + * version 2 for more details (a copy is included in the LICENSE file that
    5.16 + * accompanied this code).
    5.17 + *
    5.18 + * You should have received a copy of the GNU General Public License version
    5.19 + * 2 along with this work; if not, write to the Free Software Foundation,
    5.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    5.21 + *
    5.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
    5.23 + * or visit www.oracle.com if you need additional information or have any
    5.24 + * questions.
    5.25 + */
    5.26 +
    5.27 +package pkg;
    5.28 +
    5.29 +@ContainerSynthDoc(value={@ContaineeSynthDoc,@ContaineeSynthDoc})
    5.30 +@ContainerRegDoc(value={@ContaineeRegDoc,@ContaineeRegDoc})
    5.31 +@RegContainerDoc(value={@RegContaineeNotDoc,@RegContaineeNotDoc})
    5.32 +@ContainerRegNotDoc(value={@RegContaineeDoc,@RegContaineeDoc})
    5.33 +@RegContainerNotDoc(value={@RegContaineeNotDoc,@RegContaineeNotDoc})
    5.34 +@ContaineeSynthDoc @ContaineeSynthDoc @ContaineeSynthDoc
    5.35 +public class C {
    5.36 +
    5.37 +    @ContainerSynthDoc(value={@ContaineeSynthDoc})
    5.38 +    public void test1() {}
    5.39 +
    5.40 +    @ContaineeSynthDoc @ContaineeSynthDoc
    5.41 +    public void test2() {}
    5.42 +}
     6.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     6.2 +++ b/test/com/sun/javadoc/testRepeatedAnnotations/pkg/ContaineeRegDoc.java	Sat Jan 05 00:55:53 2013 -0800
     6.3 @@ -0,0 +1,36 @@
     6.4 +/*
     6.5 + * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
     6.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     6.7 + *
     6.8 + * This code is free software; you can redistribute it and/or modify it
     6.9 + * under the terms of the GNU General Public License version 2 only, as
    6.10 + * published by the Free Software Foundation.
    6.11 + *
    6.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
    6.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    6.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    6.15 + * version 2 for more details (a copy is included in the LICENSE file that
    6.16 + * accompanied this code).
    6.17 + *
    6.18 + * You should have received a copy of the GNU General Public License version
    6.19 + * 2 along with this work; if not, write to the Free Software Foundation,
    6.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    6.21 + *
    6.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
    6.23 + * or visit www.oracle.com if you need additional information or have any
    6.24 + * questions.
    6.25 + */
    6.26 +
    6.27 +package pkg;
    6.28 +
    6.29 +import java.lang.annotation.*;
    6.30 +
    6.31 +/**
    6.32 + * This annotation is a documented annotation contained by ContainerRegDoc.
    6.33 + * It will be used to annotate Class C using a non-synthesized form.
    6.34 + *
    6.35 + * @author Bhavesh Patel
    6.36 + */
    6.37 +@Documented
    6.38 +public @interface ContaineeRegDoc {
    6.39 +}
     7.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     7.2 +++ b/test/com/sun/javadoc/testRepeatedAnnotations/pkg/ContaineeSynthDoc.java	Sat Jan 05 00:55:53 2013 -0800
     7.3 @@ -0,0 +1,37 @@
     7.4 +/*
     7.5 + * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
     7.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     7.7 + *
     7.8 + * This code is free software; you can redistribute it and/or modify it
     7.9 + * under the terms of the GNU General Public License version 2 only, as
    7.10 + * published by the Free Software Foundation.
    7.11 + *
    7.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
    7.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    7.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    7.15 + * version 2 for more details (a copy is included in the LICENSE file that
    7.16 + * accompanied this code).
    7.17 + *
    7.18 + * You should have received a copy of the GNU General Public License version
    7.19 + * 2 along with this work; if not, write to the Free Software Foundation,
    7.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    7.21 + *
    7.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
    7.23 + * or visit www.oracle.com if you need additional information or have any
    7.24 + * questions.
    7.25 + */
    7.26 +
    7.27 +package pkg;
    7.28 +
    7.29 +import java.lang.annotation.*;
    7.30 +
    7.31 +/**
    7.32 + * This annotation is a documented synthesized annotation contained by ContainerSynthDoc.
    7.33 + * It will be used to annotate Class C and a method in the class using a synthesized form.
    7.34 + *
    7.35 + * @author Bhavesh Patel
    7.36 + */
    7.37 +@Documented
    7.38 +@ContainedBy(ContainerSynthDoc.class)
    7.39 +public @interface ContaineeSynthDoc {
    7.40 +}
     8.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     8.2 +++ b/test/com/sun/javadoc/testRepeatedAnnotations/pkg/ContainerRegDoc.java	Sat Jan 05 00:55:53 2013 -0800
     8.3 @@ -0,0 +1,38 @@
     8.4 +/*
     8.5 + * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
     8.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     8.7 + *
     8.8 + * This code is free software; you can redistribute it and/or modify it
     8.9 + * under the terms of the GNU General Public License version 2 only, as
    8.10 + * published by the Free Software Foundation.
    8.11 + *
    8.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
    8.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    8.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    8.15 + * version 2 for more details (a copy is included in the LICENSE file that
    8.16 + * accompanied this code).
    8.17 + *
    8.18 + * You should have received a copy of the GNU General Public License version
    8.19 + * 2 along with this work; if not, write to the Free Software Foundation,
    8.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    8.21 + *
    8.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
    8.23 + * or visit www.oracle.com if you need additional information or have any
    8.24 + * questions.
    8.25 + */
    8.26 +
    8.27 +package pkg;
    8.28 +
    8.29 +import java.lang.annotation.*;
    8.30 +
    8.31 +/**
    8.32 + * This annotation is a documented annotation container for ContaineeRegDoc.
    8.33 + * It will be used to annotate Class C using a non-synthesized form.
    8.34 + *
    8.35 + * @author Bhavesh Patel
    8.36 + */
    8.37 +@Documented
    8.38 +public @interface ContainerRegDoc {
    8.39 +
    8.40 +    ContaineeRegDoc[] value();
    8.41 +}
     9.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     9.2 +++ b/test/com/sun/javadoc/testRepeatedAnnotations/pkg/ContainerRegNotDoc.java	Sat Jan 05 00:55:53 2013 -0800
     9.3 @@ -0,0 +1,37 @@
     9.4 +/*
     9.5 + * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
     9.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     9.7 + *
     9.8 + * This code is free software; you can redistribute it and/or modify it
     9.9 + * under the terms of the GNU General Public License version 2 only, as
    9.10 + * published by the Free Software Foundation.
    9.11 + *
    9.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
    9.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    9.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    9.15 + * version 2 for more details (a copy is included in the LICENSE file that
    9.16 + * accompanied this code).
    9.17 + *
    9.18 + * You should have received a copy of the GNU General Public License version
    9.19 + * 2 along with this work; if not, write to the Free Software Foundation,
    9.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    9.21 + *
    9.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
    9.23 + * or visit www.oracle.com if you need additional information or have any
    9.24 + * questions.
    9.25 + */
    9.26 +
    9.27 +package pkg;
    9.28 +
    9.29 +import java.lang.annotation.*;
    9.30 +
    9.31 +/**
    9.32 + * This annotation is a non-documented annotation container for RegContaineeDoc.
    9.33 + * It will be used to annotate Class C using a non-synthesized form.
    9.34 + *
    9.35 + * @author Bhavesh Patel
    9.36 + */
    9.37 +public @interface ContainerRegNotDoc {
    9.38 +
    9.39 +    RegContaineeDoc[] value();
    9.40 +}
    10.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    10.2 +++ b/test/com/sun/javadoc/testRepeatedAnnotations/pkg/ContainerSynthDoc.java	Sat Jan 05 00:55:53 2013 -0800
    10.3 @@ -0,0 +1,39 @@
    10.4 +/*
    10.5 + * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
    10.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    10.7 + *
    10.8 + * This code is free software; you can redistribute it and/or modify it
    10.9 + * under the terms of the GNU General Public License version 2 only, as
   10.10 + * published by the Free Software Foundation.
   10.11 + *
   10.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
   10.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   10.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   10.15 + * version 2 for more details (a copy is included in the LICENSE file that
   10.16 + * accompanied this code).
   10.17 + *
   10.18 + * You should have received a copy of the GNU General Public License version
   10.19 + * 2 along with this work; if not, write to the Free Software Foundation,
   10.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   10.21 + *
   10.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
   10.23 + * or visit www.oracle.com if you need additional information or have any
   10.24 + * questions.
   10.25 + */
   10.26 +
   10.27 +package pkg;
   10.28 +
   10.29 +import java.lang.annotation.*;
   10.30 +
   10.31 +/**
   10.32 + * This annotation is a documented synthesized annotation container for ContaineeSynthDoc.
   10.33 + * It will be used to annotate Class C and a method in the class using a synthesized form.
   10.34 + *
   10.35 + * @author Bhavesh Patel
   10.36 + */
   10.37 +@Documented
   10.38 +@ContainerFor(ContaineeSynthDoc.class)
   10.39 +public @interface ContainerSynthDoc {
   10.40 +
   10.41 +    ContaineeSynthDoc[] value();
   10.42 +}
    11.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    11.2 +++ b/test/com/sun/javadoc/testRepeatedAnnotations/pkg/D.java	Sat Jan 05 00:55:53 2013 -0800
    11.3 @@ -0,0 +1,37 @@
    11.4 +/*
    11.5 + * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
    11.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    11.7 + *
    11.8 + * This code is free software; you can redistribute it and/or modify it
    11.9 + * under the terms of the GNU General Public License version 2 only, as
   11.10 + * published by the Free Software Foundation.
   11.11 + *
   11.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
   11.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   11.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   11.15 + * version 2 for more details (a copy is included in the LICENSE file that
   11.16 + * accompanied this code).
   11.17 + *
   11.18 + * You should have received a copy of the GNU General Public License version
   11.19 + * 2 along with this work; if not, write to the Free Software Foundation,
   11.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   11.21 + *
   11.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
   11.23 + * or visit www.oracle.com if you need additional information or have any
   11.24 + * questions.
   11.25 + */
   11.26 +
   11.27 +package pkg;
   11.28 +
   11.29 +@RegDoc(x=1)
   11.30 +public class D {
   11.31 +
   11.32 +    @RegArryDoc(y={1})
   11.33 +    public void test1() {}
   11.34 +
   11.35 +    @RegArryDoc(y={1,2})
   11.36 +    public void test2() {}
   11.37 +
   11.38 +    @NonSynthDocContainer(value={@RegArryDoc})
   11.39 +    public void test3() {}
   11.40 +}
    12.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    12.2 +++ b/test/com/sun/javadoc/testRepeatedAnnotations/pkg/NonSynthDocContainer.java	Sat Jan 05 00:55:53 2013 -0800
    12.3 @@ -0,0 +1,38 @@
    12.4 +/*
    12.5 + * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
    12.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    12.7 + *
    12.8 + * This code is free software; you can redistribute it and/or modify it
    12.9 + * under the terms of the GNU General Public License version 2 only, as
   12.10 + * published by the Free Software Foundation.
   12.11 + *
   12.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
   12.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   12.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   12.15 + * version 2 for more details (a copy is included in the LICENSE file that
   12.16 + * accompanied this code).
   12.17 + *
   12.18 + * You should have received a copy of the GNU General Public License version
   12.19 + * 2 along with this work; if not, write to the Free Software Foundation,
   12.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   12.21 + *
   12.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
   12.23 + * or visit www.oracle.com if you need additional information or have any
   12.24 + * questions.
   12.25 + */
   12.26 +
   12.27 +package pkg;
   12.28 +
   12.29 +import java.lang.annotation.*;
   12.30 +
   12.31 +/**
   12.32 + * This annotation is a documented annotation.
   12.33 + * It will be used to annotate methods in class D.
   12.34 + *
   12.35 + * @author Bhavesh Patel
   12.36 + */
   12.37 +@Documented
   12.38 +public @interface NonSynthDocContainer {
   12.39 +
   12.40 +    RegArryDoc[] value();
   12.41 +}
    13.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    13.2 +++ b/test/com/sun/javadoc/testRepeatedAnnotations/pkg/RegArryDoc.java	Sat Jan 05 00:55:53 2013 -0800
    13.3 @@ -0,0 +1,38 @@
    13.4 +/*
    13.5 + * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
    13.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    13.7 + *
    13.8 + * This code is free software; you can redistribute it and/or modify it
    13.9 + * under the terms of the GNU General Public License version 2 only, as
   13.10 + * published by the Free Software Foundation.
   13.11 + *
   13.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
   13.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   13.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   13.15 + * version 2 for more details (a copy is included in the LICENSE file that
   13.16 + * accompanied this code).
   13.17 + *
   13.18 + * You should have received a copy of the GNU General Public License version
   13.19 + * 2 along with this work; if not, write to the Free Software Foundation,
   13.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   13.21 + *
   13.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
   13.23 + * or visit www.oracle.com if you need additional information or have any
   13.24 + * questions.
   13.25 + */
   13.26 +
   13.27 +package pkg;
   13.28 +
   13.29 +import java.lang.annotation.*;
   13.30 +
   13.31 +/**
   13.32 + * This annotation is a documented annotation.
   13.33 + * It will be used to annotate methods in Class D.
   13.34 + *
   13.35 + * @author Bhavesh Patel
   13.36 + */
   13.37 +@Documented
   13.38 +public @interface RegArryDoc {
   13.39 +
   13.40 +    int[] y();
   13.41 +}
    14.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    14.2 +++ b/test/com/sun/javadoc/testRepeatedAnnotations/pkg/RegContaineeDoc.java	Sat Jan 05 00:55:53 2013 -0800
    14.3 @@ -0,0 +1,36 @@
    14.4 +/*
    14.5 + * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
    14.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    14.7 + *
    14.8 + * This code is free software; you can redistribute it and/or modify it
    14.9 + * under the terms of the GNU General Public License version 2 only, as
   14.10 + * published by the Free Software Foundation.
   14.11 + *
   14.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
   14.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   14.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   14.15 + * version 2 for more details (a copy is included in the LICENSE file that
   14.16 + * accompanied this code).
   14.17 + *
   14.18 + * You should have received a copy of the GNU General Public License version
   14.19 + * 2 along with this work; if not, write to the Free Software Foundation,
   14.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   14.21 + *
   14.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
   14.23 + * or visit www.oracle.com if you need additional information or have any
   14.24 + * questions.
   14.25 + */
   14.26 +
   14.27 +package pkg;
   14.28 +
   14.29 +import java.lang.annotation.*;
   14.30 +
   14.31 +/**
   14.32 + * This annotation is a documented annotation contained by ContainerRegNotDoc.
   14.33 + * It will be used to annotate Class C using a non-synthesized form.
   14.34 + *
   14.35 + * @author Bhavesh Patel
   14.36 + */
   14.37 +@Documented
   14.38 +public @interface RegContaineeDoc {
   14.39 +}
    15.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    15.2 +++ b/test/com/sun/javadoc/testRepeatedAnnotations/pkg/RegContaineeNotDoc.java	Sat Jan 05 00:55:53 2013 -0800
    15.3 @@ -0,0 +1,36 @@
    15.4 +/*
    15.5 + * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
    15.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    15.7 + *
    15.8 + * This code is free software; you can redistribute it and/or modify it
    15.9 + * under the terms of the GNU General Public License version 2 only, as
   15.10 + * published by the Free Software Foundation.
   15.11 + *
   15.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
   15.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   15.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   15.15 + * version 2 for more details (a copy is included in the LICENSE file that
   15.16 + * accompanied this code).
   15.17 + *
   15.18 + * You should have received a copy of the GNU General Public License version
   15.19 + * 2 along with this work; if not, write to the Free Software Foundation,
   15.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   15.21 + *
   15.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
   15.23 + * or visit www.oracle.com if you need additional information or have any
   15.24 + * questions.
   15.25 + */
   15.26 +
   15.27 +package pkg;
   15.28 +
   15.29 +import java.lang.annotation.*;
   15.30 +
   15.31 +/**
   15.32 + * This annotation is a non-documented annotation contained by RegContainerNotDoc
   15.33 + * and RegContainerDoc.
   15.34 + * It will be used to annotate Class C using a non-synthesized form.
   15.35 + *
   15.36 + * @author Bhavesh Patel
   15.37 + */
   15.38 +public @interface RegContaineeNotDoc {
   15.39 +}
    16.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    16.2 +++ b/test/com/sun/javadoc/testRepeatedAnnotations/pkg/RegContainerDoc.java	Sat Jan 05 00:55:53 2013 -0800
    16.3 @@ -0,0 +1,38 @@
    16.4 +/*
    16.5 + * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
    16.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    16.7 + *
    16.8 + * This code is free software; you can redistribute it and/or modify it
    16.9 + * under the terms of the GNU General Public License version 2 only, as
   16.10 + * published by the Free Software Foundation.
   16.11 + *
   16.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
   16.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   16.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   16.15 + * version 2 for more details (a copy is included in the LICENSE file that
   16.16 + * accompanied this code).
   16.17 + *
   16.18 + * You should have received a copy of the GNU General Public License version
   16.19 + * 2 along with this work; if not, write to the Free Software Foundation,
   16.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   16.21 + *
   16.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
   16.23 + * or visit www.oracle.com if you need additional information or have any
   16.24 + * questions.
   16.25 + */
   16.26 +
   16.27 +package pkg;
   16.28 +
   16.29 +import java.lang.annotation.*;
   16.30 +
   16.31 +/**
   16.32 + * This annotation is a documented annotation container for RegContainerDoc.
   16.33 + * It will be used to annotate Class C using a non-synthesized form.
   16.34 + *
   16.35 + * @author Bhavesh Patel
   16.36 + */
   16.37 +@Documented
   16.38 +public @interface RegContainerDoc {
   16.39 +
   16.40 +    RegContaineeNotDoc[] value();
   16.41 +}
    17.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    17.2 +++ b/test/com/sun/javadoc/testRepeatedAnnotations/pkg/RegContainerNotDoc.java	Sat Jan 05 00:55:53 2013 -0800
    17.3 @@ -0,0 +1,37 @@
    17.4 +/*
    17.5 + * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
    17.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    17.7 + *
    17.8 + * This code is free software; you can redistribute it and/or modify it
    17.9 + * under the terms of the GNU General Public License version 2 only, as
   17.10 + * published by the Free Software Foundation.
   17.11 + *
   17.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
   17.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   17.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   17.15 + * version 2 for more details (a copy is included in the LICENSE file that
   17.16 + * accompanied this code).
   17.17 + *
   17.18 + * You should have received a copy of the GNU General Public License version
   17.19 + * 2 along with this work; if not, write to the Free Software Foundation,
   17.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   17.21 + *
   17.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
   17.23 + * or visit www.oracle.com if you need additional information or have any
   17.24 + * questions.
   17.25 + */
   17.26 +
   17.27 +package pkg;
   17.28 +
   17.29 +import java.lang.annotation.*;
   17.30 +
   17.31 +/**
   17.32 + * This annotation is a non-documented annotation container for RegContaineeNotDoc.
   17.33 + * It will be used to annotate Class C using a non-synthesized form.
   17.34 + *
   17.35 + * @author Bhavesh Patel
   17.36 + */
   17.37 +public @interface RegContainerNotDoc {
   17.38 +
   17.39 +    RegContaineeNotDoc[] value();
   17.40 +}
    18.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    18.2 +++ b/test/com/sun/javadoc/testRepeatedAnnotations/pkg/RegDoc.java	Sat Jan 05 00:55:53 2013 -0800
    18.3 @@ -0,0 +1,38 @@
    18.4 +/*
    18.5 + * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
    18.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    18.7 + *
    18.8 + * This code is free software; you can redistribute it and/or modify it
    18.9 + * under the terms of the GNU General Public License version 2 only, as
   18.10 + * published by the Free Software Foundation.
   18.11 + *
   18.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
   18.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   18.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   18.15 + * version 2 for more details (a copy is included in the LICENSE file that
   18.16 + * accompanied this code).
   18.17 + *
   18.18 + * You should have received a copy of the GNU General Public License version
   18.19 + * 2 along with this work; if not, write to the Free Software Foundation,
   18.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   18.21 + *
   18.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
   18.23 + * or visit www.oracle.com if you need additional information or have any
   18.24 + * questions.
   18.25 + */
   18.26 +
   18.27 +package pkg;
   18.28 +
   18.29 +import java.lang.annotation.*;
   18.30 +
   18.31 +/**
   18.32 + * This annotation is a documented annotation.
   18.33 + * It will be used to annotate Class D.
   18.34 + *
   18.35 + * @author Bhavesh Patel
   18.36 + */
   18.37 +@Documented
   18.38 +public @interface RegDoc {
   18.39 +
   18.40 +    int x();
   18.41 +}
    19.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    19.2 +++ b/test/com/sun/javadoc/testRepeatedAnnotations/pkg1/C.java	Sat Jan 05 00:55:53 2013 -0800
    19.3 @@ -0,0 +1,38 @@
    19.4 +/*
    19.5 + * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
    19.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    19.7 + *
    19.8 + * This code is free software; you can redistribute it and/or modify it
    19.9 + * under the terms of the GNU General Public License version 2 only, as
   19.10 + * published by the Free Software Foundation.
   19.11 + *
   19.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
   19.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   19.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   19.15 + * version 2 for more details (a copy is included in the LICENSE file that
   19.16 + * accompanied this code).
   19.17 + *
   19.18 + * You should have received a copy of the GNU General Public License version
   19.19 + * 2 along with this work; if not, write to the Free Software Foundation,
   19.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   19.21 + *
   19.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
   19.23 + * or visit www.oracle.com if you need additional information or have any
   19.24 + * questions.
   19.25 + */
   19.26 +
   19.27 +package pkg1;
   19.28 +
   19.29 +@ContainerSynthNotDoc(value={@ContaineeSynthDoc,@ContaineeSynthDoc})
   19.30 +@RegContainerValDoc(value={@RegContaineeNotDoc,@RegContaineeNotDoc},y=3)
   19.31 +@ContainerValDoc(value={@ContaineeNotDoc,@ContaineeNotDoc},x=1)
   19.32 +@RegContainerValNotDoc(value={@RegContaineeDoc,@RegContaineeDoc},y=4)
   19.33 +@ContainerValNotDoc(value={@ContaineeNotDoc,@ContaineeNotDoc},x=2)
   19.34 +public class C {
   19.35 +
   19.36 +    @ContainerSynthNotDoc(value={@ContaineeSynthDoc})
   19.37 +    public void test1() {}
   19.38 +
   19.39 +    @ContaineeSynthDoc @ContaineeSynthDoc
   19.40 +    public void test2() {}
   19.41 +}
    20.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    20.2 +++ b/test/com/sun/javadoc/testRepeatedAnnotations/pkg1/ContaineeNotDoc.java	Sat Jan 05 00:55:53 2013 -0800
    20.3 @@ -0,0 +1,36 @@
    20.4 +/*
    20.5 + * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
    20.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    20.7 + *
    20.8 + * This code is free software; you can redistribute it and/or modify it
    20.9 + * under the terms of the GNU General Public License version 2 only, as
   20.10 + * published by the Free Software Foundation.
   20.11 + *
   20.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
   20.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   20.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   20.15 + * version 2 for more details (a copy is included in the LICENSE file that
   20.16 + * accompanied this code).
   20.17 + *
   20.18 + * You should have received a copy of the GNU General Public License version
   20.19 + * 2 along with this work; if not, write to the Free Software Foundation,
   20.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   20.21 + *
   20.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
   20.23 + * or visit www.oracle.com if you need additional information or have any
   20.24 + * questions.
   20.25 + */
   20.26 +
   20.27 +package pkg1;
   20.28 +
   20.29 +import java.lang.annotation.*;
   20.30 +
   20.31 +/**
   20.32 + * This annotation is a non-documented annotation contained by ContainerValNotDoc
   20.33 + * and ContainerValDoc.
   20.34 + * It will be used to annotate Class C using a non-synthesized form.
   20.35 + *
   20.36 + * @author Bhavesh Patel
   20.37 + */
   20.38 +public @interface ContaineeNotDoc {
   20.39 +}
    21.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    21.2 +++ b/test/com/sun/javadoc/testRepeatedAnnotations/pkg1/ContaineeSynthDoc.java	Sat Jan 05 00:55:53 2013 -0800
    21.3 @@ -0,0 +1,37 @@
    21.4 +/*
    21.5 + * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
    21.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    21.7 + *
    21.8 + * This code is free software; you can redistribute it and/or modify it
    21.9 + * under the terms of the GNU General Public License version 2 only, as
   21.10 + * published by the Free Software Foundation.
   21.11 + *
   21.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
   21.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   21.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   21.15 + * version 2 for more details (a copy is included in the LICENSE file that
   21.16 + * accompanied this code).
   21.17 + *
   21.18 + * You should have received a copy of the GNU General Public License version
   21.19 + * 2 along with this work; if not, write to the Free Software Foundation,
   21.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   21.21 + *
   21.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
   21.23 + * or visit www.oracle.com if you need additional information or have any
   21.24 + * questions.
   21.25 + */
   21.26 +
   21.27 +package pkg1;
   21.28 +
   21.29 +import java.lang.annotation.*;
   21.30 +
   21.31 +/**
   21.32 + * This annotation is a documented synthesized annotation contained by ContainerSynthNotDoc.
   21.33 + * It will be used to annotate Class C and methods in the class using a synthesized form.
   21.34 + *
   21.35 + * @author Bhavesh Patel
   21.36 + */
   21.37 +@Documented
   21.38 +@ContainedBy(ContainerSynthNotDoc.class)
   21.39 +public @interface ContaineeSynthDoc {
   21.40 +}
    22.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    22.2 +++ b/test/com/sun/javadoc/testRepeatedAnnotations/pkg1/ContainerSynthNotDoc.java	Sat Jan 05 00:55:53 2013 -0800
    22.3 @@ -0,0 +1,38 @@
    22.4 +/*
    22.5 + * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
    22.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    22.7 + *
    22.8 + * This code is free software; you can redistribute it and/or modify it
    22.9 + * under the terms of the GNU General Public License version 2 only, as
   22.10 + * published by the Free Software Foundation.
   22.11 + *
   22.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
   22.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   22.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   22.15 + * version 2 for more details (a copy is included in the LICENSE file that
   22.16 + * accompanied this code).
   22.17 + *
   22.18 + * You should have received a copy of the GNU General Public License version
   22.19 + * 2 along with this work; if not, write to the Free Software Foundation,
   22.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   22.21 + *
   22.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
   22.23 + * or visit www.oracle.com if you need additional information or have any
   22.24 + * questions.
   22.25 + */
   22.26 +
   22.27 +package pkg1;
   22.28 +
   22.29 +import java.lang.annotation.*;
   22.30 +
   22.31 +/**
   22.32 + * This annotation is a non-documented synthesized annotation container for ContaineeSynthDoc.
   22.33 + * It will be used to annotate Class C and methods in the class using a synthesized form.
   22.34 + *
   22.35 + * @author Bhavesh Patel
   22.36 + */
   22.37 +@ContainerFor(ContaineeSynthDoc.class)
   22.38 +public @interface ContainerSynthNotDoc {
   22.39 +
   22.40 +    ContaineeSynthDoc[] value();
   22.41 +}
    23.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    23.2 +++ b/test/com/sun/javadoc/testRepeatedAnnotations/pkg1/ContainerValDoc.java	Sat Jan 05 00:55:53 2013 -0800
    23.3 @@ -0,0 +1,40 @@
    23.4 +/*
    23.5 + * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
    23.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    23.7 + *
    23.8 + * This code is free software; you can redistribute it and/or modify it
    23.9 + * under the terms of the GNU General Public License version 2 only, as
   23.10 + * published by the Free Software Foundation.
   23.11 + *
   23.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
   23.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   23.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   23.15 + * version 2 for more details (a copy is included in the LICENSE file that
   23.16 + * accompanied this code).
   23.17 + *
   23.18 + * You should have received a copy of the GNU General Public License version
   23.19 + * 2 along with this work; if not, write to the Free Software Foundation,
   23.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   23.21 + *
   23.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
   23.23 + * or visit www.oracle.com if you need additional information or have any
   23.24 + * questions.
   23.25 + */
   23.26 +
   23.27 +package pkg1;
   23.28 +
   23.29 +import java.lang.annotation.*;
   23.30 +
   23.31 +/**
   23.32 + * This annotation is a documented annotation container for ContaineeNotDoc.
   23.33 + * It will be used to annotate Class C using a non-synthesized form.
   23.34 + *
   23.35 + * @author Bhavesh Patel
   23.36 + */
   23.37 +@Documented
   23.38 +public @interface ContainerValDoc {
   23.39 +
   23.40 +    ContaineeNotDoc[] value();
   23.41 +
   23.42 +    int x();
   23.43 +}
    24.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    24.2 +++ b/test/com/sun/javadoc/testRepeatedAnnotations/pkg1/ContainerValNotDoc.java	Sat Jan 05 00:55:53 2013 -0800
    24.3 @@ -0,0 +1,39 @@
    24.4 +/*
    24.5 + * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
    24.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    24.7 + *
    24.8 + * This code is free software; you can redistribute it and/or modify it
    24.9 + * under the terms of the GNU General Public License version 2 only, as
   24.10 + * published by the Free Software Foundation.
   24.11 + *
   24.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
   24.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   24.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   24.15 + * version 2 for more details (a copy is included in the LICENSE file that
   24.16 + * accompanied this code).
   24.17 + *
   24.18 + * You should have received a copy of the GNU General Public License version
   24.19 + * 2 along with this work; if not, write to the Free Software Foundation,
   24.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   24.21 + *
   24.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
   24.23 + * or visit www.oracle.com if you need additional information or have any
   24.24 + * questions.
   24.25 + */
   24.26 +
   24.27 +package pkg1;
   24.28 +
   24.29 +import java.lang.annotation.*;
   24.30 +
   24.31 +/**
   24.32 + * This annotation is a non-documented annotation container for ContaineeNotDoc.
   24.33 + * It will be used to annotate Class C using a non-synthesized form.
   24.34 + *
   24.35 + * @author Bhavesh Patel
   24.36 + */
   24.37 +public @interface ContainerValNotDoc {
   24.38 +
   24.39 +    ContaineeNotDoc[] value();
   24.40 +
   24.41 +    int x();
   24.42 +}
    25.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    25.2 +++ b/test/com/sun/javadoc/testRepeatedAnnotations/pkg1/RegContaineeDoc.java	Sat Jan 05 00:55:53 2013 -0800
    25.3 @@ -0,0 +1,36 @@
    25.4 +/*
    25.5 + * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
    25.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    25.7 + *
    25.8 + * This code is free software; you can redistribute it and/or modify it
    25.9 + * under the terms of the GNU General Public License version 2 only, as
   25.10 + * published by the Free Software Foundation.
   25.11 + *
   25.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
   25.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   25.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   25.15 + * version 2 for more details (a copy is included in the LICENSE file that
   25.16 + * accompanied this code).
   25.17 + *
   25.18 + * You should have received a copy of the GNU General Public License version
   25.19 + * 2 along with this work; if not, write to the Free Software Foundation,
   25.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   25.21 + *
   25.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
   25.23 + * or visit www.oracle.com if you need additional information or have any
   25.24 + * questions.
   25.25 + */
   25.26 +
   25.27 +package pkg1;
   25.28 +
   25.29 +import java.lang.annotation.*;
   25.30 +
   25.31 +/**
   25.32 + * This annotation is a documented annotation contained by RegContainerValNotDoc.
   25.33 + * It will be used to annotate Class C using a non-synthesized form.
   25.34 + *
   25.35 + * @author Bhavesh Patel
   25.36 + */
   25.37 +@Documented
   25.38 +public @interface RegContaineeDoc {
   25.39 +}
    26.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    26.2 +++ b/test/com/sun/javadoc/testRepeatedAnnotations/pkg1/RegContaineeNotDoc.java	Sat Jan 05 00:55:53 2013 -0800
    26.3 @@ -0,0 +1,35 @@
    26.4 +/*
    26.5 + * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
    26.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    26.7 + *
    26.8 + * This code is free software; you can redistribute it and/or modify it
    26.9 + * under the terms of the GNU General Public License version 2 only, as
   26.10 + * published by the Free Software Foundation.
   26.11 + *
   26.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
   26.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   26.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   26.15 + * version 2 for more details (a copy is included in the LICENSE file that
   26.16 + * accompanied this code).
   26.17 + *
   26.18 + * You should have received a copy of the GNU General Public License version
   26.19 + * 2 along with this work; if not, write to the Free Software Foundation,
   26.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   26.21 + *
   26.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
   26.23 + * or visit www.oracle.com if you need additional information or have any
   26.24 + * questions.
   26.25 + */
   26.26 +
   26.27 +package pkg1;
   26.28 +
   26.29 +import java.lang.annotation.*;
   26.30 +
   26.31 +/**
   26.32 + * This annotation is a non-documented annotation contained by RegContainerValDoc.
   26.33 + * It will be used to annotate Class C using a non-synthesized form.
   26.34 + *
   26.35 + * @author Bhavesh Patel
   26.36 + */
   26.37 +public @interface RegContaineeNotDoc {
   26.38 +}
    27.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    27.2 +++ b/test/com/sun/javadoc/testRepeatedAnnotations/pkg1/RegContainerValDoc.java	Sat Jan 05 00:55:53 2013 -0800
    27.3 @@ -0,0 +1,40 @@
    27.4 +/*
    27.5 + * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
    27.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    27.7 + *
    27.8 + * This code is free software; you can redistribute it and/or modify it
    27.9 + * under the terms of the GNU General Public License version 2 only, as
   27.10 + * published by the Free Software Foundation.
   27.11 + *
   27.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
   27.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   27.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   27.15 + * version 2 for more details (a copy is included in the LICENSE file that
   27.16 + * accompanied this code).
   27.17 + *
   27.18 + * You should have received a copy of the GNU General Public License version
   27.19 + * 2 along with this work; if not, write to the Free Software Foundation,
   27.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   27.21 + *
   27.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
   27.23 + * or visit www.oracle.com if you need additional information or have any
   27.24 + * questions.
   27.25 + */
   27.26 +
   27.27 +package pkg1;
   27.28 +
   27.29 +import java.lang.annotation.*;
   27.30 +
   27.31 +/**
   27.32 + * This annotation is a documented annotation container for RegContaineeNotDoc.
   27.33 + * It will be used to annotate Class C using a non-synthesized form.
   27.34 + *
   27.35 + * @author Bhavesh Patel
   27.36 + */
   27.37 +@Documented
   27.38 +public @interface RegContainerValDoc {
   27.39 +
   27.40 +    RegContaineeNotDoc[] value();
   27.41 +
   27.42 +    int y();
   27.43 +}
    28.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    28.2 +++ b/test/com/sun/javadoc/testRepeatedAnnotations/pkg1/RegContainerValNotDoc.java	Sat Jan 05 00:55:53 2013 -0800
    28.3 @@ -0,0 +1,39 @@
    28.4 +/*
    28.5 + * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
    28.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    28.7 + *
    28.8 + * This code is free software; you can redistribute it and/or modify it
    28.9 + * under the terms of the GNU General Public License version 2 only, as
   28.10 + * published by the Free Software Foundation.
   28.11 + *
   28.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
   28.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   28.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   28.15 + * version 2 for more details (a copy is included in the LICENSE file that
   28.16 + * accompanied this code).
   28.17 + *
   28.18 + * You should have received a copy of the GNU General Public License version
   28.19 + * 2 along with this work; if not, write to the Free Software Foundation,
   28.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   28.21 + *
   28.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
   28.23 + * or visit www.oracle.com if you need additional information or have any
   28.24 + * questions.
   28.25 + */
   28.26 +
   28.27 +package pkg1;
   28.28 +
   28.29 +import java.lang.annotation.*;
   28.30 +
   28.31 +/**
   28.32 + * This annotation is a non-documented annotation container for RegContaineeDoc.
   28.33 + * It will be used to annotate Class C using a non-synthesized form.
   28.34 + *
   28.35 + * @author Bhavesh Patel
   28.36 + */
   28.37 +public @interface RegContainerValNotDoc {
   28.38 +
   28.39 +    RegContaineeDoc[] value();
   28.40 +
   28.41 +    int y();
   28.42 +}

mercurial