Merge

Tue, 08 Oct 2013 14:59:46 -0700

author
lana
date
Tue, 08 Oct 2013 14:59:46 -0700
changeset 2092
4dfcf3a6902f
parent 2067
af6244ba81b6
parent 2091
4dd7ffbf01fb
child 2093
2f43529df42f

Merge

src/share/classes/jdk/Supported.java file | annotate | diff | comparison | revisions
test/tools/javac/generics/OverrideBridge.java file | annotate | diff | comparison | revisions
     1.1 --- a/src/share/classes/com/sun/source/doctree/AttributeTree.java	Wed Oct 02 13:26:54 2013 -0700
     1.2 +++ b/src/share/classes/com/sun/source/doctree/AttributeTree.java	Tue Oct 08 14:59:46 2013 -0700
     1.3 @@ -33,9 +33,9 @@
     1.4   *
     1.5   * @since 1.8
     1.6   */
     1.7 -@jdk.Supported
     1.8 +@jdk.Exported
     1.9  public interface AttributeTree extends DocTree {
    1.10 -    @jdk.Supported
    1.11 +    @jdk.Exported
    1.12      enum ValueKind { EMPTY, UNQUOTED, SINGLE, DOUBLE };
    1.13  
    1.14      Name getName();
     2.1 --- a/src/share/classes/com/sun/source/doctree/AuthorTree.java	Wed Oct 02 13:26:54 2013 -0700
     2.2 +++ b/src/share/classes/com/sun/source/doctree/AuthorTree.java	Tue Oct 08 14:59:46 2013 -0700
     2.3 @@ -35,7 +35,7 @@
     2.4   *
     2.5   * @since 1.8
     2.6   */
     2.7 -@jdk.Supported
     2.8 +@jdk.Exported
     2.9  public interface AuthorTree extends BlockTagTree {
    2.10      List<? extends DocTree> getName();
    2.11  }
     3.1 --- a/src/share/classes/com/sun/source/doctree/BlockTagTree.java	Wed Oct 02 13:26:54 2013 -0700
     3.2 +++ b/src/share/classes/com/sun/source/doctree/BlockTagTree.java	Tue Oct 08 14:59:46 2013 -0700
     3.3 @@ -31,7 +31,7 @@
     3.4   *
     3.5   * @since 1.8
     3.6   */
     3.7 -@jdk.Supported
     3.8 +@jdk.Exported
     3.9  public interface BlockTagTree extends DocTree {
    3.10      String getTagName();
    3.11  }
     4.1 --- a/src/share/classes/com/sun/source/doctree/CommentTree.java	Wed Oct 02 13:26:54 2013 -0700
     4.2 +++ b/src/share/classes/com/sun/source/doctree/CommentTree.java	Tue Oct 08 14:59:46 2013 -0700
     4.3 @@ -33,7 +33,7 @@
     4.4   *
     4.5   * @since 1.8
     4.6   */
     4.7 -@jdk.Supported
     4.8 +@jdk.Exported
     4.9  public interface CommentTree extends DocTree {
    4.10      String getBody();
    4.11  }
     5.1 --- a/src/share/classes/com/sun/source/doctree/DeprecatedTree.java	Wed Oct 02 13:26:54 2013 -0700
     5.2 +++ b/src/share/classes/com/sun/source/doctree/DeprecatedTree.java	Tue Oct 08 14:59:46 2013 -0700
     5.3 @@ -35,7 +35,7 @@
     5.4   *
     5.5   * @since 1.8
     5.6   */
     5.7 -@jdk.Supported
     5.8 +@jdk.Exported
     5.9  public interface DeprecatedTree extends BlockTagTree {
    5.10      List<? extends DocTree> getBody();
    5.11  }
     6.1 --- a/src/share/classes/com/sun/source/doctree/DocCommentTree.java	Wed Oct 02 13:26:54 2013 -0700
     6.2 +++ b/src/share/classes/com/sun/source/doctree/DocCommentTree.java	Tue Oct 08 14:59:46 2013 -0700
     6.3 @@ -35,7 +35,7 @@
     6.4   *
     6.5   * @since 1.8
     6.6   */
     6.7 -@jdk.Supported
     6.8 +@jdk.Exported
     6.9  public interface DocCommentTree extends DocTree {
    6.10      List<? extends DocTree> getFirstSentence();
    6.11      List<? extends DocTree> getBody();
     7.1 --- a/src/share/classes/com/sun/source/doctree/DocRootTree.java	Wed Oct 02 13:26:54 2013 -0700
     7.2 +++ b/src/share/classes/com/sun/source/doctree/DocRootTree.java	Tue Oct 08 14:59:46 2013 -0700
     7.3 @@ -33,5 +33,5 @@
     7.4   *
     7.5   * @since 1.8
     7.6   */
     7.7 -@jdk.Supported
     7.8 +@jdk.Exported
     7.9  public interface DocRootTree extends InlineTagTree { }
     8.1 --- a/src/share/classes/com/sun/source/doctree/DocTree.java	Wed Oct 02 13:26:54 2013 -0700
     8.2 +++ b/src/share/classes/com/sun/source/doctree/DocTree.java	Tue Oct 08 14:59:46 2013 -0700
     8.3 @@ -30,9 +30,9 @@
     8.4   *
     8.5   * @since 1.8
     8.6   */
     8.7 -@jdk.Supported
     8.8 +@jdk.Exported
     8.9  public interface DocTree {
    8.10 -    @jdk.Supported
    8.11 +    @jdk.Exported
    8.12      enum Kind {
    8.13          /**
    8.14           * Used for instances of {@link AttributeTree}
     9.1 --- a/src/share/classes/com/sun/source/doctree/DocTreeVisitor.java	Wed Oct 02 13:26:54 2013 -0700
     9.2 +++ b/src/share/classes/com/sun/source/doctree/DocTreeVisitor.java	Tue Oct 08 14:59:46 2013 -0700
     9.3 @@ -54,7 +54,7 @@
     9.4   *
     9.5   * @since 1.8
     9.6   */
     9.7 -@jdk.Supported
     9.8 +@jdk.Exported
     9.9  public interface DocTreeVisitor<R,P> {
    9.10      R visitAttribute(AttributeTree node, P p);
    9.11      R visitAuthor(AuthorTree node, P p);
    10.1 --- a/src/share/classes/com/sun/source/doctree/EndElementTree.java	Wed Oct 02 13:26:54 2013 -0700
    10.2 +++ b/src/share/classes/com/sun/source/doctree/EndElementTree.java	Tue Oct 08 14:59:46 2013 -0700
    10.3 @@ -35,7 +35,7 @@
    10.4   *
    10.5   * @since 1.8
    10.6   */
    10.7 -@jdk.Supported
    10.8 +@jdk.Exported
    10.9  public interface EndElementTree extends DocTree {
   10.10      Name getName();
   10.11  }
    11.1 --- a/src/share/classes/com/sun/source/doctree/EntityTree.java	Wed Oct 02 13:26:54 2013 -0700
    11.2 +++ b/src/share/classes/com/sun/source/doctree/EntityTree.java	Tue Oct 08 14:59:46 2013 -0700
    11.3 @@ -36,7 +36,7 @@
    11.4   *
    11.5   * @since 1.8
    11.6   */
    11.7 -@jdk.Supported
    11.8 +@jdk.Exported
    11.9  public interface EntityTree extends DocTree {
   11.10      Name getName();
   11.11  }
    12.1 --- a/src/share/classes/com/sun/source/doctree/ErroneousTree.java	Wed Oct 02 13:26:54 2013 -0700
    12.2 +++ b/src/share/classes/com/sun/source/doctree/ErroneousTree.java	Tue Oct 08 14:59:46 2013 -0700
    12.3 @@ -32,7 +32,7 @@
    12.4   *
    12.5   * @since 1.8
    12.6   */
    12.7 -@jdk.Supported
    12.8 +@jdk.Exported
    12.9  public interface ErroneousTree extends TextTree {
   12.10      /**
   12.11       * Gets a diagnostic object giving details about
    13.1 --- a/src/share/classes/com/sun/source/doctree/IdentifierTree.java	Wed Oct 02 13:26:54 2013 -0700
    13.2 +++ b/src/share/classes/com/sun/source/doctree/IdentifierTree.java	Tue Oct 08 14:59:46 2013 -0700
    13.3 @@ -35,7 +35,7 @@
    13.4   *
    13.5   * @since 1.8
    13.6   */
    13.7 -@jdk.Supported
    13.8 +@jdk.Exported
    13.9  public interface IdentifierTree extends DocTree {
   13.10      Name getName();
   13.11  }
    14.1 --- a/src/share/classes/com/sun/source/doctree/InheritDocTree.java	Wed Oct 02 13:26:54 2013 -0700
    14.2 +++ b/src/share/classes/com/sun/source/doctree/InheritDocTree.java	Tue Oct 08 14:59:46 2013 -0700
    14.3 @@ -34,5 +34,5 @@
    14.4   *
    14.5   * @since 1.8
    14.6   */
    14.7 -@jdk.Supported
    14.8 +@jdk.Exported
    14.9  public interface InheritDocTree extends InlineTagTree { }
    15.1 --- a/src/share/classes/com/sun/source/doctree/InlineTagTree.java	Wed Oct 02 13:26:54 2013 -0700
    15.2 +++ b/src/share/classes/com/sun/source/doctree/InlineTagTree.java	Tue Oct 08 14:59:46 2013 -0700
    15.3 @@ -31,7 +31,7 @@
    15.4   *
    15.5   * @since 1.8
    15.6   */
    15.7 -@jdk.Supported
    15.8 +@jdk.Exported
    15.9  public interface InlineTagTree extends DocTree {
   15.10      String getTagName();
   15.11  }
    16.1 --- a/src/share/classes/com/sun/source/doctree/LinkTree.java	Wed Oct 02 13:26:54 2013 -0700
    16.2 +++ b/src/share/classes/com/sun/source/doctree/LinkTree.java	Tue Oct 08 14:59:46 2013 -0700
    16.3 @@ -36,7 +36,7 @@
    16.4   *
    16.5   * @since 1.8
    16.6   */
    16.7 -@jdk.Supported
    16.8 +@jdk.Exported
    16.9  public interface LinkTree extends InlineTagTree {
   16.10      ReferenceTree getReference();
   16.11      List<? extends DocTree> getLabel();
    17.1 --- a/src/share/classes/com/sun/source/doctree/LiteralTree.java	Wed Oct 02 13:26:54 2013 -0700
    17.2 +++ b/src/share/classes/com/sun/source/doctree/LiteralTree.java	Tue Oct 08 14:59:46 2013 -0700
    17.3 @@ -34,7 +34,7 @@
    17.4   *
    17.5   * @since 1.8
    17.6   */
    17.7 -@jdk.Supported
    17.8 +@jdk.Exported
    17.9  public interface LiteralTree extends InlineTagTree {
   17.10      TextTree getBody();
   17.11  }
    18.1 --- a/src/share/classes/com/sun/source/doctree/ParamTree.java	Wed Oct 02 13:26:54 2013 -0700
    18.2 +++ b/src/share/classes/com/sun/source/doctree/ParamTree.java	Tue Oct 08 14:59:46 2013 -0700
    18.3 @@ -35,7 +35,7 @@
    18.4   *
    18.5   * @since 1.8
    18.6   */
    18.7 -@jdk.Supported
    18.8 +@jdk.Exported
    18.9  public interface ParamTree extends BlockTagTree {
   18.10      boolean isTypeParameter();
   18.11      IdentifierTree getName();
    19.1 --- a/src/share/classes/com/sun/source/doctree/ReferenceTree.java	Wed Oct 02 13:26:54 2013 -0700
    19.2 +++ b/src/share/classes/com/sun/source/doctree/ReferenceTree.java	Tue Oct 08 14:59:46 2013 -0700
    19.3 @@ -33,7 +33,7 @@
    19.4   *
    19.5   * @since 1.8
    19.6   */
    19.7 -@jdk.Supported
    19.8 +@jdk.Exported
    19.9  public interface ReferenceTree extends DocTree {
   19.10      String getSignature();
   19.11  }
    20.1 --- a/src/share/classes/com/sun/source/doctree/ReturnTree.java	Wed Oct 02 13:26:54 2013 -0700
    20.2 +++ b/src/share/classes/com/sun/source/doctree/ReturnTree.java	Tue Oct 08 14:59:46 2013 -0700
    20.3 @@ -35,7 +35,7 @@
    20.4   *
    20.5   * @since 1.8
    20.6   */
    20.7 -@jdk.Supported
    20.8 +@jdk.Exported
    20.9  public interface ReturnTree extends BlockTagTree {
   20.10      List<? extends DocTree> getDescription();
   20.11  }
    21.1 --- a/src/share/classes/com/sun/source/doctree/SeeTree.java	Wed Oct 02 13:26:54 2013 -0700
    21.2 +++ b/src/share/classes/com/sun/source/doctree/SeeTree.java	Tue Oct 08 14:59:46 2013 -0700
    21.3 @@ -38,7 +38,7 @@
    21.4   *
    21.5   * @since 1.8
    21.6   */
    21.7 -@jdk.Supported
    21.8 +@jdk.Exported
    21.9  public interface SeeTree extends BlockTagTree {
   21.10      List<? extends DocTree> getReference();
   21.11  }
    22.1 --- a/src/share/classes/com/sun/source/doctree/SerialDataTree.java	Wed Oct 02 13:26:54 2013 -0700
    22.2 +++ b/src/share/classes/com/sun/source/doctree/SerialDataTree.java	Tue Oct 08 14:59:46 2013 -0700
    22.3 @@ -35,7 +35,7 @@
    22.4   *
    22.5   * @since 1.8
    22.6   */
    22.7 -@jdk.Supported
    22.8 +@jdk.Exported
    22.9  public interface SerialDataTree extends BlockTagTree {
   22.10      List<? extends DocTree> getDescription();
   22.11  }
    23.1 --- a/src/share/classes/com/sun/source/doctree/SerialFieldTree.java	Wed Oct 02 13:26:54 2013 -0700
    23.2 +++ b/src/share/classes/com/sun/source/doctree/SerialFieldTree.java	Tue Oct 08 14:59:46 2013 -0700
    23.3 @@ -35,7 +35,7 @@
    23.4   *
    23.5   * @since 1.8
    23.6   */
    23.7 -@jdk.Supported
    23.8 +@jdk.Exported
    23.9  public interface SerialFieldTree extends BlockTagTree {
   23.10      IdentifierTree getName();
   23.11      ReferenceTree getType();
    24.1 --- a/src/share/classes/com/sun/source/doctree/SerialTree.java	Wed Oct 02 13:26:54 2013 -0700
    24.2 +++ b/src/share/classes/com/sun/source/doctree/SerialTree.java	Tue Oct 08 14:59:46 2013 -0700
    24.3 @@ -35,7 +35,7 @@
    24.4   *
    24.5   * @since 1.8
    24.6   */
    24.7 -@jdk.Supported
    24.8 +@jdk.Exported
    24.9  public interface SerialTree extends BlockTagTree {
   24.10      List<? extends DocTree> getDescription();
   24.11  }
    25.1 --- a/src/share/classes/com/sun/source/doctree/SinceTree.java	Wed Oct 02 13:26:54 2013 -0700
    25.2 +++ b/src/share/classes/com/sun/source/doctree/SinceTree.java	Tue Oct 08 14:59:46 2013 -0700
    25.3 @@ -35,7 +35,7 @@
    25.4   *
    25.5   * @since 1.8
    25.6   */
    25.7 -@jdk.Supported
    25.8 +@jdk.Exported
    25.9  public interface SinceTree extends BlockTagTree {
   25.10      List<? extends DocTree> getBody();
   25.11  }
    26.1 --- a/src/share/classes/com/sun/source/doctree/StartElementTree.java	Wed Oct 02 13:26:54 2013 -0700
    26.2 +++ b/src/share/classes/com/sun/source/doctree/StartElementTree.java	Tue Oct 08 14:59:46 2013 -0700
    26.3 @@ -36,7 +36,7 @@
    26.4   *
    26.5   * @since 1.8
    26.6   */
    26.7 -@jdk.Supported
    26.8 +@jdk.Exported
    26.9  public interface StartElementTree extends DocTree {
   26.10      Name getName();
   26.11      List<? extends DocTree> getAttributes();
    27.1 --- a/src/share/classes/com/sun/source/doctree/TextTree.java	Wed Oct 02 13:26:54 2013 -0700
    27.2 +++ b/src/share/classes/com/sun/source/doctree/TextTree.java	Tue Oct 08 14:59:46 2013 -0700
    27.3 @@ -30,7 +30,7 @@
    27.4   *
    27.5   * @since 1.8
    27.6   */
    27.7 -@jdk.Supported
    27.8 +@jdk.Exported
    27.9  public interface TextTree extends DocTree {
   27.10      String getBody();
   27.11  }
    28.1 --- a/src/share/classes/com/sun/source/doctree/ThrowsTree.java	Wed Oct 02 13:26:54 2013 -0700
    28.2 +++ b/src/share/classes/com/sun/source/doctree/ThrowsTree.java	Tue Oct 08 14:59:46 2013 -0700
    28.3 @@ -38,7 +38,7 @@
    28.4   *
    28.5   * @since 1.8
    28.6   */
    28.7 -@jdk.Supported
    28.8 +@jdk.Exported
    28.9  public interface ThrowsTree extends BlockTagTree {
   28.10      ReferenceTree getExceptionName();
   28.11      List<? extends DocTree> getDescription();
    29.1 --- a/src/share/classes/com/sun/source/doctree/UnknownBlockTagTree.java	Wed Oct 02 13:26:54 2013 -0700
    29.2 +++ b/src/share/classes/com/sun/source/doctree/UnknownBlockTagTree.java	Tue Oct 08 14:59:46 2013 -0700
    29.3 @@ -35,7 +35,7 @@
    29.4   * @since 1.8
    29.5   *
    29.6   */
    29.7 -@jdk.Supported
    29.8 +@jdk.Exported
    29.9  public interface UnknownBlockTagTree extends BlockTagTree {
   29.10      List<? extends DocTree> getContent();
   29.11  }
    30.1 --- a/src/share/classes/com/sun/source/doctree/UnknownInlineTagTree.java	Wed Oct 02 13:26:54 2013 -0700
    30.2 +++ b/src/share/classes/com/sun/source/doctree/UnknownInlineTagTree.java	Tue Oct 08 14:59:46 2013 -0700
    30.3 @@ -35,7 +35,7 @@
    30.4   * @since 1.8
    30.5   *
    30.6   */
    30.7 -@jdk.Supported
    30.8 +@jdk.Exported
    30.9  public interface UnknownInlineTagTree extends InlineTagTree {
   30.10      List<? extends DocTree> getContent();
   30.11  }
    31.1 --- a/src/share/classes/com/sun/source/doctree/ValueTree.java	Wed Oct 02 13:26:54 2013 -0700
    31.2 +++ b/src/share/classes/com/sun/source/doctree/ValueTree.java	Tue Oct 08 14:59:46 2013 -0700
    31.3 @@ -33,7 +33,7 @@
    31.4   *
    31.5   * @since 1.8
    31.6   */
    31.7 -@jdk.Supported
    31.8 +@jdk.Exported
    31.9  public interface ValueTree extends InlineTagTree {
   31.10      ReferenceTree getReference();
   31.11  }
    32.1 --- a/src/share/classes/com/sun/source/doctree/VersionTree.java	Wed Oct 02 13:26:54 2013 -0700
    32.2 +++ b/src/share/classes/com/sun/source/doctree/VersionTree.java	Tue Oct 08 14:59:46 2013 -0700
    32.3 @@ -36,7 +36,7 @@
    32.4   *
    32.5   * @since 1.8
    32.6   */
    32.7 -@jdk.Supported
    32.8 +@jdk.Exported
    32.9  public interface VersionTree extends BlockTagTree {
   32.10      List<? extends DocTree> getBody();
   32.11  }
    33.1 --- a/src/share/classes/com/sun/source/doctree/package-info.java	Wed Oct 02 13:26:54 2013 -0700
    33.2 +++ b/src/share/classes/com/sun/source/doctree/package-info.java	Tue Oct 08 14:59:46 2013 -0700
    33.3 @@ -31,5 +31,5 @@
    33.4   * @since 1.8
    33.5   * @see <a href="http://download.oracle.com/javase/6/docs/technotes/tools/solaris/javadoc.html#javadoctags">http://download.oracle.com/javase/6/docs/technotes/tools/solaris/javadoc.html#javadoctags</a>
    33.6   */
    33.7 -@jdk.Supported
    33.8 +@jdk.Exported
    33.9  package com.sun.source.doctree;
    34.1 --- a/src/share/classes/com/sun/source/tree/AnnotatedTypeTree.java	Wed Oct 02 13:26:54 2013 -0700
    34.2 +++ b/src/share/classes/com/sun/source/tree/AnnotatedTypeTree.java	Tue Oct 08 14:59:46 2013 -0700
    34.3 @@ -41,7 +41,7 @@
    34.4   * @author Mahmood Ali
    34.5   * @since 1.8
    34.6   */
    34.7 -@jdk.Supported
    34.8 +@jdk.Exported
    34.9  public interface AnnotatedTypeTree extends ExpressionTree {
   34.10      List<? extends AnnotationTree> getAnnotations();
   34.11      ExpressionTree getUnderlyingType();
    35.1 --- a/src/share/classes/com/sun/source/tree/AnnotationTree.java	Wed Oct 02 13:26:54 2013 -0700
    35.2 +++ b/src/share/classes/com/sun/source/tree/AnnotationTree.java	Tue Oct 08 14:59:46 2013 -0700
    35.3 @@ -42,7 +42,7 @@
    35.4   * @author Jonathan Gibbons
    35.5   * @since 1.6
    35.6   */
    35.7 -@jdk.Supported
    35.8 +@jdk.Exported
    35.9  public interface AnnotationTree extends ExpressionTree {
   35.10      Tree getAnnotationType();
   35.11      List<? extends ExpressionTree> getArguments();
    36.1 --- a/src/share/classes/com/sun/source/tree/ArrayAccessTree.java	Wed Oct 02 13:26:54 2013 -0700
    36.2 +++ b/src/share/classes/com/sun/source/tree/ArrayAccessTree.java	Tue Oct 08 14:59:46 2013 -0700
    36.3 @@ -39,7 +39,7 @@
    36.4   * @author Jonathan Gibbons
    36.5   * @since 1.6
    36.6   */
    36.7 -@jdk.Supported
    36.8 +@jdk.Exported
    36.9  public interface ArrayAccessTree extends ExpressionTree {
   36.10      ExpressionTree getExpression();
   36.11      ExpressionTree getIndex();
    37.1 --- a/src/share/classes/com/sun/source/tree/ArrayTypeTree.java	Wed Oct 02 13:26:54 2013 -0700
    37.2 +++ b/src/share/classes/com/sun/source/tree/ArrayTypeTree.java	Tue Oct 08 14:59:46 2013 -0700
    37.3 @@ -39,7 +39,7 @@
    37.4   * @author Jonathan Gibbons
    37.5   * @since 1.6
    37.6   */
    37.7 -@jdk.Supported
    37.8 +@jdk.Exported
    37.9  public interface ArrayTypeTree extends Tree {
   37.10      Tree getType();
   37.11  }
    38.1 --- a/src/share/classes/com/sun/source/tree/AssertTree.java	Wed Oct 02 13:26:54 2013 -0700
    38.2 +++ b/src/share/classes/com/sun/source/tree/AssertTree.java	Tue Oct 08 14:59:46 2013 -0700
    38.3 @@ -41,7 +41,7 @@
    38.4   * @author Jonathan Gibbons
    38.5   * @since 1.6
    38.6   */
    38.7 -@jdk.Supported
    38.8 +@jdk.Exported
    38.9  public interface AssertTree extends StatementTree {
   38.10      ExpressionTree getCondition();
   38.11      ExpressionTree getDetail();
    39.1 --- a/src/share/classes/com/sun/source/tree/AssignmentTree.java	Wed Oct 02 13:26:54 2013 -0700
    39.2 +++ b/src/share/classes/com/sun/source/tree/AssignmentTree.java	Tue Oct 08 14:59:46 2013 -0700
    39.3 @@ -39,7 +39,7 @@
    39.4   * @author Jonathan Gibbons
    39.5   * @since 1.6
    39.6   */
    39.7 -@jdk.Supported
    39.8 +@jdk.Exported
    39.9  public interface AssignmentTree extends ExpressionTree {
   39.10      ExpressionTree getVariable();
   39.11      ExpressionTree getExpression();
    40.1 --- a/src/share/classes/com/sun/source/tree/BinaryTree.java	Wed Oct 02 13:26:54 2013 -0700
    40.2 +++ b/src/share/classes/com/sun/source/tree/BinaryTree.java	Tue Oct 08 14:59:46 2013 -0700
    40.3 @@ -40,7 +40,7 @@
    40.4   * @author Jonathan Gibbons
    40.5   * @since 1.6
    40.6   */
    40.7 -@jdk.Supported
    40.8 +@jdk.Exported
    40.9  public interface BinaryTree extends ExpressionTree {
   40.10      ExpressionTree getLeftOperand();
   40.11      ExpressionTree getRightOperand();
    41.1 --- a/src/share/classes/com/sun/source/tree/BlockTree.java	Wed Oct 02 13:26:54 2013 -0700
    41.2 +++ b/src/share/classes/com/sun/source/tree/BlockTree.java	Tue Oct 08 14:59:46 2013 -0700
    41.3 @@ -45,7 +45,7 @@
    41.4   * @author Jonathan Gibbons
    41.5   * @since 1.6
    41.6   */
    41.7 -@jdk.Supported
    41.8 +@jdk.Exported
    41.9  public interface BlockTree extends StatementTree {
   41.10      boolean isStatic();
   41.11      List<? extends StatementTree> getStatements();
    42.1 --- a/src/share/classes/com/sun/source/tree/BreakTree.java	Wed Oct 02 13:26:54 2013 -0700
    42.2 +++ b/src/share/classes/com/sun/source/tree/BreakTree.java	Tue Oct 08 14:59:46 2013 -0700
    42.3 @@ -43,7 +43,7 @@
    42.4   * @author Jonathan Gibbons
    42.5   * @since 1.6
    42.6   */
    42.7 -@jdk.Supported
    42.8 +@jdk.Exported
    42.9  public interface BreakTree extends StatementTree {
   42.10      Name getLabel();
   42.11  }
    43.1 --- a/src/share/classes/com/sun/source/tree/CaseTree.java	Wed Oct 02 13:26:54 2013 -0700
    43.2 +++ b/src/share/classes/com/sun/source/tree/CaseTree.java	Tue Oct 08 14:59:46 2013 -0700
    43.3 @@ -45,7 +45,7 @@
    43.4   * @author Jonathan Gibbons
    43.5   * @since 1.6
    43.6   */
    43.7 -@jdk.Supported
    43.8 +@jdk.Exported
    43.9  public interface CaseTree extends Tree {
   43.10      /**
   43.11       * @return null if and only if this Case is {@code default:}
    44.1 --- a/src/share/classes/com/sun/source/tree/CatchTree.java	Wed Oct 02 13:26:54 2013 -0700
    44.2 +++ b/src/share/classes/com/sun/source/tree/CatchTree.java	Tue Oct 08 14:59:46 2013 -0700
    44.3 @@ -40,7 +40,7 @@
    44.4   * @author Jonathan Gibbons
    44.5   * @since 1.6
    44.6   */
    44.7 -@jdk.Supported
    44.8 +@jdk.Exported
    44.9  public interface CatchTree extends Tree {
   44.10      VariableTree getParameter();
   44.11      BlockTree getBlock();
    45.1 --- a/src/share/classes/com/sun/source/tree/ClassTree.java	Wed Oct 02 13:26:54 2013 -0700
    45.2 +++ b/src/share/classes/com/sun/source/tree/ClassTree.java	Tue Oct 08 14:59:46 2013 -0700
    45.3 @@ -48,7 +48,7 @@
    45.4   * @author Jonathan Gibbons
    45.5   * @since 1.6
    45.6   */
    45.7 -@jdk.Supported
    45.8 +@jdk.Exported
    45.9  public interface ClassTree extends StatementTree {
   45.10      ModifiersTree getModifiers();
   45.11      Name getSimpleName();
    46.1 --- a/src/share/classes/com/sun/source/tree/CompilationUnitTree.java	Wed Oct 02 13:26:54 2013 -0700
    46.2 +++ b/src/share/classes/com/sun/source/tree/CompilationUnitTree.java	Tue Oct 08 14:59:46 2013 -0700
    46.3 @@ -37,7 +37,7 @@
    46.4   * @author Peter von der Ah&eacute;
    46.5   * @since 1.6
    46.6   */
    46.7 -@jdk.Supported
    46.8 +@jdk.Exported
    46.9  public interface CompilationUnitTree extends Tree {
   46.10      List<? extends AnnotationTree> getPackageAnnotations();
   46.11      ExpressionTree getPackageName();
    47.1 --- a/src/share/classes/com/sun/source/tree/CompoundAssignmentTree.java	Wed Oct 02 13:26:54 2013 -0700
    47.2 +++ b/src/share/classes/com/sun/source/tree/CompoundAssignmentTree.java	Tue Oct 08 14:59:46 2013 -0700
    47.3 @@ -40,7 +40,7 @@
    47.4   * @author Jonathan Gibbons
    47.5   * @since 1.6
    47.6   */
    47.7 -@jdk.Supported
    47.8 +@jdk.Exported
    47.9  public interface CompoundAssignmentTree extends ExpressionTree {
   47.10      ExpressionTree getVariable();
   47.11      ExpressionTree getExpression();
    48.1 --- a/src/share/classes/com/sun/source/tree/ConditionalExpressionTree.java	Wed Oct 02 13:26:54 2013 -0700
    48.2 +++ b/src/share/classes/com/sun/source/tree/ConditionalExpressionTree.java	Tue Oct 08 14:59:46 2013 -0700
    48.3 @@ -39,7 +39,7 @@
    48.4   * @author Jonathan Gibbons
    48.5   * @since 1.6
    48.6   */
    48.7 -@jdk.Supported
    48.8 +@jdk.Exported
    48.9  public interface ConditionalExpressionTree extends ExpressionTree {
   48.10      ExpressionTree getCondition();
   48.11      ExpressionTree getTrueExpression();
    49.1 --- a/src/share/classes/com/sun/source/tree/ContinueTree.java	Wed Oct 02 13:26:54 2013 -0700
    49.2 +++ b/src/share/classes/com/sun/source/tree/ContinueTree.java	Tue Oct 08 14:59:46 2013 -0700
    49.3 @@ -42,7 +42,7 @@
    49.4   * @author Jonathan Gibbons
    49.5   * @since 1.6
    49.6   */
    49.7 -@jdk.Supported
    49.8 +@jdk.Exported
    49.9  public interface ContinueTree extends StatementTree {
   49.10      Name getLabel();
   49.11  }
    50.1 --- a/src/share/classes/com/sun/source/tree/DoWhileLoopTree.java	Wed Oct 02 13:26:54 2013 -0700
    50.2 +++ b/src/share/classes/com/sun/source/tree/DoWhileLoopTree.java	Tue Oct 08 14:59:46 2013 -0700
    50.3 @@ -41,7 +41,7 @@
    50.4   * @author Jonathan Gibbons
    50.5   * @since 1.6
    50.6   */
    50.7 -@jdk.Supported
    50.8 +@jdk.Exported
    50.9  public interface DoWhileLoopTree extends StatementTree {
   50.10      ExpressionTree getCondition();
   50.11      StatementTree getStatement();
    51.1 --- a/src/share/classes/com/sun/source/tree/EmptyStatementTree.java	Wed Oct 02 13:26:54 2013 -0700
    51.2 +++ b/src/share/classes/com/sun/source/tree/EmptyStatementTree.java	Tue Oct 08 14:59:46 2013 -0700
    51.3 @@ -39,5 +39,5 @@
    51.4   * @author Jonathan Gibbons
    51.5   * @since 1.6
    51.6   */
    51.7 -@jdk.Supported
    51.8 +@jdk.Exported
    51.9  public interface EmptyStatementTree extends StatementTree {}
    52.1 --- a/src/share/classes/com/sun/source/tree/EnhancedForLoopTree.java	Wed Oct 02 13:26:54 2013 -0700
    52.2 +++ b/src/share/classes/com/sun/source/tree/EnhancedForLoopTree.java	Tue Oct 08 14:59:46 2013 -0700
    52.3 @@ -40,7 +40,7 @@
    52.4   * @author Jonathan Gibbons
    52.5   * @since 1.6
    52.6   */
    52.7 -@jdk.Supported
    52.8 +@jdk.Exported
    52.9  public interface EnhancedForLoopTree extends StatementTree {
   52.10      VariableTree getVariable();
   52.11      ExpressionTree getExpression();
    53.1 --- a/src/share/classes/com/sun/source/tree/ErroneousTree.java	Wed Oct 02 13:26:54 2013 -0700
    53.2 +++ b/src/share/classes/com/sun/source/tree/ErroneousTree.java	Tue Oct 08 14:59:46 2013 -0700
    53.3 @@ -34,7 +34,7 @@
    53.4   * @author Jonathan Gibbons
    53.5   * @since 1.6
    53.6   */
    53.7 -@jdk.Supported
    53.8 +@jdk.Exported
    53.9  public interface ErroneousTree extends ExpressionTree {
   53.10      List<? extends Tree> getErrorTrees();
   53.11  }
    54.1 --- a/src/share/classes/com/sun/source/tree/ExpressionStatementTree.java	Wed Oct 02 13:26:54 2013 -0700
    54.2 +++ b/src/share/classes/com/sun/source/tree/ExpressionStatementTree.java	Tue Oct 08 14:59:46 2013 -0700
    54.3 @@ -39,7 +39,7 @@
    54.4   * @author Jonathan Gibbons
    54.5   * @since 1.6
    54.6   */
    54.7 -@jdk.Supported
    54.8 +@jdk.Exported
    54.9  public interface ExpressionStatementTree extends StatementTree {
   54.10      ExpressionTree getExpression();
   54.11  }
    55.1 --- a/src/share/classes/com/sun/source/tree/ExpressionTree.java	Wed Oct 02 13:26:54 2013 -0700
    55.2 +++ b/src/share/classes/com/sun/source/tree/ExpressionTree.java	Tue Oct 08 14:59:46 2013 -0700
    55.3 @@ -35,5 +35,5 @@
    55.4   * @author Jonathan Gibbons
    55.5   * @since 1.6
    55.6   */
    55.7 -@jdk.Supported
    55.8 +@jdk.Exported
    55.9  public interface ExpressionTree extends Tree {}
    56.1 --- a/src/share/classes/com/sun/source/tree/ForLoopTree.java	Wed Oct 02 13:26:54 2013 -0700
    56.2 +++ b/src/share/classes/com/sun/source/tree/ForLoopTree.java	Tue Oct 08 14:59:46 2013 -0700
    56.3 @@ -42,7 +42,7 @@
    56.4   * @author Jonathan Gibbons
    56.5   * @since 1.6
    56.6   */
    56.7 -@jdk.Supported
    56.8 +@jdk.Exported
    56.9  public interface ForLoopTree extends StatementTree {
   56.10      List<? extends StatementTree> getInitializer();
   56.11      ExpressionTree getCondition();
    57.1 --- a/src/share/classes/com/sun/source/tree/IdentifierTree.java	Wed Oct 02 13:26:54 2013 -0700
    57.2 +++ b/src/share/classes/com/sun/source/tree/IdentifierTree.java	Tue Oct 08 14:59:46 2013 -0700
    57.3 @@ -41,7 +41,7 @@
    57.4   * @author Jonathan Gibbons
    57.5   * @since 1.6
    57.6   */
    57.7 -@jdk.Supported
    57.8 +@jdk.Exported
    57.9  public interface IdentifierTree extends ExpressionTree {
   57.10      Name getName();
   57.11  }
    58.1 --- a/src/share/classes/com/sun/source/tree/IfTree.java	Wed Oct 02 13:26:54 2013 -0700
    58.2 +++ b/src/share/classes/com/sun/source/tree/IfTree.java	Tue Oct 08 14:59:46 2013 -0700
    58.3 @@ -45,7 +45,7 @@
    58.4   * @author Jonathan Gibbons
    58.5   * @since 1.6
    58.6   */
    58.7 -@jdk.Supported
    58.8 +@jdk.Exported
    58.9  public interface IfTree extends StatementTree {
   58.10      ExpressionTree getCondition();
   58.11      StatementTree getThenStatement();
    59.1 --- a/src/share/classes/com/sun/source/tree/ImportTree.java	Wed Oct 02 13:26:54 2013 -0700
    59.2 +++ b/src/share/classes/com/sun/source/tree/ImportTree.java	Tue Oct 08 14:59:46 2013 -0700
    59.3 @@ -41,7 +41,7 @@
    59.4   * @author Jonathan Gibbons
    59.5   * @since 1.6
    59.6   */
    59.7 -@jdk.Supported
    59.8 +@jdk.Exported
    59.9  public interface ImportTree extends Tree {
   59.10      boolean isStatic();
   59.11      /**
    60.1 --- a/src/share/classes/com/sun/source/tree/InstanceOfTree.java	Wed Oct 02 13:26:54 2013 -0700
    60.2 +++ b/src/share/classes/com/sun/source/tree/InstanceOfTree.java	Tue Oct 08 14:59:46 2013 -0700
    60.3 @@ -39,7 +39,7 @@
    60.4   * @author Jonathan Gibbons
    60.5   * @since 1.6
    60.6   */
    60.7 -@jdk.Supported
    60.8 +@jdk.Exported
    60.9  public interface InstanceOfTree extends ExpressionTree {
   60.10      ExpressionTree getExpression();
   60.11      Tree getType();
    61.1 --- a/src/share/classes/com/sun/source/tree/IntersectionTypeTree.java	Wed Oct 02 13:26:54 2013 -0700
    61.2 +++ b/src/share/classes/com/sun/source/tree/IntersectionTypeTree.java	Tue Oct 08 14:59:46 2013 -0700
    61.3 @@ -34,7 +34,7 @@
    61.4   *
    61.5   * @since 1.8
    61.6   */
    61.7 -@jdk.Supported
    61.8 +@jdk.Exported
    61.9  public interface IntersectionTypeTree extends Tree {
   61.10      List<? extends Tree> getBounds();
   61.11  }
    62.1 --- a/src/share/classes/com/sun/source/tree/LabeledStatementTree.java	Wed Oct 02 13:26:54 2013 -0700
    62.2 +++ b/src/share/classes/com/sun/source/tree/LabeledStatementTree.java	Tue Oct 08 14:59:46 2013 -0700
    62.3 @@ -41,7 +41,7 @@
    62.4   * @author Jonathan Gibbons
    62.5   * @since 1.6
    62.6   */
    62.7 -@jdk.Supported
    62.8 +@jdk.Exported
    62.9  public interface LabeledStatementTree extends StatementTree {
   62.10      Name getLabel();
   62.11      StatementTree getStatement();
    63.1 --- a/src/share/classes/com/sun/source/tree/LambdaExpressionTree.java	Wed Oct 02 13:26:54 2013 -0700
    63.2 +++ b/src/share/classes/com/sun/source/tree/LambdaExpressionTree.java	Tue Oct 08 14:59:46 2013 -0700
    63.3 @@ -37,14 +37,14 @@
    63.4   *   (x,y)-> { return x + y; }
    63.5   * }</pre>
    63.6   */
    63.7 -@jdk.Supported
    63.8 +@jdk.Exported
    63.9  public interface LambdaExpressionTree extends ExpressionTree {
   63.10  
   63.11      /**
   63.12       * Lambda expressions come in two forms: (i) expression lambdas, whose body
   63.13       * is an expression, and (ii) statement lambdas, whose body is a block
   63.14       */
   63.15 -    @jdk.Supported
   63.16 +    @jdk.Exported
   63.17      public enum BodyKind {
   63.18          /** enum constant for expression lambdas */
   63.19          EXPRESSION,
    64.1 --- a/src/share/classes/com/sun/source/tree/LineMap.java	Wed Oct 02 13:26:54 2013 -0700
    64.2 +++ b/src/share/classes/com/sun/source/tree/LineMap.java	Tue Oct 08 14:59:46 2013 -0700
    64.3 @@ -31,7 +31,7 @@
    64.4   *
    64.5   * @since 1.6
    64.6   */
    64.7 -@jdk.Supported
    64.8 +@jdk.Exported
    64.9  public interface LineMap {
   64.10      /**
   64.11       * Find the start position of a line.
    65.1 --- a/src/share/classes/com/sun/source/tree/LiteralTree.java	Wed Oct 02 13:26:54 2013 -0700
    65.2 +++ b/src/share/classes/com/sun/source/tree/LiteralTree.java	Tue Oct 08 14:59:46 2013 -0700
    65.3 @@ -40,7 +40,7 @@
    65.4   * @author Jonathan Gibbons
    65.5   * @since 1.6
    65.6   */
    65.7 -@jdk.Supported
    65.8 +@jdk.Exported
    65.9  public interface LiteralTree extends ExpressionTree {
   65.10      Object getValue();
   65.11  }
    66.1 --- a/src/share/classes/com/sun/source/tree/MemberReferenceTree.java	Wed Oct 02 13:26:54 2013 -0700
    66.2 +++ b/src/share/classes/com/sun/source/tree/MemberReferenceTree.java	Tue Oct 08 14:59:46 2013 -0700
    66.3 @@ -39,14 +39,14 @@
    66.4   *
    66.5   * @since 1.8
    66.6   */
    66.7 -@jdk.Supported
    66.8 +@jdk.Exported
    66.9  public interface MemberReferenceTree extends ExpressionTree {
   66.10  
   66.11      /**
   66.12       * There are two kinds of member references: (i) method references and
   66.13       * (ii) constructor references
   66.14       */
   66.15 -    @jdk.Supported
   66.16 +    @jdk.Exported
   66.17      public enum ReferenceMode {
   66.18          /** enum constant for method references */
   66.19          INVOKE,
    67.1 --- a/src/share/classes/com/sun/source/tree/MemberSelectTree.java	Wed Oct 02 13:26:54 2013 -0700
    67.2 +++ b/src/share/classes/com/sun/source/tree/MemberSelectTree.java	Tue Oct 08 14:59:46 2013 -0700
    67.3 @@ -41,7 +41,7 @@
    67.4   * @author Jonathan Gibbons
    67.5   * @since 1.6
    67.6   */
    67.7 -@jdk.Supported
    67.8 +@jdk.Exported
    67.9  public interface MemberSelectTree extends ExpressionTree {
   67.10      ExpressionTree getExpression();
   67.11      Name getIdentifier();
    68.1 --- a/src/share/classes/com/sun/source/tree/MethodInvocationTree.java	Wed Oct 02 13:26:54 2013 -0700
    68.2 +++ b/src/share/classes/com/sun/source/tree/MethodInvocationTree.java	Tue Oct 08 14:59:46 2013 -0700
    68.3 @@ -43,7 +43,7 @@
    68.4   * @author Jonathan Gibbons
    68.5   * @since 1.6
    68.6   */
    68.7 -@jdk.Supported
    68.8 +@jdk.Exported
    68.9  public interface MethodInvocationTree extends ExpressionTree {
   68.10      List<? extends Tree> getTypeArguments();
   68.11      ExpressionTree getMethodSelect();
    69.1 --- a/src/share/classes/com/sun/source/tree/MethodTree.java	Wed Oct 02 13:26:54 2013 -0700
    69.2 +++ b/src/share/classes/com/sun/source/tree/MethodTree.java	Tue Oct 08 14:59:46 2013 -0700
    69.3 @@ -46,7 +46,7 @@
    69.4   * @author Jonathan Gibbons
    69.5   * @since 1.6
    69.6   */
    69.7 -@jdk.Supported
    69.8 +@jdk.Exported
    69.9  public interface MethodTree extends Tree {
   69.10      ModifiersTree getModifiers();
   69.11      Name getName();
    70.1 --- a/src/share/classes/com/sun/source/tree/ModifiersTree.java	Wed Oct 02 13:26:54 2013 -0700
    70.2 +++ b/src/share/classes/com/sun/source/tree/ModifiersTree.java	Tue Oct 08 14:59:46 2013 -0700
    70.3 @@ -45,7 +45,7 @@
    70.4   * @author Jonathan Gibbons
    70.5   * @since 1.6
    70.6   */
    70.7 -@jdk.Supported
    70.8 +@jdk.Exported
    70.9  public interface ModifiersTree extends Tree {
   70.10      Set<Modifier> getFlags();
   70.11      List<? extends AnnotationTree> getAnnotations();
    71.1 --- a/src/share/classes/com/sun/source/tree/NewArrayTree.java	Wed Oct 02 13:26:54 2013 -0700
    71.2 +++ b/src/share/classes/com/sun/source/tree/NewArrayTree.java	Tue Oct 08 14:59:46 2013 -0700
    71.3 @@ -43,7 +43,7 @@
    71.4   * @author Jonathan Gibbons
    71.5   * @since 1.6
    71.6   */
    71.7 -@jdk.Supported
    71.8 +@jdk.Exported
    71.9  public interface NewArrayTree extends ExpressionTree {
   71.10      Tree getType();
   71.11      List<? extends ExpressionTree> getDimensions();
    72.1 --- a/src/share/classes/com/sun/source/tree/NewClassTree.java	Wed Oct 02 13:26:54 2013 -0700
    72.2 +++ b/src/share/classes/com/sun/source/tree/NewClassTree.java	Tue Oct 08 14:59:46 2013 -0700
    72.3 @@ -48,7 +48,7 @@
    72.4   * @author Jonathan Gibbons
    72.5   * @since 1.6
    72.6   */
    72.7 -@jdk.Supported
    72.8 +@jdk.Exported
    72.9  public interface NewClassTree extends ExpressionTree {
   72.10      ExpressionTree getEnclosingExpression();
   72.11      List<? extends Tree> getTypeArguments();
    73.1 --- a/src/share/classes/com/sun/source/tree/ParameterizedTypeTree.java	Wed Oct 02 13:26:54 2013 -0700
    73.2 +++ b/src/share/classes/com/sun/source/tree/ParameterizedTypeTree.java	Tue Oct 08 14:59:46 2013 -0700
    73.3 @@ -41,7 +41,7 @@
    73.4   * @author Jonathan Gibbons
    73.5   * @since 1.6
    73.6   */
    73.7 -@jdk.Supported
    73.8 +@jdk.Exported
    73.9  public interface ParameterizedTypeTree extends Tree {
   73.10      Tree getType();
   73.11      List<? extends Tree> getTypeArguments();
    74.1 --- a/src/share/classes/com/sun/source/tree/ParenthesizedTree.java	Wed Oct 02 13:26:54 2013 -0700
    74.2 +++ b/src/share/classes/com/sun/source/tree/ParenthesizedTree.java	Tue Oct 08 14:59:46 2013 -0700
    74.3 @@ -40,7 +40,7 @@
    74.4   * @author Jonathan Gibbons
    74.5   * @since 1.6
    74.6   */
    74.7 -@jdk.Supported
    74.8 +@jdk.Exported
    74.9  public interface ParenthesizedTree extends ExpressionTree {
   74.10      ExpressionTree getExpression();
   74.11  }
    75.1 --- a/src/share/classes/com/sun/source/tree/PrimitiveTypeTree.java	Wed Oct 02 13:26:54 2013 -0700
    75.2 +++ b/src/share/classes/com/sun/source/tree/PrimitiveTypeTree.java	Tue Oct 08 14:59:46 2013 -0700
    75.3 @@ -41,7 +41,7 @@
    75.4   * @author Jonathan Gibbons
    75.5   * @since 1.6
    75.6   */
    75.7 -@jdk.Supported
    75.8 +@jdk.Exported
    75.9  public interface PrimitiveTypeTree extends Tree {
   75.10      TypeKind getPrimitiveTypeKind();
   75.11  }
    76.1 --- a/src/share/classes/com/sun/source/tree/ReturnTree.java	Wed Oct 02 13:26:54 2013 -0700
    76.2 +++ b/src/share/classes/com/sun/source/tree/ReturnTree.java	Tue Oct 08 14:59:46 2013 -0700
    76.3 @@ -40,7 +40,7 @@
    76.4   * @author Jonathan Gibbons
    76.5   * @since 1.6
    76.6   */
    76.7 -@jdk.Supported
    76.8 +@jdk.Exported
    76.9  public interface ReturnTree extends StatementTree {
   76.10      ExpressionTree getExpression();
   76.11  }
    77.1 --- a/src/share/classes/com/sun/source/tree/Scope.java	Wed Oct 02 13:26:54 2013 -0700
    77.2 +++ b/src/share/classes/com/sun/source/tree/Scope.java	Tue Oct 08 14:59:46 2013 -0700
    77.3 @@ -48,7 +48,7 @@
    77.4   *
    77.5   * @since 1.6
    77.6   */
    77.7 -@jdk.Supported
    77.8 +@jdk.Exported
    77.9  public interface Scope {
   77.10      /**
   77.11       * Returns the enclosing scope.
    78.1 --- a/src/share/classes/com/sun/source/tree/StatementTree.java	Wed Oct 02 13:26:54 2013 -0700
    78.2 +++ b/src/share/classes/com/sun/source/tree/StatementTree.java	Tue Oct 08 14:59:46 2013 -0700
    78.3 @@ -35,5 +35,5 @@
    78.4   * @author Jonathan Gibbons
    78.5   * @since 1.6
    78.6   */
    78.7 -@jdk.Supported
    78.8 +@jdk.Exported
    78.9  public interface StatementTree extends Tree {}
    79.1 --- a/src/share/classes/com/sun/source/tree/SwitchTree.java	Wed Oct 02 13:26:54 2013 -0700
    79.2 +++ b/src/share/classes/com/sun/source/tree/SwitchTree.java	Tue Oct 08 14:59:46 2013 -0700
    79.3 @@ -43,7 +43,7 @@
    79.4   * @author Jonathan Gibbons
    79.5   * @since 1.6
    79.6   */
    79.7 -@jdk.Supported
    79.8 +@jdk.Exported
    79.9  public interface SwitchTree extends StatementTree {
   79.10      ExpressionTree getExpression();
   79.11      List<? extends CaseTree> getCases();
    80.1 --- a/src/share/classes/com/sun/source/tree/SynchronizedTree.java	Wed Oct 02 13:26:54 2013 -0700
    80.2 +++ b/src/share/classes/com/sun/source/tree/SynchronizedTree.java	Tue Oct 08 14:59:46 2013 -0700
    80.3 @@ -40,7 +40,7 @@
    80.4   * @author Jonathan Gibbons
    80.5   * @since 1.6
    80.6   */
    80.7 -@jdk.Supported
    80.8 +@jdk.Exported
    80.9  public interface SynchronizedTree extends StatementTree {
   80.10      ExpressionTree getExpression();
   80.11      BlockTree getBlock();
    81.1 --- a/src/share/classes/com/sun/source/tree/ThrowTree.java	Wed Oct 02 13:26:54 2013 -0700
    81.2 +++ b/src/share/classes/com/sun/source/tree/ThrowTree.java	Tue Oct 08 14:59:46 2013 -0700
    81.3 @@ -39,7 +39,7 @@
    81.4   * @author Jonathan Gibbons
    81.5   * @since 1.6
    81.6   */
    81.7 -@jdk.Supported
    81.8 +@jdk.Exported
    81.9  public interface ThrowTree extends StatementTree {
   81.10      ExpressionTree getExpression();
   81.11  }
    82.1 --- a/src/share/classes/com/sun/source/tree/Tree.java	Wed Oct 02 13:26:54 2013 -0700
    82.2 +++ b/src/share/classes/com/sun/source/tree/Tree.java	Tue Oct 08 14:59:46 2013 -0700
    82.3 @@ -39,13 +39,13 @@
    82.4   *
    82.5   * @since 1.6
    82.6   */
    82.7 -@jdk.Supported
    82.8 +@jdk.Exported
    82.9  public interface Tree {
   82.10  
   82.11      /**
   82.12       * Enumerates all kinds of trees.
   82.13       */
   82.14 -    @jdk.Supported
   82.15 +    @jdk.Exported
   82.16      public enum Kind {
   82.17  
   82.18          ANNOTATED_TYPE(AnnotatedTypeTree.class),
    83.1 --- a/src/share/classes/com/sun/source/tree/TreeVisitor.java	Wed Oct 02 13:26:54 2013 -0700
    83.2 +++ b/src/share/classes/com/sun/source/tree/TreeVisitor.java	Tue Oct 08 14:59:46 2013 -0700
    83.3 @@ -56,7 +56,7 @@
    83.4   *
    83.5   * @since 1.6
    83.6   */
    83.7 -@jdk.Supported
    83.8 +@jdk.Exported
    83.9  public interface TreeVisitor<R,P> {
   83.10      R visitAnnotatedType(AnnotatedTypeTree node, P p);
   83.11      R visitAnnotation(AnnotationTree node, P p);
    84.1 --- a/src/share/classes/com/sun/source/tree/TryTree.java	Wed Oct 02 13:26:54 2013 -0700
    84.2 +++ b/src/share/classes/com/sun/source/tree/TryTree.java	Tue Oct 08 14:59:46 2013 -0700
    84.3 @@ -45,7 +45,7 @@
    84.4   * @author Jonathan Gibbons
    84.5   * @since 1.6
    84.6   */
    84.7 -@jdk.Supported
    84.8 +@jdk.Exported
    84.9  public interface TryTree extends StatementTree {
   84.10      BlockTree getBlock();
   84.11      List<? extends CatchTree> getCatches();
    85.1 --- a/src/share/classes/com/sun/source/tree/TypeCastTree.java	Wed Oct 02 13:26:54 2013 -0700
    85.2 +++ b/src/share/classes/com/sun/source/tree/TypeCastTree.java	Tue Oct 08 14:59:46 2013 -0700
    85.3 @@ -39,7 +39,7 @@
    85.4   * @author Jonathan Gibbons
    85.5   * @since 1.6
    85.6   */
    85.7 -@jdk.Supported
    85.8 +@jdk.Exported
    85.9  public interface TypeCastTree extends ExpressionTree {
   85.10      Tree getType();
   85.11      ExpressionTree getExpression();
    86.1 --- a/src/share/classes/com/sun/source/tree/TypeParameterTree.java	Wed Oct 02 13:26:54 2013 -0700
    86.2 +++ b/src/share/classes/com/sun/source/tree/TypeParameterTree.java	Tue Oct 08 14:59:46 2013 -0700
    86.3 @@ -46,7 +46,7 @@
    86.4   * @author Jonathan Gibbons
    86.5   * @since 1.6
    86.6   */
    86.7 -@jdk.Supported
    86.8 +@jdk.Exported
    86.9  public interface TypeParameterTree extends Tree {
   86.10      Name getName();
   86.11      List<? extends Tree> getBounds();
    87.1 --- a/src/share/classes/com/sun/source/tree/UnaryTree.java	Wed Oct 02 13:26:54 2013 -0700
    87.2 +++ b/src/share/classes/com/sun/source/tree/UnaryTree.java	Tue Oct 08 14:59:46 2013 -0700
    87.3 @@ -42,7 +42,7 @@
    87.4   * @author Jonathan Gibbons
    87.5   * @since 1.6
    87.6   */
    87.7 -@jdk.Supported
    87.8 +@jdk.Exported
    87.9  public interface UnaryTree extends ExpressionTree {
   87.10      ExpressionTree getExpression();
   87.11  }
    88.1 --- a/src/share/classes/com/sun/source/tree/UnionTypeTree.java	Wed Oct 02 13:26:54 2013 -0700
    88.2 +++ b/src/share/classes/com/sun/source/tree/UnionTypeTree.java	Tue Oct 08 14:59:46 2013 -0700
    88.3 @@ -34,7 +34,7 @@
    88.4   *
    88.5   * @since 1.7
    88.6   */
    88.7 -@jdk.Supported
    88.8 +@jdk.Exported
    88.9  public interface UnionTypeTree extends Tree {
   88.10      List<? extends Tree> getTypeAlternatives();
   88.11  }
    89.1 --- a/src/share/classes/com/sun/source/tree/VariableTree.java	Wed Oct 02 13:26:54 2013 -0700
    89.2 +++ b/src/share/classes/com/sun/source/tree/VariableTree.java	Tue Oct 08 14:59:46 2013 -0700
    89.3 @@ -42,7 +42,7 @@
    89.4   * @author Jonathan Gibbons
    89.5   * @since 1.6
    89.6   */
    89.7 -@jdk.Supported
    89.8 +@jdk.Exported
    89.9  public interface VariableTree extends StatementTree {
   89.10      ModifiersTree getModifiers();
   89.11      Name getName();
    90.1 --- a/src/share/classes/com/sun/source/tree/WhileLoopTree.java	Wed Oct 02 13:26:54 2013 -0700
    90.2 +++ b/src/share/classes/com/sun/source/tree/WhileLoopTree.java	Tue Oct 08 14:59:46 2013 -0700
    90.3 @@ -41,7 +41,7 @@
    90.4   * @author Jonathan Gibbons
    90.5   * @since 1.6
    90.6   */
    90.7 -@jdk.Supported
    90.8 +@jdk.Exported
    90.9  public interface WhileLoopTree extends StatementTree {
   90.10      ExpressionTree getCondition();
   90.11      StatementTree getStatement();
    91.1 --- a/src/share/classes/com/sun/source/tree/WildcardTree.java	Wed Oct 02 13:26:54 2013 -0700
    91.2 +++ b/src/share/classes/com/sun/source/tree/WildcardTree.java	Tue Oct 08 14:59:46 2013 -0700
    91.3 @@ -44,7 +44,7 @@
    91.4   * @author Jonathan Gibbons
    91.5   * @since 1.6
    91.6   */
    91.7 -@jdk.Supported
    91.8 +@jdk.Exported
    91.9  public interface WildcardTree extends Tree {
   91.10      Tree getBound();
   91.11  }
    92.1 --- a/src/share/classes/com/sun/source/tree/package-info.java	Wed Oct 02 13:26:54 2013 -0700
    92.2 +++ b/src/share/classes/com/sun/source/tree/package-info.java	Tue Oct 08 14:59:46 2013 -0700
    92.3 @@ -31,5 +31,5 @@
    92.4   * @author Jonathan Gibbons
    92.5   * @since 1.6
    92.6   */
    92.7 -@jdk.Supported
    92.8 +@jdk.Exported
    92.9  package com.sun.source.tree;
    93.1 --- a/src/share/classes/com/sun/source/util/DocSourcePositions.java	Wed Oct 02 13:26:54 2013 -0700
    93.2 +++ b/src/share/classes/com/sun/source/util/DocSourcePositions.java	Tue Oct 08 14:59:46 2013 -0700
    93.3 @@ -36,7 +36,7 @@
    93.4   *
    93.5   * @since 1.8
    93.6   */
    93.7 -@jdk.Supported
    93.8 +@jdk.Exported
    93.9  public interface DocSourcePositions extends SourcePositions {
   93.10  
   93.11      /**
    94.1 --- a/src/share/classes/com/sun/source/util/DocTreePath.java	Wed Oct 02 13:26:54 2013 -0700
    94.2 +++ b/src/share/classes/com/sun/source/util/DocTreePath.java	Tue Oct 08 14:59:46 2013 -0700
    94.3 @@ -35,7 +35,7 @@
    94.4   *
    94.5   * @since 1.8
    94.6   */
    94.7 -@jdk.Supported
    94.8 +@jdk.Exported
    94.9  public class DocTreePath implements Iterable<DocTree> {
   94.10      /**
   94.11       * Gets a documentation tree path for a tree node within a compilation unit.
    95.1 --- a/src/share/classes/com/sun/source/util/DocTreePathScanner.java	Wed Oct 02 13:26:54 2013 -0700
    95.2 +++ b/src/share/classes/com/sun/source/util/DocTreePathScanner.java	Tue Oct 08 14:59:46 2013 -0700
    95.3 @@ -36,7 +36,7 @@
    95.4   *
    95.5   * @since 1.8
    95.6   */
    95.7 -@jdk.Supported
    95.8 +@jdk.Exported
    95.9  public class DocTreePathScanner<R, P> extends DocTreeScanner<R, P> {
   95.10      /**
   95.11       * Scan a tree from a position identified by a TreePath.
    96.1 --- a/src/share/classes/com/sun/source/util/DocTreeScanner.java	Wed Oct 02 13:26:54 2013 -0700
    96.2 +++ b/src/share/classes/com/sun/source/util/DocTreeScanner.java	Tue Oct 08 14:59:46 2013 -0700
    96.3 @@ -67,7 +67,7 @@
    96.4   *
    96.5   * @since 1.8
    96.6   */
    96.7 -@jdk.Supported
    96.8 +@jdk.Exported
    96.9  public class DocTreeScanner<R,P> implements DocTreeVisitor<R,P> {
   96.10  
   96.11      /**
    97.1 --- a/src/share/classes/com/sun/source/util/DocTrees.java	Wed Oct 02 13:26:54 2013 -0700
    97.2 +++ b/src/share/classes/com/sun/source/util/DocTrees.java	Tue Oct 08 14:59:46 2013 -0700
    97.3 @@ -37,7 +37,7 @@
    97.4   *
    97.5   * @since 1.8
    97.6   */
    97.7 -@jdk.Supported
    97.8 +@jdk.Exported
    97.9  public abstract class DocTrees extends Trees {
   97.10      /**
   97.11       * Gets a DocTrees object for a given CompilationTask.
    98.1 --- a/src/share/classes/com/sun/source/util/JavacTask.java	Wed Oct 02 13:26:54 2013 -0700
    98.2 +++ b/src/share/classes/com/sun/source/util/JavacTask.java	Tue Oct 08 14:59:46 2013 -0700
    98.3 @@ -48,7 +48,7 @@
    98.4   * @author Jonathan Gibbons
    98.5   * @since 1.6
    98.6   */
    98.7 -@jdk.Supported
    98.8 +@jdk.Exported
    98.9  public abstract class JavacTask implements CompilationTask {
   98.10  
   98.11      /**
    99.1 --- a/src/share/classes/com/sun/source/util/Plugin.java	Wed Oct 02 13:26:54 2013 -0700
    99.2 +++ b/src/share/classes/com/sun/source/util/Plugin.java	Tue Oct 08 14:59:46 2013 -0700
    99.3 @@ -48,7 +48,7 @@
    99.4   *
    99.5   * @since 1.8
    99.6   */
    99.7 -@jdk.Supported
    99.8 +@jdk.Exported
    99.9  public interface Plugin {
   99.10      /**
   99.11       * Get the user-friendly name of this plug-in.
   100.1 --- a/src/share/classes/com/sun/source/util/SimpleDocTreeVisitor.java	Wed Oct 02 13:26:54 2013 -0700
   100.2 +++ b/src/share/classes/com/sun/source/util/SimpleDocTreeVisitor.java	Tue Oct 08 14:59:46 2013 -0700
   100.3 @@ -32,7 +32,7 @@
   100.4   *
   100.5   * @since 1.8
   100.6   */
   100.7 -@jdk.Supported
   100.8 +@jdk.Exported
   100.9  public class SimpleDocTreeVisitor<R,P> implements DocTreeVisitor<R, P> {
  100.10      protected final R DEFAULT_VALUE;
  100.11  
   101.1 --- a/src/share/classes/com/sun/source/util/SimpleTreeVisitor.java	Wed Oct 02 13:26:54 2013 -0700
   101.2 +++ b/src/share/classes/com/sun/source/util/SimpleTreeVisitor.java	Tue Oct 08 14:59:46 2013 -0700
   101.3 @@ -33,7 +33,7 @@
   101.4   * @author Peter von der Ah&eacute;
   101.5   * @since 1.6
   101.6   */
   101.7 -@jdk.Supported
   101.8 +@jdk.Exported
   101.9  public class SimpleTreeVisitor <R,P> implements TreeVisitor<R,P> {
  101.10      protected final R DEFAULT_VALUE;
  101.11  
   102.1 --- a/src/share/classes/com/sun/source/util/SourcePositions.java	Wed Oct 02 13:26:54 2013 -0700
   102.2 +++ b/src/share/classes/com/sun/source/util/SourcePositions.java	Tue Oct 08 14:59:46 2013 -0700
   102.3 @@ -35,7 +35,7 @@
   102.4   * @author Peter von der Ah&eacute;
   102.5   * @since 1.6
   102.6   */
   102.7 -@jdk.Supported
   102.8 +@jdk.Exported
   102.9  public interface SourcePositions {
  102.10  
  102.11      /**
   103.1 --- a/src/share/classes/com/sun/source/util/TaskEvent.java	Wed Oct 02 13:26:54 2013 -0700
   103.2 +++ b/src/share/classes/com/sun/source/util/TaskEvent.java	Tue Oct 08 14:59:46 2013 -0700
   103.3 @@ -36,14 +36,14 @@
   103.4   * @author Jonathan Gibbons
   103.5   * @since 1.6
   103.6   */
   103.7 -@jdk.Supported
   103.8 +@jdk.Exported
   103.9  public final class TaskEvent
  103.10  {
  103.11      /**
  103.12       * Kind of task event.
  103.13       * @since 1.6
  103.14       */
  103.15 -    @jdk.Supported
  103.16 +    @jdk.Exported
  103.17      public enum Kind {
  103.18          /**
  103.19           * For events related to the parsing of a file.
   104.1 --- a/src/share/classes/com/sun/source/util/TaskListener.java	Wed Oct 02 13:26:54 2013 -0700
   104.2 +++ b/src/share/classes/com/sun/source/util/TaskListener.java	Tue Oct 08 14:59:46 2013 -0700
   104.3 @@ -32,7 +32,7 @@
   104.4   * @author Jonathan Gibbons
   104.5   * @since 1.6
   104.6   */
   104.7 -@jdk.Supported
   104.8 +@jdk.Exported
   104.9  public interface TaskListener
  104.10  {
  104.11      public void started(TaskEvent e);
   105.1 --- a/src/share/classes/com/sun/source/util/TreePath.java	Wed Oct 02 13:26:54 2013 -0700
   105.2 +++ b/src/share/classes/com/sun/source/util/TreePath.java	Tue Oct 08 14:59:46 2013 -0700
   105.3 @@ -36,7 +36,7 @@
   105.4   * @author Jonathan Gibbons
   105.5   * @since 1.6
   105.6   */
   105.7 -@jdk.Supported
   105.8 +@jdk.Exported
   105.9  public class TreePath implements Iterable<Tree> {
  105.10      /**
  105.11       * Gets a tree path for a tree node within a compilation unit.
   106.1 --- a/src/share/classes/com/sun/source/util/TreePathScanner.java	Wed Oct 02 13:26:54 2013 -0700
   106.2 +++ b/src/share/classes/com/sun/source/util/TreePathScanner.java	Tue Oct 08 14:59:46 2013 -0700
   106.3 @@ -38,7 +38,7 @@
   106.4   * @author Jonathan Gibbons
   106.5   * @since 1.6
   106.6   */
   106.7 -@jdk.Supported
   106.8 +@jdk.Exported
   106.9  public class TreePathScanner<R, P> extends TreeScanner<R, P> {
  106.10  
  106.11      /**
   107.1 --- a/src/share/classes/com/sun/source/util/TreeScanner.java	Wed Oct 02 13:26:54 2013 -0700
   107.2 +++ b/src/share/classes/com/sun/source/util/TreeScanner.java	Tue Oct 08 14:59:46 2013 -0700
   107.3 @@ -68,7 +68,7 @@
   107.4   * @author Jonathan Gibbons
   107.5   * @since 1.6
   107.6   */
   107.7 -@jdk.Supported
   107.8 +@jdk.Exported
   107.9  public class TreeScanner<R,P> implements TreeVisitor<R,P> {
  107.10  
  107.11      /** Scan a single node.
   108.1 --- a/src/share/classes/com/sun/source/util/Trees.java	Wed Oct 02 13:26:54 2013 -0700
   108.2 +++ b/src/share/classes/com/sun/source/util/Trees.java	Tue Oct 08 14:59:46 2013 -0700
   108.3 @@ -51,7 +51,7 @@
   108.4   *
   108.5   * @author Peter von der Ah&eacute;
   108.6   */
   108.7 -@jdk.Supported
   108.8 +@jdk.Exported
   108.9  public abstract class Trees {
  108.10      /**
  108.11       * Gets a Trees object for a given CompilationTask.
   109.1 --- a/src/share/classes/com/sun/source/util/package-info.java	Wed Oct 02 13:26:54 2013 -0700
   109.2 +++ b/src/share/classes/com/sun/source/util/package-info.java	Tue Oct 08 14:59:46 2013 -0700
   109.3 @@ -30,5 +30,5 @@
   109.4   * @author Jonathan Gibbons
   109.5   * @since 1.6
   109.6   */
   109.7 -@jdk.Supported
   109.8 +@jdk.Exported
   109.9  package com.sun.source.util;
   110.1 --- a/src/share/classes/com/sun/tools/doclets/formats/html/AbstractMemberWriter.java	Wed Oct 02 13:26:54 2013 -0700
   110.2 +++ b/src/share/classes/com/sun/tools/doclets/formats/html/AbstractMemberWriter.java	Tue Oct 08 14:59:46 2013 -0700
   110.3 @@ -413,7 +413,7 @@
   110.4      protected void addDeprecatedAPI(List<Doc> deprmembers, String headingKey,
   110.5              String tableSummary, String[] tableHeader, Content contentTree) {
   110.6          if (deprmembers.size() > 0) {
   110.7 -            Content table = HtmlTree.TABLE(0, 3, 0, tableSummary,
   110.8 +            Content table = HtmlTree.TABLE(HtmlStyle.deprecatedSummary, 0, 3, 0, tableSummary,
   110.9                  writer.getTableCaption(configuration.getResource(headingKey)));
  110.10              table.addContent(writer.getSummaryTableHeader(tableHeader, "col"));
  110.11              Content tbody = new HtmlTree(HtmlTag.TBODY);
  110.12 @@ -453,7 +453,7 @@
  110.13          List<? extends ProgramElementDoc> members = mems;
  110.14          boolean printedUseTableHeader = false;
  110.15          if (members.size() > 0) {
  110.16 -            Content table = HtmlTree.TABLE(0, 3, 0, tableSummary,
  110.17 +            Content table = HtmlTree.TABLE(HtmlStyle.useSummary, 0, 3, 0, tableSummary,
  110.18                      writer.getTableCaption(heading));
  110.19              Content tbody = new HtmlTree(HtmlTag.TBODY);
  110.20              Iterator<? extends ProgramElementDoc> it = members.iterator();
   111.1 --- a/src/share/classes/com/sun/tools/doclets/formats/html/ClassUseWriter.java	Wed Oct 02 13:26:54 2013 -0700
   111.2 +++ b/src/share/classes/com/sun/tools/doclets/formats/html/ClassUseWriter.java	Tue Oct 08 14:59:46 2013 -0700
   111.3 @@ -263,7 +263,7 @@
   111.4       * @param contentTree the content tree to which the packages list will be added
   111.5       */
   111.6      protected void addPackageList(Content contentTree) throws IOException {
   111.7 -        Content table = HtmlTree.TABLE(0, 3, 0, useTableSummary,
   111.8 +        Content table = HtmlTree.TABLE(HtmlStyle.useSummary, 0, 3, 0, useTableSummary,
   111.9                  getTableCaption(configuration.getResource(
  111.10                  "doclet.ClassUse_Packages.that.use.0",
  111.11                  getLink(new LinkInfoImpl(configuration, LinkInfoImpl.Kind.CLASS_USE_HEADER, classdoc
  111.12 @@ -298,7 +298,7 @@
  111.13                  pkgToPackageAnnotations.isEmpty()) {
  111.14              return;
  111.15          }
  111.16 -        Content table = HtmlTree.TABLE(0, 3, 0, useTableSummary,
  111.17 +        Content table = HtmlTree.TABLE(HtmlStyle.useSummary, 0, 3, 0, useTableSummary,
  111.18                  getTableCaption(configuration.getResource(
  111.19                  "doclet.ClassUse_PackageAnnotation",
  111.20                  getLink(new LinkInfoImpl(configuration,
   112.1 --- a/src/share/classes/com/sun/tools/doclets/formats/html/ConstantsSummaryWriterImpl.java	Wed Oct 02 13:26:54 2013 -0700
   112.2 +++ b/src/share/classes/com/sun/tools/doclets/formats/html/ConstantsSummaryWriterImpl.java	Tue Oct 08 14:59:46 2013 -0700
   112.3 @@ -207,7 +207,7 @@
   112.4       * @return the table caption and header
   112.5       */
   112.6      protected Content getClassName(Content classStr) {
   112.7 -        Content table = HtmlTree.TABLE(0, 3, 0, constantsTableSummary,
   112.8 +        Content table = HtmlTree.TABLE(HtmlStyle.constantsSummary, 0, 3, 0, constantsTableSummary,
   112.9                  getTableCaption(classStr));
  112.10          table.addContent(getSummaryTableHeader(constantsTableHeader, "col"));
  112.11          return table;
   113.1 --- a/src/share/classes/com/sun/tools/doclets/formats/html/HtmlDoclet.java	Wed Oct 02 13:26:54 2013 -0700
   113.2 +++ b/src/share/classes/com/sun/tools/doclets/formats/html/HtmlDoclet.java	Tue Oct 08 14:59:46 2013 -0700
   113.3 @@ -194,6 +194,10 @@
   113.4                              .getClassBuilder(curr, prev, next, classtree);
   113.5                      classBuilder.build();
   113.6                  }
   113.7 +            } catch (IOException e) {
   113.8 +                throw new DocletAbortException(e);
   113.9 +            } catch (DocletAbortException de) {
  113.10 +                throw de;
  113.11              } catch (Exception e) {
  113.12                  e.printStackTrace();
  113.13                  throw new DocletAbortException(e);
   114.1 --- a/src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java	Wed Oct 02 13:26:54 2013 -0700
   114.2 +++ b/src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java	Tue Oct 08 14:59:46 2013 -0700
   114.3 @@ -356,7 +356,7 @@
   114.4          if(classes.length > 0) {
   114.5              Arrays.sort(classes);
   114.6              Content caption = getTableCaption(new RawHtml(label));
   114.7 -            Content table = HtmlTree.TABLE(HtmlStyle.packageSummary, 0, 3, 0,
   114.8 +            Content table = HtmlTree.TABLE(HtmlStyle.typeSummary, 0, 3, 0,
   114.9                      tableSummary, caption);
  114.10              table.addContent(getSummaryTableHeader(tableHeader, "col"));
  114.11              Content tbody = new HtmlTree(HtmlTag.TBODY);
  114.12 @@ -937,7 +937,7 @@
  114.13      protected void addPackageDeprecatedAPI(List<Doc> deprPkgs, String headingKey,
  114.14              String tableSummary, String[] tableHeader, Content contentTree) {
  114.15          if (deprPkgs.size() > 0) {
  114.16 -            Content table = HtmlTree.TABLE(0, 3, 0, tableSummary,
  114.17 +            Content table = HtmlTree.TABLE(HtmlStyle.deprecatedSummary, 0, 3, 0, tableSummary,
  114.18                      getTableCaption(configuration.getResource(headingKey)));
  114.19              table.addContent(getSummaryTableHeader(tableHeader, "col"));
  114.20              Content tbody = new HtmlTree(HtmlTag.TBODY);
   115.1 --- a/src/share/classes/com/sun/tools/doclets/formats/html/PackageUseWriter.java	Wed Oct 02 13:26:54 2013 -0700
   115.2 +++ b/src/share/classes/com/sun/tools/doclets/formats/html/PackageUseWriter.java	Tue Oct 08 14:59:46 2013 -0700
   115.3 @@ -151,7 +151,7 @@
   115.4       * @param contentTree the content tree to which the package list will be added
   115.5       */
   115.6      protected void addPackageList(Content contentTree) throws IOException {
   115.7 -        Content table = HtmlTree.TABLE(0, 3, 0, useTableSummary,
   115.8 +        Content table = HtmlTree.TABLE(HtmlStyle.useSummary, 0, 3, 0, useTableSummary,
   115.9                  getTableCaption(configuration.getResource(
  115.10                  "doclet.ClassUse_Packages.that.use.0",
  115.11                  getPackageLink(pkgdoc, Util.getPackageName(pkgdoc)))));
  115.12 @@ -196,7 +196,7 @@
  115.13              }
  115.14              String tableSummary = configuration.getText("doclet.Use_Table_Summary",
  115.15                      configuration.getText("doclet.classes"));
  115.16 -            Content table = HtmlTree.TABLE(0, 3, 0, tableSummary,
  115.17 +            Content table = HtmlTree.TABLE(HtmlStyle.useSummary, 0, 3, 0, tableSummary,
  115.18                      getTableCaption(configuration.getResource(
  115.19                      "doclet.ClassUse_Classes.in.0.used.by.1",
  115.20                      getPackageLink(pkgdoc, Util.getPackageName(pkgdoc)),
   116.1 --- a/src/share/classes/com/sun/tools/doclets/formats/html/PackageWriterImpl.java	Wed Oct 02 13:26:54 2013 -0700
   116.2 +++ b/src/share/classes/com/sun/tools/doclets/formats/html/PackageWriterImpl.java	Tue Oct 08 14:59:46 2013 -0700
   116.3 @@ -169,7 +169,7 @@
   116.4          if(classes.length > 0) {
   116.5              Arrays.sort(classes);
   116.6              Content caption = getTableCaption(new RawHtml(label));
   116.7 -            Content table = HtmlTree.TABLE(HtmlStyle.packageSummary, 0, 3, 0,
   116.8 +            Content table = HtmlTree.TABLE(HtmlStyle.typeSummary, 0, 3, 0,
   116.9                      tableSummary, caption);
  116.10              table.addContent(getSummaryTableHeader(tableHeader, "col"));
  116.11              Content tbody = new HtmlTree(HtmlTag.TBODY);
   117.1 --- a/src/share/classes/com/sun/tools/doclets/formats/html/SubWriterHolderWriter.java	Wed Oct 02 13:26:54 2013 -0700
   117.2 +++ b/src/share/classes/com/sun/tools/doclets/formats/html/SubWriterHolderWriter.java	Tue Oct 08 14:59:46 2013 -0700
   117.3 @@ -92,7 +92,7 @@
   117.4          else {
   117.5              caption = getTableCaption(mw.getCaption());
   117.6          }
   117.7 -        Content table = HtmlTree.TABLE(HtmlStyle.overviewSummary, 0, 3, 0,
   117.8 +        Content table = HtmlTree.TABLE(HtmlStyle.memberSummary, 0, 3, 0,
   117.9                  mw.getTableSummary(), caption);
  117.10          table.addContent(getSummaryTableHeader(mw.getSummaryTableHeader(cd), "col"));
  117.11          for (int i = 0; i < tableContents.size(); i++) {
   118.1 --- a/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlStyle.java	Wed Oct 02 13:26:54 2013 -0700
   118.2 +++ b/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlStyle.java	Tue Oct 08 14:59:46 2013 -0700
   118.3 @@ -48,8 +48,11 @@
   118.4      colFirst,
   118.5      colLast,
   118.6      colOne,
   118.7 +    constantsSummary,
   118.8      constantValuesContainer,
   118.9      contentContainer,
  118.10 +    deprecatedContent,
  118.11 +    deprecatedSummary,
  118.12      description,
  118.13      details,
  118.14      docSummary,
  118.15 @@ -61,11 +64,11 @@
  118.16      inheritance,
  118.17      italic,
  118.18      legalCopy,
  118.19 +    memberSummary,
  118.20      nameValue,
  118.21      navBarCell1Rev,
  118.22      navList,
  118.23      overviewSummary,
  118.24 -    packageSummary,
  118.25      rowColor,
  118.26      serializedFormContainer,
  118.27      skipNav,
  118.28 @@ -76,9 +79,10 @@
  118.29      subNavList,
  118.30      subTitle,
  118.31      summary,
  118.32 -    deprecatedContent,
  118.33      tabEnd,
  118.34      tableTab,
  118.35      title,
  118.36 -    topNav;
  118.37 +    topNav,
  118.38 +    typeSummary,
  118.39 +    useSummary;
  118.40  }
   119.1 --- a/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlTree.java	Wed Oct 02 13:26:54 2013 -0700
   119.2 +++ b/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlTree.java	Tue Oct 08 14:59:46 2013 -0700
   119.3 @@ -619,25 +619,6 @@
   119.4      }
   119.5  
   119.6      /**
   119.7 -     * Generates a Table tag with border, width and summary attributes and
   119.8 -     * some content.
   119.9 -     *
  119.10 -     * @param border border for the table
  119.11 -     * @param width width of the table
  119.12 -     * @param summary summary for the table
  119.13 -     * @param body content for the table
  119.14 -     * @return an HtmlTree object for the TABLE tag
  119.15 -     */
  119.16 -    public static HtmlTree TABLE(int border, int width, String summary,
  119.17 -            Content body) {
  119.18 -        HtmlTree htmltree = new HtmlTree(HtmlTag.TABLE, nullCheck(body));
  119.19 -        htmltree.addAttr(HtmlAttr.BORDER, Integer.toString(border));
  119.20 -        htmltree.addAttr(HtmlAttr.WIDTH, Integer.toString(width));
  119.21 -        htmltree.addAttr(HtmlAttr.SUMMARY, nullCheck(summary));
  119.22 -        return htmltree;
  119.23 -    }
  119.24 -
  119.25 -    /**
  119.26       * Generates a Table tag with style class, border, cell padding,
  119.27       * cellspacing and summary attributes and some content.
  119.28       *
  119.29 @@ -662,22 +643,6 @@
  119.30      }
  119.31  
  119.32      /**
  119.33 -     * Generates a Table tag with border, cell padding,
  119.34 -     * cellspacing and summary attributes and some content.
  119.35 -     *
  119.36 -     * @param border border for the table
  119.37 -     * @param cellPadding cell padding for the table
  119.38 -     * @param cellSpacing cell spacing for the table
  119.39 -     * @param summary summary for the table
  119.40 -     * @param body content for the table
  119.41 -     * @return an HtmlTree object for the TABLE tag
  119.42 -     */
  119.43 -    public static HtmlTree TABLE(int border, int cellPadding,
  119.44 -            int cellSpacing, String summary, Content body) {
  119.45 -        return TABLE(null, border, cellPadding, cellSpacing, summary, body);
  119.46 -    }
  119.47 -
  119.48 -    /**
  119.49       * Generates a TD tag with style class attribute and some content.
  119.50       *
  119.51       * @param styleClass style for the tag
   120.1 --- a/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlWriter.java	Wed Oct 02 13:26:54 2013 -0700
   120.2 +++ b/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlWriter.java	Tue Oct 08 14:59:46 2013 -0700
   120.3 @@ -310,8 +310,12 @@
   120.4          if(winTitle != null && winTitle.length() > 0) {
   120.5              script.addAttr(HtmlAttr.TYPE, "text/javascript");
   120.6              String scriptCode = "<!--" + DocletConstants.NL +
   120.7 -                    "    if (location.href.indexOf('is-external=true') == -1) {" + DocletConstants.NL +
   120.8 -                    "        parent.document.title=\"" + winTitle + "\";" + DocletConstants.NL +
   120.9 +                    "    try {" + DocletConstants.NL +
  120.10 +                    "        if (location.href.indexOf('is-external=true') == -1) {" + DocletConstants.NL +
  120.11 +                    "            parent.document.title=\"" + winTitle + "\";" + DocletConstants.NL +
  120.12 +                    "        }" + DocletConstants.NL +
  120.13 +                    "    }" + DocletConstants.NL +
  120.14 +                    "    catch(err) {" + DocletConstants.NL +
  120.15                      "    }" + DocletConstants.NL +
  120.16                      "//-->" + DocletConstants.NL;
  120.17              RawHtml scriptContent = new RawHtml(scriptCode);
   121.1 --- a/src/share/classes/com/sun/tools/doclets/internal/toolkit/AbstractDoclet.java	Wed Oct 02 13:26:54 2013 -0700
   121.2 +++ b/src/share/classes/com/sun/tools/doclets/internal/toolkit/AbstractDoclet.java	Tue Oct 08 14:59:46 2013 -0700
   121.3 @@ -83,6 +83,16 @@
   121.4          } catch (Configuration.Fault f) {
   121.5              root.printError(f.getMessage());
   121.6              return false;
   121.7 +        } catch (DocletAbortException e) {
   121.8 +            Throwable cause = e.getCause();
   121.9 +            if (cause != null) {
  121.10 +                if (cause.getLocalizedMessage() != null) {
  121.11 +                    root.printError(cause.getLocalizedMessage());
  121.12 +                } else {
  121.13 +                    root.printError(cause.toString());
  121.14 +                }
  121.15 +            }
  121.16 +            return false;
  121.17          } catch (Exception exc) {
  121.18              exc.printStackTrace();
  121.19              return false;
   122.1 --- a/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/AbstractBuilder.java	Wed Oct 02 13:26:54 2013 -0700
   122.2 +++ b/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/AbstractBuilder.java	Tue Oct 08 14:59:46 2013 -0700
   122.3 @@ -140,7 +140,7 @@
   122.4              configuration.root.printError("Unknown element: " + component);
   122.5              throw new DocletAbortException(e);
   122.6          } catch (InvocationTargetException e) {
   122.7 -            e.getCause().printStackTrace();
   122.8 +            throw new DocletAbortException(e.getCause());
   122.9          } catch (Exception e) {
  122.10              e.printStackTrace();
  122.11              configuration.root.printError("Exception " +
   123.1 --- a/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/stylesheet.css	Wed Oct 02 13:26:54 2013 -0700
   123.2 +++ b/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/stylesheet.css	Tue Oct 08 14:59:46 2013 -0700
   123.3 @@ -348,27 +348,16 @@
   123.4  /*
   123.5  Table styles
   123.6  */
   123.7 -.contentContainer table, .classUseContainer table, .constantValuesContainer table {
   123.8 +.overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary {
   123.9      border-bottom:1px solid #9eadc0;
  123.10 +    margin:0 0 12px 0px;
  123.11      width:100%;
  123.12  }
  123.13 -.contentContainer ul li table, .classUseContainer ul li table, .constantValuesContainer ul li table {
  123.14 -    width:100%;
  123.15 +.overviewSummary, .memberSummary  {
  123.16 +    padding:0px;
  123.17  }
  123.18 -.contentContainer .description table, .contentContainer .details table {
  123.19 -    border-bottom:none;
  123.20 -}
  123.21 -.contentContainer ul li table th.colOne, .contentContainer ul li table th.colFirst, .contentContainer ul li table th.colLast, .classUseContainer ul li table th, .constantValuesContainer ul li table th, .contentContainer ul li table td.colOne, .contentContainer ul li table td.colFirst, .contentContainer ul li table td.colLast, .classUseContainer ul li table td, .constantValuesContainer ul li table td{
  123.22 -    vertical-align:top;
  123.23 -    padding-right:20px;
  123.24 -}
  123.25 -.contentContainer ul li table th.colLast, .classUseContainer ul li table th.colLast,.constantValuesContainer ul li table th.colLast,
  123.26 -.contentContainer ul li table td.colLast, .classUseContainer ul li table td.colLast,.constantValuesContainer ul li table td.colLast,
  123.27 -.contentContainer ul li table th.colOne, .classUseContainer ul li table th.colOne,
  123.28 -.contentContainer ul li table td.colOne, .classUseContainer ul li table td.colOne {
  123.29 -    padding-right:3px;
  123.30 -}
  123.31 -.overviewSummary caption, .packageSummary caption, .contentContainer ul.blockList li.blockList caption, .summary caption, .classUseContainer caption, .constantValuesContainer caption {
  123.32 +.overviewSummary caption, .memberSummary caption, .typeSummary caption,
  123.33 +.useSummary caption, .constantsSummary caption, .deprecatedSummary caption {
  123.34      position:relative;
  123.35      text-align:left;
  123.36      background-repeat:no-repeat;
  123.37 @@ -379,10 +368,18 @@
  123.38      padding:0px;
  123.39      margin:0px;
  123.40  }
  123.41 -caption a:link, caption a:hover, caption a:active, caption a:visited {
  123.42 +.overviewSummary caption a:link, .memberSummary caption a:link, .typeSummary caption a:link,
  123.43 +.useSummary caption a:link, .constantsSummary caption a:link, .deprecatedSummary caption a:link,
  123.44 +.overviewSummary caption a:hover, .memberSummary caption a:hover, .typeSummary caption a:hover,
  123.45 +.useSummary caption a:hover, .constantsSummary caption a:hover, .deprecatedSummary caption a:hover,
  123.46 +.overviewSummary caption a:active, .memberSummary caption a:active, .typeSummary caption a:active,
  123.47 +.useSummary caption a:active, .constantsSummary caption a:active, .deprecatedSummary caption a:active,
  123.48 +.overviewSummary caption a:visited, .memberSummary caption a:visited, .typeSummary caption a:visited,
  123.49 +.useSummary caption a:visited, .constantsSummary caption a:visited, .deprecatedSummary caption a:visited {
  123.50      color:#FFFFFF;
  123.51  }
  123.52 -.overviewSummary caption span, .packageSummary caption span, .contentContainer ul.blockList li.blockList caption span, .summary caption span, .classUseContainer caption span, .constantValuesContainer caption span {
  123.53 +.overviewSummary caption span, .memberSummary caption span, .typeSummary caption span,
  123.54 +.useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span {
  123.55      white-space:nowrap;
  123.56      padding-top:8px;
  123.57      padding-left:8px;
  123.58 @@ -390,7 +387,7 @@
  123.59      float:left;
  123.60      background-image:url(resources/titlebar.gif);
  123.61  }
  123.62 -.contentContainer ul.blockList li.blockList caption span.activeTableTab span {
  123.63 +.memberSummary caption span.activeTableTab span {
  123.64      white-space:nowrap;
  123.65      padding-top:8px;
  123.66      padding-left:8px;
  123.67 @@ -398,7 +395,7 @@
  123.68      float:left;
  123.69      background-image:url(resources/activetitlebar.gif);
  123.70  }
  123.71 -.contentContainer ul.blockList li.blockList caption span.tableTab span {
  123.72 +.memberSummary caption span.tableTab span {
  123.73      white-space:nowrap;
  123.74      padding-top:8px;
  123.75      padding-left:8px;
  123.76 @@ -406,14 +403,15 @@
  123.77      float:left;
  123.78      background-image:url(resources/titlebar.gif);
  123.79  }
  123.80 -.contentContainer ul.blockList li.blockList caption span.tableTab, .contentContainer ul.blockList li.blockList caption span.activeTableTab {
  123.81 +.memberSummary caption span.tableTab, .memberSummary caption span.activeTableTab {
  123.82      padding-top:0px;
  123.83      padding-left:0px;
  123.84      background-image:none;
  123.85      float:none;
  123.86      display:inline-block;
  123.87  }
  123.88 -.overviewSummary .tabEnd, .packageSummary .tabEnd, .contentContainer ul.blockList li.blockList .tabEnd, .summary .tabEnd, .classUseContainer .tabEnd, .constantValuesContainer .tabEnd {
  123.89 +.overviewSummary .tabEnd, .memberSummary .tabEnd, .typeSummary .tabEnd,
  123.90 +.useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd {
  123.91      width:10px;
  123.92      background-image:url(resources/titlebar_end.gif);
  123.93      background-repeat:no-repeat;
  123.94 @@ -421,7 +419,7 @@
  123.95      position:relative;
  123.96      float:left;
  123.97  }
  123.98 -.contentContainer ul.blockList li.blockList .activeTableTab .tabEnd {
  123.99 +.memberSummary .activeTableTab .tabEnd {
 123.100      width:10px;
 123.101      margin-right:5px;
 123.102      background-image:url(resources/activetitlebar_end.gif);
 123.103 @@ -430,7 +428,7 @@
 123.104      position:relative;
 123.105      float:left;
 123.106  }
 123.107 -.contentContainer ul.blockList li.blockList .tableTab .tabEnd {
 123.108 +.memberSummary .tableTab .tabEnd {
 123.109      width:10px;
 123.110      margin-right:5px;
 123.111      background-image:url(resources/titlebar_end.gif);
 123.112 @@ -439,33 +437,23 @@
 123.113      position:relative;
 123.114      float:left;
 123.115  }
 123.116 -ul.blockList ul.blockList li.blockList table {
 123.117 -    margin:0 0 12px 0px;
 123.118 -    width:100%;
 123.119 -}
 123.120 -.tableSubHeadingColor {
 123.121 -    background-color: #EEEEFF;
 123.122 -}
 123.123 -.altColor {
 123.124 -    background-color:#eeeeef;
 123.125 -}
 123.126 -.rowColor {
 123.127 -    background-color:#ffffff;
 123.128 -}
 123.129 -.overviewSummary td, .packageSummary td, .contentContainer ul.blockList li.blockList td, .summary td, .classUseContainer td, .constantValuesContainer td {
 123.130 +.overviewSummary td, .memberSummary td, .typeSummary td,
 123.131 +.useSummary td, .constantsSummary td, .deprecatedSummary td {
 123.132      text-align:left;
 123.133      padding:3px 3px 3px 7px;
 123.134  }
 123.135 -th.colFirst, th.colLast, th.colOne, .constantValuesContainer th {
 123.136 +th.colOne, th.colFirst, th.colLast, .useSummary th, .constantsSummary th,
 123.137 +td.colOne, td.colFirst, td.colLast, .useSummary td, .constantsSummary td{
 123.138 +    vertical-align:top;
 123.139 +    padding-right:3px;
 123.140 +}
 123.141 +th.colFirst, th.colLast, th.colOne, .constantsSummary th {
 123.142      background:#dee3e9;
 123.143      border-top:1px solid #9eadc0;
 123.144      border-bottom:1px solid #9eadc0;
 123.145      text-align:left;
 123.146      padding:3px 3px 3px 7px;
 123.147  }
 123.148 -td.colOne a:link, td.colOne a:active, td.colOne a:visited, td.colOne a:hover, td.colFirst a:link, td.colFirst a:active, td.colFirst a:visited, td.colFirst a:hover, td.colLast a:link, td.colLast a:active, td.colLast a:visited, td.colLast a:hover, .constantValuesContainer td a:link, .constantValuesContainer td a:active, .constantValuesContainer td a:visited, .constantValuesContainer td a:hover {
 123.149 -    font-weight:bold;
 123.150 -}
 123.151  td.colFirst, th.colFirst {
 123.152      border-left:1px solid #9eadc0;
 123.153      white-space:nowrap;
 123.154 @@ -477,18 +465,25 @@
 123.155      border-right:1px solid #9eadc0;
 123.156      border-left:1px solid #9eadc0;
 123.157  }
 123.158 -table.overviewSummary  {
 123.159 -    padding:0px;
 123.160 -    margin-left:0px;
 123.161 -}
 123.162 -table.overviewSummary td.colFirst, table.overviewSummary th.colFirst,
 123.163 -table.overviewSummary td.colOne, table.overviewSummary th.colOne {
 123.164 +.overviewSummary td.colFirst, .overviewSummary th.colFirst,
 123.165 +.overviewSummary td.colOne, .overviewSummary th.colOne,
 123.166 +.memberSummary td.colFirst, .memberSummary th.colFirst,
 123.167 +.memberSummary td.colOne, .memberSummary th.colOne,
 123.168 +.typeSummary td.colFirst{
 123.169      width:25%;
 123.170      vertical-align:middle;
 123.171  }
 123.172 -table.packageSummary td.colFirst, table.overviewSummary th.colFirst {
 123.173 -    width:25%;
 123.174 -    vertical-align:middle;
 123.175 +td.colOne a:link, td.colOne a:active, td.colOne a:visited, td.colOne a:hover, td.colFirst a:link, td.colFirst a:active, td.colFirst a:visited, td.colFirst a:hover, td.colLast a:link, td.colLast a:active, td.colLast a:visited, td.colLast a:hover, .constantValuesContainer td a:link, .constantValuesContainer td a:active, .constantValuesContainer td a:visited, .constantValuesContainer td a:hover {
 123.176 +    font-weight:bold;
 123.177 +}
 123.178 +.tableSubHeadingColor {
 123.179 +    background-color: #EEEEFF;
 123.180 +}
 123.181 +.altColor {
 123.182 +    background-color:#eeeeef;
 123.183 +}
 123.184 +.rowColor {
 123.185 +    background-color:#ffffff;
 123.186  }
 123.187  /*
 123.188  Content styles
   124.1 --- a/src/share/classes/com/sun/tools/javac/Main.java	Wed Oct 02 13:26:54 2013 -0700
   124.2 +++ b/src/share/classes/com/sun/tools/javac/Main.java	Tue Oct 08 14:59:46 2013 -0700
   124.3 @@ -31,7 +31,7 @@
   124.4   * The programmatic interface for the Java Programming Language
   124.5   * compiler, javac.
   124.6   */
   124.7 -@jdk.Supported
   124.8 +@jdk.Exported
   124.9  public class Main {
  124.10  
  124.11      /** Main entry point for the launcher.
   125.1 --- a/src/share/classes/com/sun/tools/javac/api/JavacTool.java	Wed Oct 02 13:26:54 2013 -0700
   125.2 +++ b/src/share/classes/com/sun/tools/javac/api/JavacTool.java	Tue Oct 08 14:59:46 2013 -0700
   125.3 @@ -1,5 +1,5 @@
   125.4  /*
   125.5 - * Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
   125.6 + * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
   125.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   125.8   *
   125.9   * This code is free software; you can redistribute it and/or modify it
  125.10 @@ -120,7 +120,6 @@
  125.11          try {
  125.12              ClientCodeWrapper ccw = ClientCodeWrapper.instance(context);
  125.13  
  125.14 -            final String kindMsg = "All compilation units must be of SOURCE kind";
  125.15              if (options != null)
  125.16                  for (String option : options)
  125.17                      option.getClass(); // null check
  125.18 @@ -132,8 +131,11 @@
  125.19              if (compilationUnits != null) {
  125.20                  compilationUnits = ccw.wrapJavaFileObjects(compilationUnits); // implicit null check
  125.21                  for (JavaFileObject cu : compilationUnits) {
  125.22 -                    if (cu.getKind() != JavaFileObject.Kind.SOURCE)
  125.23 +                    if (cu.getKind() != JavaFileObject.Kind.SOURCE) {
  125.24 +                        String kindMsg = "Compilation unit is not of SOURCE kind: "
  125.25 +                                + "\"" + cu.getName() + "\"";
  125.26                          throw new IllegalArgumentException(kindMsg);
  125.27 +                    }
  125.28                  }
  125.29              }
  125.30  
   126.1 --- a/src/share/classes/com/sun/tools/javac/code/Symbol.java	Wed Oct 02 13:26:54 2013 -0700
   126.2 +++ b/src/share/classes/com/sun/tools/javac/code/Symbol.java	Tue Oct 08 14:59:46 2013 -0700
   126.3 @@ -327,7 +327,8 @@
   126.4      public boolean isStatic() {
   126.5          return
   126.6              (flags() & STATIC) != 0 ||
   126.7 -            (owner.flags() & INTERFACE) != 0 && kind != MTH;
   126.8 +            (owner.flags() & INTERFACE) != 0 && kind != MTH &&
   126.9 +             name != name.table.names._this;
  126.10      }
  126.11  
  126.12      public boolean isInterface() {
  126.13 @@ -1060,6 +1061,12 @@
  126.14                  return ElementKind.CLASS;
  126.15          }
  126.16  
  126.17 +        @Override
  126.18 +        public Set<Modifier> getModifiers() {
  126.19 +            long flags = flags();
  126.20 +            return Flags.asModifierSet(flags & ~DEFAULT);
  126.21 +        }
  126.22 +
  126.23          public NestingKind getNestingKind() {
  126.24              complete();
  126.25              if (owner.kind == PCK)
   127.1 --- a/src/share/classes/com/sun/tools/javac/code/Type.java	Wed Oct 02 13:26:54 2013 -0700
   127.2 +++ b/src/share/classes/com/sun/tools/javac/code/Type.java	Tue Oct 08 14:59:46 2013 -0700
   127.3 @@ -1651,6 +1651,9 @@
   127.4          public <R, P> R accept(TypeVisitor<R, P> v, P p) {
   127.5              return v.visitNoType(this, p);
   127.6          }
   127.7 +
   127.8 +        @Override
   127.9 +        public boolean isCompound() { return false; }
  127.10      }
  127.11  
  127.12      /** Represents VOID.
  127.13 @@ -1672,6 +1675,9 @@
  127.14          }
  127.15  
  127.16          @Override
  127.17 +        public boolean isCompound() { return false; }
  127.18 +
  127.19 +        @Override
  127.20          public <R, P> R accept(TypeVisitor<R, P> v, P p) {
  127.21              return v.visitNoType(this, p);
  127.22          }
  127.23 @@ -1698,6 +1704,9 @@
  127.24          }
  127.25  
  127.26          @Override
  127.27 +        public boolean isCompound() { return false; }
  127.28 +
  127.29 +        @Override
  127.30          public <R, P> R accept(TypeVisitor<R, P> v, P p) {
  127.31              return v.visitNull(this, p);
  127.32          }
   128.1 --- a/src/share/classes/com/sun/tools/javac/code/Types.java	Wed Oct 02 13:26:54 2013 -0700
   128.2 +++ b/src/share/classes/com/sun/tools/javac/code/Types.java	Tue Oct 08 14:59:46 2013 -0700
   128.3 @@ -244,7 +244,7 @@
   128.4              public Type visitClassType(ClassType t, Symbol sym) {
   128.5                  if (t.tsym == sym)
   128.6                      return t;
   128.7 -                Type base = asSuper(sym.type, t.tsym);
   128.8 +                Type base = asSuper(sym.type, t);
   128.9                  if (base == null)
  128.10                      return null;
  128.11                  ListBuffer<Type> from = new ListBuffer<Type>();
  128.12 @@ -687,7 +687,7 @@
  128.13                          (t.flags() & SYNTHETIC) == 0;
  128.14              }
  128.15          };
  128.16 -        private boolean pendingBridges(ClassSymbol origin, TypeSymbol s) {
  128.17 +        private boolean pendingBridges(ClassSymbol origin, TypeSymbol sym) {
  128.18              //a symbol will be completed from a classfile if (a) symbol has
  128.19              //an associated file object with CLASS kind and (b) the symbol has
  128.20              //not been entered
  128.21 @@ -696,11 +696,11 @@
  128.22                      enter.getEnv(origin) == null) {
  128.23                  return false;
  128.24              }
  128.25 -            if (origin == s) {
  128.26 +            if (origin == sym) {
  128.27                  return true;
  128.28              }
  128.29              for (Type t : interfaces(origin.type)) {
  128.30 -                if (pendingBridges((ClassSymbol)t.tsym, s)) {
  128.31 +                if (pendingBridges((ClassSymbol)t.tsym, sym)) {
  128.32                      return true;
  128.33                  }
  128.34              }
  128.35 @@ -761,7 +761,7 @@
  128.36              } else if (t.hasTag(TYPEVAR)) {
  128.37                  return isSubtypeUnchecked(t.getUpperBound(), s, warn);
  128.38              } else if (!s.isRaw()) {
  128.39 -                Type t2 = asSuper(t, s.tsym);
  128.40 +                Type t2 = asSuper(t, s);
  128.41                  if (t2 != null && t2.isRaw()) {
  128.42                      if (isReifiable(s)) {
  128.43                          warn.silentWarn(LintCategory.UNCHECKED);
  128.44 @@ -914,7 +914,7 @@
  128.45  
  128.46              @Override
  128.47              public Boolean visitClassType(ClassType t, Type s) {
  128.48 -                Type sup = asSuper(t, s.tsym);
  128.49 +                Type sup = asSuper(t, s);
  128.50                  return sup != null
  128.51                      && sup.tsym == s.tsym
  128.52                      // You're not allowed to write
  128.53 @@ -1935,30 +1935,42 @@
  128.54       * @param t a type
  128.55       * @param sym a symbol
  128.56       */
  128.57 -    public Type asSuper(Type t, Symbol sym) {
  128.58 -        return asSuper.visit(t, sym);
  128.59 +    public Type asSuper(Type t, Symbol s) {
  128.60 +        return asSuper(t, s.type);
  128.61 +    }
  128.62 +
  128.63 +    public Type asSuper(Type t, Type s) {
  128.64 +        return asSuper.visit(t, s);
  128.65      }
  128.66      // where
  128.67 -        private SimpleVisitor<Type,Symbol> asSuper = new SimpleVisitor<Type,Symbol>() {
  128.68 -
  128.69 -            public Type visitType(Type t, Symbol sym) {
  128.70 +        private SimpleVisitor<Type,Type> asSuper = new SimpleVisitor<Type,Type>() {
  128.71 +
  128.72 +            public Type visitType(Type t, Type s) {
  128.73                  return null;
  128.74              }
  128.75  
  128.76              @Override
  128.77 -            public Type visitClassType(ClassType t, Symbol sym) {
  128.78 -                if (t.tsym == sym)
  128.79 +            public Type visitClassType(ClassType t, Type s) {
  128.80 +                if (t.tsym == s.tsym)
  128.81                      return t;
  128.82  
  128.83                  Type st = supertype(t);
  128.84 -                if (st.hasTag(CLASS) || st.hasTag(TYPEVAR) || st.hasTag(ERROR)) {
  128.85 -                    Type x = asSuper(st, sym);
  128.86 +
  128.87 +                switch(st.getTag()) {
  128.88 +                default: break;
  128.89 +                case CLASS:
  128.90 +                case ARRAY:
  128.91 +                case TYPEVAR:
  128.92 +                case ERROR: {
  128.93 +                    Type x = asSuper(st, s);
  128.94                      if (x != null)
  128.95                          return x;
  128.96 +                } break;
  128.97                  }
  128.98 -                if ((sym.flags() & INTERFACE) != 0) {
  128.99 +
 128.100 +                if ((s.tsym.flags() & INTERFACE) != 0) {
 128.101                      for (List<Type> l = interfaces(t); l.nonEmpty(); l = l.tail) {
 128.102 -                        Type x = asSuper(l.head, sym);
 128.103 +                        Type x = asSuper(l.head, s);
 128.104                          if (x != null)
 128.105                              return x;
 128.106                      }
 128.107 @@ -1967,22 +1979,20 @@
 128.108              }
 128.109  
 128.110              @Override
 128.111 -            public Type visitArrayType(ArrayType t, Symbol sym) {
 128.112 -                return isSubtype(t, sym.type) ? sym.type : null;
 128.113 +            public Type visitArrayType(ArrayType t, Type s) {
 128.114 +                return isSubtype(t, s) ? s : null;
 128.115              }
 128.116  
 128.117              @Override
 128.118 -            public Type visitTypeVar(TypeVar t, Symbol sym) {
 128.119 -                if (t.tsym == sym)
 128.120 +            public Type visitTypeVar(TypeVar t, Type s) {
 128.121 +                if (t.tsym == s.tsym)
 128.122                      return t;
 128.123                  else
 128.124 -                    return asSuper(t.bound, sym);
 128.125 +                    return asSuper(t.bound, s);
 128.126              }
 128.127  
 128.128              @Override
 128.129 -            public Type visitErrorType(ErrorType t, Symbol sym) {
 128.130 -                return t;
 128.131 -            }
 128.132 +            public Type visitErrorType(ErrorType t, Type s) { return t; }
 128.133          };
 128.134  
 128.135      /**
 128.136 @@ -3563,9 +3573,9 @@
 128.137              //step 3 - for each element G in MEC, compute lci(Inv(G))
 128.138              List<Type> candidates = List.nil();
 128.139              for (Type erasedSupertype : mec) {
 128.140 -                List<Type> lci = List.of(asSuper(ts.head, erasedSupertype.tsym));
 128.141 +                List<Type> lci = List.of(asSuper(ts.head, erasedSupertype));
 128.142                  for (Type t : ts) {
 128.143 -                    lci = intersect(lci, List.of(asSuper(t, erasedSupertype.tsym)));
 128.144 +                    lci = intersect(lci, List.of(asSuper(t, erasedSupertype)));
 128.145                  }
 128.146                  candidates = candidates.appendList(lci);
 128.147              }
 128.148 @@ -3985,7 +3995,7 @@
 128.149          // The arguments to the supers could be unified here to
 128.150          // get a more accurate analysis
 128.151          while (commonSupers.nonEmpty()) {
 128.152 -            Type t1 = asSuper(from, commonSupers.head.tsym);
 128.153 +            Type t1 = asSuper(from, commonSupers.head);
 128.154              Type t2 = commonSupers.head; // same as asSuper(to, commonSupers.head.tsym);
 128.155              if (disjointTypes(t1.getTypeArguments(), t2.getTypeArguments()))
 128.156                  return false;
 128.157 @@ -4016,7 +4026,7 @@
 128.158              from = target;
 128.159          }
 128.160          Assert.check((from.tsym.flags() & FINAL) != 0);
 128.161 -        Type t1 = asSuper(from, to.tsym);
 128.162 +        Type t1 = asSuper(from, to);
 128.163          if (t1 == null) return false;
 128.164          Type t2 = to;
 128.165          if (disjointTypes(t1.getTypeArguments(), t2.getTypeArguments()))
   129.1 --- a/src/share/classes/com/sun/tools/javac/comp/Annotate.java	Wed Oct 02 13:26:54 2013 -0700
   129.2 +++ b/src/share/classes/com/sun/tools/javac/comp/Annotate.java	Tue Oct 08 14:59:46 2013 -0700
   129.3 @@ -310,6 +310,7 @@
   129.4      Attribute enterAttributeValue(Type expected,
   129.5                                    JCExpression tree,
   129.6                                    Env<AttrContext> env) {
   129.7 +        Type original = expected;
   129.8          //first, try completing the attribution value sym - if a completion
   129.9          //error is thrown, we should recover gracefully, and display an
  129.10          //ordinary resolution diagnostic.
  129.11 @@ -317,7 +318,54 @@
  129.12              expected.tsym.complete();
  129.13          } catch(CompletionFailure e) {
  129.14              log.error(tree.pos(), "cant.resolve", Kinds.kindName(e.sym), e.sym);
  129.15 -            return new Attribute.Error(expected);
  129.16 +            expected = syms.errType;
  129.17 +        }
  129.18 +        if (expected.hasTag(ARRAY)) {
  129.19 +            if (!tree.hasTag(NEWARRAY)) {
  129.20 +                tree = make.at(tree.pos).
  129.21 +                    NewArray(null, List.<JCExpression>nil(), List.of(tree));
  129.22 +            }
  129.23 +            JCNewArray na = (JCNewArray)tree;
  129.24 +            if (na.elemtype != null) {
  129.25 +                log.error(na.elemtype.pos(), "new.not.allowed.in.annotation");
  129.26 +            }
  129.27 +            ListBuffer<Attribute> buf = new ListBuffer<Attribute>();
  129.28 +            for (List<JCExpression> l = na.elems; l.nonEmpty(); l=l.tail) {
  129.29 +                buf.append(enterAttributeValue(types.elemtype(expected),
  129.30 +                                               l.head,
  129.31 +                                               env));
  129.32 +            }
  129.33 +            na.type = expected;
  129.34 +            return new Attribute.
  129.35 +                Array(expected, buf.toArray(new Attribute[buf.length()]));
  129.36 +        }
  129.37 +        if (tree.hasTag(NEWARRAY)) { //error recovery
  129.38 +            if (!expected.isErroneous())
  129.39 +                log.error(tree.pos(), "annotation.value.not.allowable.type");
  129.40 +            JCNewArray na = (JCNewArray)tree;
  129.41 +            if (na.elemtype != null) {
  129.42 +                log.error(na.elemtype.pos(), "new.not.allowed.in.annotation");
  129.43 +            }
  129.44 +            for (List<JCExpression> l = na.elems; l.nonEmpty(); l=l.tail) {
  129.45 +                enterAttributeValue(syms.errType,
  129.46 +                                    l.head,
  129.47 +                                    env);
  129.48 +            }
  129.49 +            return new Attribute.Error(original);
  129.50 +        }
  129.51 +        if ((expected.tsym.flags() & Flags.ANNOTATION) != 0) {
  129.52 +            if (tree.hasTag(ANNOTATION)) {
  129.53 +                return enterAnnotation((JCAnnotation)tree, expected, env);
  129.54 +            } else {
  129.55 +                log.error(tree.pos(), "annotation.value.must.be.annotation");
  129.56 +                expected = syms.errType;
  129.57 +            }
  129.58 +        }
  129.59 +        if (tree.hasTag(ANNOTATION)) { //error recovery
  129.60 +            if (!expected.isErroneous())
  129.61 +                log.error(tree.pos(), "annotation.not.valid.for.type", expected);
  129.62 +            enterAnnotation((JCAnnotation)tree, syms.errType, env);
  129.63 +            return new Attribute.Error(original);
  129.64          }
  129.65          if (expected.isPrimitive() || types.isSameType(expected, syms.stringType)) {
  129.66              Type result = attr.attribExpr(tree, env, expected);
  129.67 @@ -353,33 +401,6 @@
  129.68              return new Attribute.Class(types,
  129.69                                         (((JCFieldAccess) tree).selected).type);
  129.70          }
  129.71 -        if ((expected.tsym.flags() & Flags.ANNOTATION) != 0) {
  129.72 -            if (!tree.hasTag(ANNOTATION)) {
  129.73 -                log.error(tree.pos(), "annotation.value.must.be.annotation");
  129.74 -                expected = syms.errorType;
  129.75 -            }
  129.76 -            return enterAnnotation((JCAnnotation)tree, expected, env);
  129.77 -        }
  129.78 -        if (expected.hasTag(ARRAY)) { // should really be isArray()
  129.79 -            if (!tree.hasTag(NEWARRAY)) {
  129.80 -                tree = make.at(tree.pos).
  129.81 -                    NewArray(null, List.<JCExpression>nil(), List.of(tree));
  129.82 -            }
  129.83 -            JCNewArray na = (JCNewArray)tree;
  129.84 -            if (na.elemtype != null) {
  129.85 -                log.error(na.elemtype.pos(), "new.not.allowed.in.annotation");
  129.86 -                return new Attribute.Error(expected);
  129.87 -            }
  129.88 -            ListBuffer<Attribute> buf = new ListBuffer<Attribute>();
  129.89 -            for (List<JCExpression> l = na.elems; l.nonEmpty(); l=l.tail) {
  129.90 -                buf.append(enterAttributeValue(types.elemtype(expected),
  129.91 -                                               l.head,
  129.92 -                                               env));
  129.93 -            }
  129.94 -            na.type = expected;
  129.95 -            return new Attribute.
  129.96 -                Array(expected, buf.toArray(new Attribute[buf.length()]));
  129.97 -        }
  129.98          if (expected.hasTag(CLASS) &&
  129.99              (expected.tsym.flags() & Flags.ENUM) != 0) {
 129.100              attr.attribExpr(tree, env, expected);
 129.101 @@ -394,6 +415,7 @@
 129.102              VarSymbol enumerator = (VarSymbol) sym;
 129.103              return new Attribute.Enum(expected, enumerator);
 129.104          }
 129.105 +        //error recovery:
 129.106          if (!expected.isErroneous())
 129.107              log.error(tree.pos(), "annotation.value.not.allowable.type");
 129.108          return new Attribute.Error(attr.attribExpr(tree, env, expected));
   130.1 --- a/src/share/classes/com/sun/tools/javac/comp/Attr.java	Wed Oct 02 13:26:54 2013 -0700
   130.2 +++ b/src/share/classes/com/sun/tools/javac/comp/Attr.java	Tue Oct 08 14:59:46 2013 -0700
   130.3 @@ -58,6 +58,7 @@
   130.4  import static com.sun.tools.javac.code.Kinds.ERRONEOUS;
   130.5  import static com.sun.tools.javac.code.TypeTag.*;
   130.6  import static com.sun.tools.javac.code.TypeTag.WILDCARD;
   130.7 +import static com.sun.tools.javac.code.TypeTag.ARRAY;
   130.8  import static com.sun.tools.javac.tree.JCTree.Tag.*;
   130.9  
  130.10  /** This is the main context-dependent analysis phase in GJC. It
  130.11 @@ -797,28 +798,32 @@
  130.12                     JCTree tree,
  130.13                     Env<AttrContext> env,
  130.14                     boolean classExpected,
  130.15 -                   boolean interfaceExpected,
  130.16 +                   boolean interfaceOrArrayExpected,
  130.17                     boolean checkExtensible) {
  130.18          if (t.isErroneous())
  130.19              return t;
  130.20 -        if (t.hasTag(TYPEVAR) && !classExpected && !interfaceExpected) {
  130.21 +        if (t.hasTag(TYPEVAR) && !classExpected && !interfaceOrArrayExpected) {
  130.22              // check that type variable is already visible
  130.23              if (t.getUpperBound() == null) {
  130.24                  log.error(tree.pos(), "illegal.forward.ref");
  130.25                  return types.createErrorType(t);
  130.26              }
  130.27 +        } else if (classExpected) {
  130.28 +            t = chk.checkClassType(tree.pos(), t, checkExtensible|!allowGenerics);
  130.29          } else {
  130.30 -            t = chk.checkClassType(tree.pos(), t, checkExtensible|!allowGenerics);
  130.31 +            t = chk.checkClassOrArrayType(tree.pos(), t,
  130.32 +                                          checkExtensible|!allowGenerics);
  130.33          }
  130.34 -        if (interfaceExpected && (t.tsym.flags() & INTERFACE) == 0) {
  130.35 +        if (interfaceOrArrayExpected &&
  130.36 +            !(t.tsym.isInterface() || t.getTag() == ARRAY)) {
  130.37              log.error(tree.pos(), "intf.expected.here");
  130.38              // return errType is necessary since otherwise there might
  130.39              // be undetected cycles which cause attribution to loop
  130.40              return types.createErrorType(t);
  130.41          } else if (checkExtensible &&
  130.42                     classExpected &&
  130.43 -                   (t.tsym.flags() & INTERFACE) != 0) {
  130.44 -                log.error(tree.pos(), "no.intf.expected.here");
  130.45 +                   t.tsym.isInterface()) {
  130.46 +            log.error(tree.pos(), "no.intf.expected.here");
  130.47              return types.createErrorType(t);
  130.48          }
  130.49          if (checkExtensible &&
  130.50 @@ -829,6 +834,12 @@
  130.51          chk.checkNonCyclic(tree.pos(), t);
  130.52          return t;
  130.53      }
  130.54 +    //where
  130.55 +        private Object asTypeParam(Type t) {
  130.56 +            return (t.hasTag(TYPEVAR))
  130.57 +                                    ? diags.fragment("type.parameter", t)
  130.58 +                                    : t;
  130.59 +        }
  130.60  
  130.61      Type attribIdentAsEnumType(Env<AttrContext> env, JCIdent id) {
  130.62          Assert.check((env.enclClass.sym.flags() & ENUM) != 0);
  130.63 @@ -4058,8 +4069,7 @@
  130.64      }
  130.65  
  130.66      public void visitAnnotation(JCAnnotation tree) {
  130.67 -        log.error(tree.pos(), "annotation.not.valid.for.type", pt());
  130.68 -        result = tree.type = syms.errType;
  130.69 +        Assert.error("should be handled in Annotate");
  130.70      }
  130.71  
  130.72      public void visitAnnotatedType(JCAnnotatedType tree) {
   131.1 --- a/src/share/classes/com/sun/tools/javac/comp/Check.java	Wed Oct 02 13:26:54 2013 -0700
   131.2 +++ b/src/share/classes/com/sun/tools/javac/comp/Check.java	Tue Oct 08 14:59:46 2013 -0700
   131.3 @@ -706,6 +706,37 @@
   131.4          return t;
   131.5      }
   131.6  
   131.7 +    // Analog of checkClassType that calls checkClassOrArrayType instead
   131.8 +    Type checkClassOrArrayType(DiagnosticPosition pos,
   131.9 +                               Type t, boolean noBounds) {
  131.10 +        t = checkClassOrArrayType(pos, t);
  131.11 +        if (noBounds && t.isParameterized()) {
  131.12 +            List<Type> args = t.getTypeArguments();
  131.13 +            while (args.nonEmpty()) {
  131.14 +                if (args.head.hasTag(WILDCARD))
  131.15 +                    return typeTagError(pos,
  131.16 +                                        diags.fragment("type.req.exact"),
  131.17 +                                        args.head);
  131.18 +                args = args.tail;
  131.19 +            }
  131.20 +        }
  131.21 +        return t;
  131.22 +    }
  131.23 +
  131.24 +    /** Check that type is a reifiable class, interface or array type.
  131.25 +     *  @param pos           Position to be used for error reporting.
  131.26 +     *  @param t             The type to be checked.
  131.27 +     */
  131.28 +    Type checkReifiableReferenceType(DiagnosticPosition pos, Type t) {
  131.29 +        t = checkClassOrArrayType(pos, t);
  131.30 +        if (!t.isErroneous() && !types.isReifiable(t)) {
  131.31 +            log.error(pos, "illegal.generic.type.for.instof");
  131.32 +            return types.createErrorType(t);
  131.33 +        } else {
  131.34 +            return t;
  131.35 +        }
  131.36 +    }
  131.37 +
  131.38      /** Check that type is a reference type, i.e. a class, interface or array type
  131.39       *  or a type variable.
  131.40       *  @param pos           Position to be used for error reporting.
  131.41 @@ -2210,6 +2241,9 @@
  131.42              seen = seen.prepend(tv);
  131.43              for (Type b : types.getBounds(tv))
  131.44                  checkNonCyclic1(pos, b, seen);
  131.45 +        } else if (t.hasTag(ARRAY)) {
  131.46 +            final ArrayType at = (ArrayType)t.unannotatedType();
  131.47 +            checkNonCyclic1(pos, at.elemtype, seen);
  131.48          }
  131.49      }
  131.50  
   132.1 --- a/src/share/classes/com/sun/tools/javac/main/JavaCompiler.java	Wed Oct 02 13:26:54 2013 -0700
   132.2 +++ b/src/share/classes/com/sun/tools/javac/main/JavaCompiler.java	Tue Oct 08 14:59:46 2013 -0700
   132.3 @@ -1743,13 +1743,4 @@
   132.4          shouldStopPolicyIfError = prev.shouldStopPolicyIfError;
   132.5          shouldStopPolicyIfNoError = prev.shouldStopPolicyIfNoError;
   132.6      }
   132.7 -
   132.8 -    public static void enableLogging() {
   132.9 -        Logger logger = Logger.getLogger(com.sun.tools.javac.Main.class.getPackage().getName());
  132.10 -        logger.setLevel(Level.ALL);
  132.11 -        for (Handler h : logger.getParent().getHandlers()) {
  132.12 -            h.setLevel(Level.ALL);
  132.13 -       }
  132.14 -
  132.15 -    }
  132.16  }
   133.1 --- a/src/share/classes/com/sun/tools/javac/parser/JavacParser.java	Wed Oct 02 13:26:54 2013 -0700
   133.2 +++ b/src/share/classes/com/sun/tools/javac/parser/JavacParser.java	Tue Oct 08 14:59:46 2013 -0700
   133.3 @@ -3002,8 +3002,9 @@
   133.4          int pos = token.pos;
   133.5          Name name;
   133.6          if (lambdaParameter && token.kind == UNDERSCORE) {
   133.7 -            syntaxError(pos, "expected", IDENTIFIER);
   133.8 +            log.error(pos, "underscore.as.identifier.in.lambda");
   133.9              name = token.name();
  133.10 +            nextToken();
  133.11          } else {
  133.12              if (allowThisIdent) {
  133.13                  JCExpression pn = qualident(false);
   134.1 --- a/src/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java	Wed Oct 02 13:26:54 2013 -0700
   134.2 +++ b/src/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java	Tue Oct 08 14:59:46 2013 -0700
   134.3 @@ -1034,6 +1034,13 @@
   134.4                  } else {
   134.5                      discoverAndRunProcs(context, annotationsPresent, topLevelClasses, packageInfoFiles);
   134.6                  }
   134.7 +            } catch (Throwable t) {
   134.8 +                // we're specifically expecting Abort here, but if any Throwable
   134.9 +                // comes by, we should flush all deferred diagnostics, rather than
  134.10 +                // drop them on the ground.
  134.11 +                deferredDiagnosticHandler.reportDeferredDiagnostics();
  134.12 +                log.popDiagnosticHandler(deferredDiagnosticHandler);
  134.13 +                throw t;
  134.14              } finally {
  134.15                  if (!taskListener.isEmpty())
  134.16                      taskListener.finished(new TaskEvent(TaskEvent.Kind.ANNOTATION_PROCESSING_ROUND));
   135.1 --- a/src/share/classes/com/sun/tools/javac/resources/compiler.properties	Wed Oct 02 13:26:54 2013 -0700
   135.2 +++ b/src/share/classes/com/sun/tools/javac/resources/compiler.properties	Tue Oct 08 14:59:46 2013 -0700
   135.3 @@ -2224,6 +2224,10 @@
   135.4      ''_'' used as an identifier\n\
   135.5      (use of ''_'' as an identifier might not be supported in releases after Java SE 8)
   135.6  
   135.7 +compiler.err.underscore.as.identifier.in.lambda=\
   135.8 +    ''_'' used as an identifier\n\
   135.9 +    (use of ''_'' as an identifier is forbidden for lambda parameters)
  135.10 +
  135.11  compiler.err.enum.as.identifier=\
  135.12      as of release 5, ''enum'' is a keyword, and may not be used as an identifier\n\
  135.13      (use -source 1.4 or lower to use ''enum'' as an identifier)
   136.1 --- a/src/share/classes/com/sun/tools/javac/sym/CreateSymbols.java	Wed Oct 02 13:26:54 2013 -0700
   136.2 +++ b/src/share/classes/com/sun/tools/javac/sym/CreateSymbols.java	Tue Oct 08 14:59:46 2013 -0700
   136.3 @@ -107,15 +107,21 @@
   136.4              if (renv.processingOver())
   136.5                  createSymbols();
   136.6          } catch (IOException e) {
   136.7 +            CharSequence msg = e.getLocalizedMessage();
   136.8 +            if (msg == null)
   136.9 +                msg = e.toString();
  136.10              processingEnv.getMessager()
  136.11 -                .printMessage(Diagnostic.Kind.ERROR, e.getLocalizedMessage());
  136.12 +                .printMessage(Diagnostic.Kind.ERROR, msg);
  136.13          } catch (Throwable t) {
  136.14              t.printStackTrace();
  136.15              Throwable cause = t.getCause();
  136.16              if (cause == null)
  136.17                  cause = t;
  136.18 +            CharSequence msg = cause.getLocalizedMessage();
  136.19 +            if (msg == null)
  136.20 +                msg = cause.toString();
  136.21              processingEnv.getMessager()
  136.22 -                .printMessage(Diagnostic.Kind.ERROR, cause.getLocalizedMessage());
  136.23 +                .printMessage(Diagnostic.Kind.ERROR, msg);
  136.24          }
  136.25          return true;
  136.26      }
   137.1 --- a/src/share/classes/com/sun/tools/javap/ClassWriter.java	Wed Oct 02 13:26:54 2013 -0700
   137.2 +++ b/src/share/classes/com/sun/tools/javap/ClassWriter.java	Tue Oct 08 14:59:46 2013 -0700
   137.3 @@ -232,6 +232,12 @@
   137.4                  return t.accept(this, new StringBuilder()).toString();
   137.5              }
   137.6  
   137.7 +            String printTypeArgs(List<? extends TypeParamType> typeParamTypes) {
   137.8 +                StringBuilder builder = new StringBuilder();
   137.9 +                appendIfNotEmpty(builder, "<", typeParamTypes, "> ");
  137.10 +                return builder.toString();
  137.11 +            }
  137.12 +
  137.13              public StringBuilder visitSimpleType(SimpleType type, StringBuilder sb) {
  137.14                  sb.append(getJavaName(type.name));
  137.15                  return sb;
  137.16 @@ -438,7 +444,7 @@
  137.17  
  137.18          writeModifiers(flags.getMethodModifiers());
  137.19          if (methodType != null) {
  137.20 -            writeListIfNotEmpty("<", methodType.typeParamTypes, "> ");
  137.21 +            print(new JavaTypePrinter(false).printTypeArgs(methodType.typeParamTypes));
  137.22          }
  137.23          if (getName(m).equals("<init>")) {
  137.24              print(getJavaName(classFile));
   138.1 --- a/src/share/classes/javax/lang/model/element/Element.java	Wed Oct 02 13:26:54 2013 -0700
   138.2 +++ b/src/share/classes/javax/lang/model/element/Element.java	Tue Oct 08 14:59:46 2013 -0700
   138.3 @@ -202,6 +202,7 @@
   138.4       * @return {@code true} if the specified object represents the same
   138.5       *          element as this
   138.6       */
   138.7 +    @Override
   138.8      boolean equals(Object obj);
   138.9  
  138.10      /**
  138.11 @@ -209,6 +210,7 @@
  138.12       *
  138.13       * @see #equals
  138.14       */
  138.15 +    @Override
  138.16      int hashCode();
  138.17  
  138.18  
  138.19 @@ -219,11 +221,18 @@
  138.20       * Elements#getAllAnnotationMirrors(Element)
  138.21       * getAllAnnotationMirrors}.
  138.22       *
  138.23 -     * @see ElementFilter
  138.24       * @since 1.6
  138.25       */
  138.26      @Override
  138.27      List<? extends AnnotationMirror> getAnnotationMirrors();
  138.28 +
  138.29 +    /**
  138.30 +     * {@inheritDoc}
  138.31 +     * @since 1.6
  138.32 +     */
  138.33 +    @Override
  138.34 +    <A extends Annotation> A getAnnotation(Class<A> annotationType);
  138.35 +
  138.36      /**
  138.37       * Applies a visitor to this element.
  138.38       *
   139.1 --- a/src/share/classes/javax/tools/Diagnostic.java	Wed Oct 02 13:26:54 2013 -0700
   139.2 +++ b/src/share/classes/javax/tools/Diagnostic.java	Tue Oct 08 14:59:46 2013 -0700
   139.3 @@ -1,5 +1,5 @@
   139.4  /*
   139.5 - * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved.
   139.6 + * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
   139.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   139.8   *
   139.9   * This code is free software; you can redistribute it and/or modify it
  139.10 @@ -49,6 +49,15 @@
  139.11  
  139.12      /**
  139.13       * Kinds of diagnostics, for example, error or warning.
  139.14 +     *
  139.15 +     * The kind of a diagnostic can be used to determine how the
  139.16 +     * diagnostic should be presented to the user. For example,
  139.17 +     * errors might be colored red or prefixed with the word "Error",
  139.18 +     * while warnings might be colored yellow or prefixed with the
  139.19 +     * word "Warning". There is no requirement that the Kind
  139.20 +     * should imply any inherent semantic meaning to the message
  139.21 +     * of the diagnostic: for example, a tool might provide an
  139.22 +     * option to report all warnings as errors.
  139.23       */
  139.24      enum Kind {
  139.25          /**
  139.26 @@ -63,7 +72,7 @@
  139.27          /**
  139.28           * Problem similar to a warning, but is mandated by the tool's
  139.29           * specification.  For example, the Java&trade; Language
  139.30 -         * Specification, 3rd Ed. mandates warnings on certain
  139.31 +         * Specification mandates warnings on certain
  139.32           * unchecked operations and the use of deprecated methods.
  139.33           */
  139.34          MANDATORY_WARNING,
   140.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   140.2 +++ b/src/share/classes/jdk/Exported.java	Tue Oct 08 14:59:46 2013 -0700
   140.3 @@ -0,0 +1,54 @@
   140.4 +/*
   140.5 + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
   140.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   140.7 + *
   140.8 + * This code is free software; you can redistribute it and/or modify it
   140.9 + * under the terms of the GNU General Public License version 2 only, as
  140.10 + * published by the Free Software Foundation.  Oracle designates this
  140.11 + * particular file as subject to the "Classpath" exception as provided
  140.12 + * by Oracle in the LICENSE file that accompanied this code.
  140.13 + *
  140.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
  140.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  140.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  140.17 + * version 2 for more details (a copy is included in the LICENSE file that
  140.18 + * accompanied this code).
  140.19 + *
  140.20 + * You should have received a copy of the GNU General Public License version
  140.21 + * 2 along with this work; if not, write to the Free Software Foundation,
  140.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  140.23 + *
  140.24 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  140.25 + * or visit www.oracle.com if you need additional information or have any
  140.26 + * questions.
  140.27 + */
  140.28 +
  140.29 +package jdk;
  140.30 +
  140.31 +import java.lang.annotation.*;
  140.32 +
  140.33 +/**
  140.34 +  * Indicates whether or not a JDK specific type or package is an
  140.35 +  * exported part of the JDK suitable for use outside of the JDK
  140.36 +  * implementation itself.
  140.37 +  *
  140.38 +  * This annotation should only be applied to types and packages
  140.39 +  * <em>outside</em> of the Java SE namespaces of {@code java.*} and
  140.40 +  * {@code javax.*} packages.  For example, certain portions of {@code
  140.41 +  * com.sun.*} are official parts of the JDK meant to be generally
  140.42 +  * usable while other portions of {@code com.sun.*} are not.  This
  140.43 +  * annotation type allows those portions to be easily and
  140.44 +  * programmaticly distinguished.
  140.45 +  *
  140.46 +  * @since 1.8
  140.47 +  */
  140.48 +@Documented
  140.49 +@Retention(RetentionPolicy.RUNTIME)
  140.50 +@Target({ElementType.TYPE, ElementType.PACKAGE})
  140.51 +@Exported
  140.52 +public @interface Exported {
  140.53 +    /**
  140.54 +     * Whether or not the annotated type or package is an exported part of the JDK.
  140.55 +     */
  140.56 +    boolean value() default true;
  140.57 +}
   141.1 --- a/src/share/classes/jdk/Supported.java	Wed Oct 02 13:26:54 2013 -0700
   141.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   141.3 @@ -1,53 +0,0 @@
   141.4 -/*
   141.5 - * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
   141.6 - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   141.7 - *
   141.8 - * This code is free software; you can redistribute it and/or modify it
   141.9 - * under the terms of the GNU General Public License version 2 only, as
  141.10 - * published by the Free Software Foundation.  Oracle designates this
  141.11 - * particular file as subject to the "Classpath" exception as provided
  141.12 - * by Oracle in the LICENSE file that accompanied this code.
  141.13 - *
  141.14 - * This code is distributed in the hope that it will be useful, but WITHOUT
  141.15 - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  141.16 - * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  141.17 - * version 2 for more details (a copy is included in the LICENSE file that
  141.18 - * accompanied this code).
  141.19 - *
  141.20 - * You should have received a copy of the GNU General Public License version
  141.21 - * 2 along with this work; if not, write to the Free Software Foundation,
  141.22 - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  141.23 - *
  141.24 - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  141.25 - * or visit www.oracle.com if you need additional information or have any
  141.26 - * questions.
  141.27 - */
  141.28 -
  141.29 -package jdk;
  141.30 -
  141.31 -import java.lang.annotation.*;
  141.32 -
  141.33 -/**
  141.34 -  * Indicates whether or not a JDK specific type or package is a
  141.35 -  * supported part of the JDK.
  141.36 -  *
  141.37 -  * This annotation should only be applied to types and packages
  141.38 -  * <em>outside</em> of the Java SE namespaces of {@code java.*} and
  141.39 -  * {@code javax.*} packages.  For example, certain portions of {@code
  141.40 -  * com.sun.*} are official parts of the JDK meant to be generally
  141.41 -  * usable while other portions of {@code com.sun.*} are not.  This
  141.42 -  * annotation type allows those portions to be easily and
  141.43 -  * programmaticly distinguished.
  141.44 -  *
  141.45 -  * @since 1.8
  141.46 -  */
  141.47 -@Documented
  141.48 -@Retention(RetentionPolicy.RUNTIME)
  141.49 -@Target({ElementType.TYPE, ElementType.PACKAGE})
  141.50 -@Supported
  141.51 -public @interface Supported {
  141.52 -    /**
  141.53 -     * Whether or not this package or type is a supported part of the JDK.
  141.54 -     */
  141.55 -    boolean value() default true;
  141.56 -}
   142.1 --- a/test/Makefile	Wed Oct 02 13:26:54 2013 -0700
   142.2 +++ b/test/Makefile	Tue Oct 08 14:59:46 2013 -0700
   142.3 @@ -7,7 +7,7 @@
   142.4  # A full product build (or "control" build) creates a complete JDK image.
   142.5  # To test a product build, set TESTJAVA to the path for the image.
   142.6  #
   142.7 -# A langtools build just builds the langtools components of a JDK. 
   142.8 +# A langtools build just builds the langtools components of a JDK.
   142.9  # To test a langtools build, set TESTJAVA to the path for a recent JDK
  142.10  # build, and set TESTBOOTCLASSPATH to the compiled langtools classes --
  142.11  # for example build/classes or dist/lib/classes.jar.
  142.12 @@ -122,10 +122,10 @@
  142.13    TESTJAVA = $(SLASH_JAVA)/re/jdk/1.7.0/promoted/latest/binaries/$(PLATFORM)-$(ARCH)
  142.14  endif
  142.15  
  142.16 -# PRODUCT_HOME is a JPRT variable pointing to a directory containing the output from 
  142.17 +# PRODUCT_HOME is a JPRT variable pointing to a directory containing the output from
  142.18  # make/Makefile
  142.19  # For langtools, this is a directory containing build and dist
  142.20 -# For a control build, this is build/$(PRODUCT)-$(ARCH)/XYZ-image 
  142.21 +# For a control build, this is build/$(PRODUCT)-$(ARCH)/XYZ-image
  142.22  #	(i.e, j2sdk-image or jdk-module-image)
  142.23  ifdef PRODUCT_HOME
  142.24    ifeq ($(shell [ -r $(PRODUCT_HOME)/dist/lib/classes.jar ]; echo $$?),0)
  142.25 @@ -139,13 +139,13 @@
  142.26  ifdef TESTBOOTCLASSPATH
  142.27    JTREG_OPTIONS += -Xbootclasspath/p:$(TESTBOOTCLASSPATH)
  142.28  ### In the following, -refvmoptions is an undocumented option
  142.29 -### The following does not work JCK 7 b30 2/6/2010. Awaiting b31. 
  142.30 +### The following does not work JCK 7 b30 2/6/2010. Awaiting b31.
  142.31    JCK_OPTIONS += \
  142.32  	-vmoptions:-Xbootclasspath/p:$(TESTBOOTCLASSPATH) \
  142.33  	-refvmoptions:-Xbootclasspath/p:$(TESTBOOTCLASSPATH)
  142.34  endif
  142.35  
  142.36 -# Concurrency is the number of tests that can execute at once. 
  142.37 +# Concurrency is the number of tests that can execute at once.
  142.38  # On an otherwise empty machine, suggest setting to (#cpus + 2)
  142.39  # If unset, the default is (#cpus)
  142.40  ### RFE: determine and use #cpus
  142.41 @@ -206,7 +206,7 @@
  142.42  # Exit -- used for final "normal" exit from "make". Redefine to "true" to avoid
  142.43  # having make exit with non-zero return code.
  142.44  EXIT = exit
  142.45 -# Function to exit shell if exit code of preceding command is greater than or equal 
  142.46 +# Function to exit shell if exit code of preceding command is greater than or equal
  142.47  # to a given level. Redefine function or preceding FATAL_*_EXIT codes as needed.
  142.48  EXIT_IF_FATAL = status=$$?; if [ $$status -ge $(1) ]; then exit $$status ; fi
  142.49  
  142.50 @@ -217,8 +217,8 @@
  142.51  # Root of all test results
  142.52  TEST_OUTPUT_DIR = $(TEST_ROOT)/../build/$(PLATFORM)-$(ARCH)/test/langtools
  142.53  ABS_TEST_OUTPUT_DIR := \
  142.54 -	$(shell mkdir -p $(TEST_ROOT)/../build/$(PLATFORM)-$(ARCH)/test/langtools; \
  142.55 -		cd  $(TEST_ROOT)/../build/$(PLATFORM)-$(ARCH)/test/langtools; \
  142.56 +	$(shell mkdir -p $(TEST_OUTPUT_DIR); \
  142.57 +		cd  $(TEST_OUTPUT_DIR); \
  142.58  		pwd $(CYGPATH))
  142.59  # Subdirectories for different test runs
  142.60  JTREG_OUTPUT_DIR = $(ABS_TEST_OUTPUT_DIR)/jtreg
  142.61 @@ -255,7 +255,7 @@
  142.62  # JT_JAVA
  142.63  #	Version of java used to run jtreg.  Should normally be the same as TESTJAVA
  142.64  # TESTJAVA
  142.65 -# 	Version of java to be tested.  
  142.66 +# 	Version of java to be tested.
  142.67  # JTREG_OPTIONS
  142.68  #	Additional options for jtreg
  142.69  # JTREG_TESTDIRS
  142.70 @@ -311,7 +311,7 @@
  142.71  #	Version of java used to run JCK.  Should normally be the same as TESTJAVA
  142.72  #       Default is JDK 7
  142.73  # TESTJAVA
  142.74 -# 	Version of java to be tested.  
  142.75 +# 	Version of java to be tested.
  142.76  # JCK_COMPILER_OPTIONS
  142.77  #	Additional options for JCK-compiler
  142.78  # JCK_COMPILER_TESTDIRS
  142.79 @@ -360,7 +360,7 @@
  142.80  # JT_JAVA
  142.81  #	Version of java used to run JCK.  Should normally be the same as TESTJAVA
  142.82  # TESTJAVA
  142.83 -# 	Version of java to be tested.  
  142.84 +# 	Version of java to be tested.
  142.85  # JCK_RUNTIME_OPTIONS
  142.86  #	Additional options for JCK-runtime
  142.87  # JCK_RUNTIME_TESTDIRS
   143.1 --- a/test/com/sun/javadoc/JavascriptWinTitle/JavascriptWinTitle.java	Wed Oct 02 13:26:54 2013 -0700
   143.2 +++ b/test/com/sun/javadoc/JavascriptWinTitle/JavascriptWinTitle.java	Tue Oct 08 14:59:46 2013 -0700
   143.3 @@ -1,5 +1,5 @@
   143.4  /*
   143.5 - * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
   143.6 + * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
   143.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   143.8   *
   143.9   * This code is free software; you can redistribute it and/or modify it
  143.10 @@ -23,7 +23,7 @@
  143.11  
  143.12  /*
  143.13   * @test
  143.14 - * @bug 4645058 4747738 4855054
  143.15 + * @bug 4645058 4747738 4855054 8024756
  143.16   * @summary  Javascript IE load error when linked by -linkoffline
  143.17   *           Window title shouldn't change when loading left frames (javascript)
  143.18   * @author dkramer
  143.19 @@ -115,9 +115,13 @@
  143.20  
  143.21              // Test that win title javascript is followed by NOSCRIPT code.
  143.22              {"<script type=\"text/javascript\"><!--" + LS +
  143.23 -                     "    if (location.href.indexOf('is-external=true') == -1) {" + LS +
  143.24 -                     "        parent.document.title=\"C (Window Title)\";" + LS +
  143.25 -                     "    }" + LS + "//-->" + LS + "</script>",
  143.26 +            "    try {" + LS +
  143.27 +            "        if (location.href.indexOf('is-external=true') == -1) {" + LS +
  143.28 +            "            parent.document.title=\"C (Window Title)\";" + LS +
  143.29 +            "        }" + LS +
  143.30 +            "    }" + LS +
  143.31 +            "    catch(err) {" + LS +
  143.32 +            "    }" + LS + "//-->" + LS + "</script>",
  143.33               TMPDEST_DIR1 + FS + "p1" + FS + "C.html"
  143.34              }
  143.35  
   144.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   144.2 +++ b/test/com/sun/javadoc/testHtmlTableStyles/TestHtmlTableStyles.java	Tue Oct 08 14:59:46 2013 -0700
   144.3 @@ -0,0 +1,110 @@
   144.4 +/*
   144.5 + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
   144.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   144.7 + *
   144.8 + * This code is free software; you can redistribute it and/or modify it
   144.9 + * under the terms of the GNU General Public License version 2 only, as
  144.10 + * published by the Free Software Foundation.
  144.11 + *
  144.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
  144.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  144.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  144.15 + * version 2 for more details (a copy is included in the LICENSE file that
  144.16 + * accompanied this code).
  144.17 + *
  144.18 + * You should have received a copy of the GNU General Public License version
  144.19 + * 2 along with this work; if not, write to the Free Software Foundation,
  144.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  144.21 + *
  144.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  144.23 + * or visit www.oracle.com if you need additional information or have any
  144.24 + * questions.
  144.25 + */
  144.26 +
  144.27 +/*
  144.28 + * @test
  144.29 + * @bug 8008164
  144.30 + * @summary Test styles on HTML tables generated by javadoc.
  144.31 + * @author Bhavesh Patel
  144.32 + * @library ../lib/
  144.33 + * @build JavadocTester TestHtmlTableStyles
  144.34 + * @run main TestHtmlTableStyles
  144.35 + */
  144.36 +
  144.37 +public class TestHtmlTableStyles extends JavadocTester {
  144.38 +
  144.39 +    private static final String BUG_ID = "8008164";
  144.40 +
  144.41 +    //Input for string search tests.
  144.42 +    private static final String[][] TEST = {
  144.43 +        {BUG_ID + FS + "pkg1" + FS + "TestTable.html",
  144.44 +            "<table border cellpadding=3 cellspacing=1>"
  144.45 +        },
  144.46 +        {BUG_ID + FS + "pkg1" + FS + "TestTable.html",
  144.47 +            "<table class=\"memberSummary\" border=\"0\" cellpadding=\"3\" " +
  144.48 +            "cellspacing=\"0\" summary=\"Field Summary table, listing fields, " +
  144.49 +            "and an explanation\">"
  144.50 +        },
  144.51 +        {BUG_ID + FS + "pkg1" + FS + "TestTable.html",
  144.52 +            "<table class=\"memberSummary\" border=\"0\" cellpadding=\"3\" " +
  144.53 +            "cellspacing=\"0\" summary=\"Constructor Summary table, listing " +
  144.54 +            "constructors, and an explanation\">"
  144.55 +        },
  144.56 +        {BUG_ID + FS + "pkg1" + FS + "TestTable.html",
  144.57 +            "<table class=\"memberSummary\" border=\"0\" cellpadding=\"3\" " +
  144.58 +            "cellspacing=\"0\" summary=\"Method Summary table, listing methods, " +
  144.59 +            "and an explanation\">"
  144.60 +        },
  144.61 +        {BUG_ID + FS + "pkg1" + FS + "package-summary.html",
  144.62 +            "<table class=\"typeSummary\" border=\"0\" cellpadding=\"3\" " +
  144.63 +            "cellspacing=\"0\" summary=\"Class Summary table, listing classes, " +
  144.64 +            "and an explanation\">"
  144.65 +        },
  144.66 +        {BUG_ID + FS + "pkg1" + FS + "class-use" + FS + "TestTable.html",
  144.67 +            "<table class=\"useSummary\" border=\"0\" cellpadding=\"3\" " +
  144.68 +            "cellspacing=\"0\" summary=\"Use table, listing fields, and an explanation\">"
  144.69 +        },
  144.70 +        {BUG_ID + FS + "overview-summary.html",
  144.71 +            "<table class=\"overviewSummary\" border=\"0\" cellpadding=\"3\" " +
  144.72 +            "cellspacing=\"0\" summary=\"Packages table, listing packages, and an explanation\">"
  144.73 +        },
  144.74 +        {BUG_ID + FS + "deprecated-list.html",
  144.75 +            "<table class=\"deprecatedSummary\" border=\"0\" cellpadding=\"3\" " +
  144.76 +            "cellspacing=\"0\" summary=\"Deprecated Methods table, listing " +
  144.77 +            "deprecated methods, and an explanation\">"
  144.78 +        },
  144.79 +        {BUG_ID + FS + "constant-values.html",
  144.80 +            "<table class=\"constantsSummary\" border=\"0\" cellpadding=\"3\" " +
  144.81 +            "cellspacing=\"0\" summary=\"Constant Field Values table, listing " +
  144.82 +            "constant fields, and values\">"
  144.83 +        },
  144.84 +    };
  144.85 +
  144.86 +    private static final String[] ARGS = new String[] {
  144.87 +        "-d", BUG_ID, "-sourcepath", SRC_DIR, "-use", "pkg1", "pkg2"
  144.88 +    };
  144.89 +
  144.90 +    /**
  144.91 +     * The entry point of the test.
  144.92 +     * @param args the array of command line arguments.
  144.93 +     */
  144.94 +    public static void main(String[] args) throws Exception {
  144.95 +        TestHtmlTableStyles tester = new TestHtmlTableStyles();
  144.96 +        run(tester, ARGS, TEST, NO_TEST);
  144.97 +        tester.printSummary();
  144.98 +    }
  144.99 +
 144.100 +    /**
 144.101 +     * {@inheritDoc}
 144.102 +     */
 144.103 +    public String getBugId() {
 144.104 +        return BUG_ID;
 144.105 +    }
 144.106 +
 144.107 +    /**
 144.108 +     * {@inheritDoc}
 144.109 +     */
 144.110 +    public String getBugName() {
 144.111 +        return getClass().getName();
 144.112 +    }
 144.113 +}
   145.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   145.2 +++ b/test/com/sun/javadoc/testHtmlTableStyles/pkg1/TestTable.java	Tue Oct 08 14:59:46 2013 -0700
   145.3 @@ -0,0 +1,84 @@
   145.4 +/*
   145.5 + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
   145.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   145.7 + *
   145.8 + * This code is free software; you can redistribute it and/or modify it
   145.9 + * under the terms of the GNU General Public License version 2 only, as
  145.10 + * published by the Free Software Foundation.
  145.11 + *
  145.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
  145.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  145.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  145.15 + * version 2 for more details (a copy is included in the LICENSE file that
  145.16 + * accompanied this code).
  145.17 + *
  145.18 + * You should have received a copy of the GNU General Public License version
  145.19 + * 2 along with this work; if not, write to the Free Software Foundation,
  145.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  145.21 + *
  145.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  145.23 + * or visit www.oracle.com if you need additional information or have any
  145.24 + * questions.
  145.25 + */
  145.26 +
  145.27 +package pkg1;
  145.28 +
  145.29 +/**
  145.30 + * Testing table in documentation comment. In the generated documentation, it
  145.31 + * should be displayed as a regular table and not have any styles that the javadoc
  145.32 + * generated tables have.
  145.33 + *
  145.34 + * <table border cellpadding=3 cellspacing=1>
  145.35 + * <caption>Summary of test table</caption>
  145.36 + *  <tr>
  145.37 + *    <td></td>
  145.38 + *    <td align=center colspan = 2> First Element (Head)</td>
  145.39 + *    <td align=center colspan = 2> Last Element (Tail)</td>
  145.40 + *  </tr>
  145.41 + *  <tr>
  145.42 + *    <td></td>
  145.43 + *    <td align=center><em>Throws exception</em></td>
  145.44 + *    <td align=center><em>Special value</em></td>
  145.45 + *    <td align=center><em>Throws exception</em></td>
  145.46 + *    <td align=center><em>Special value</em></td>
  145.47 + *  </tr>
  145.48 + *  <tr>
  145.49 + *    <td>Insert</td>
  145.50 + *    <td>addFirst(e)</td>
  145.51 + *    <td>offerFirst(e)</td>
  145.52 + *    <td>addLast(e)</td>
  145.53 + *    <td>offerLast(e)</td>
  145.54 + *  </tr>
  145.55 + *  <tr>
  145.56 + *    <td>Remove</td>
  145.57 + *    <td>removeFirst()</td>
  145.58 + *    <td>pollFirst()</td>
  145.59 + *    <td>removeLast()</td>
  145.60 + *    <td>pollLast()</td>
  145.61 + *  </tr>
  145.62 + * </table>
  145.63 + */
  145.64 +public class TestTable
  145.65 +{
  145.66 +    /**
  145.67 +     * Field in Class.
  145.68 +     */
  145.69 +    public String field;
  145.70 +
  145.71 +    /**
  145.72 +     * Field constant in Class.
  145.73 +     */
  145.74 +    public static final int fieldCnst = 0;
  145.75 +
  145.76 +    /**
  145.77 +     * Method in Class.
  145.78 +     */
  145.79 +    public void methodInClass(int i) {}
  145.80 +
  145.81 +    /**
  145.82 +     * Deprecated method in Class.
  145.83 +     * @deprecated Do not use it.
  145.84 +     */
  145.85 +    public void deprMethod() {}
  145.86 +
  145.87 +}
   146.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   146.2 +++ b/test/com/sun/javadoc/testHtmlTableStyles/pkg2/TestUse.java	Tue Oct 08 14:59:46 2013 -0700
   146.3 @@ -0,0 +1,34 @@
   146.4 +/*
   146.5 + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
   146.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   146.7 + *
   146.8 + * This code is free software; you can redistribute it and/or modify it
   146.9 + * under the terms of the GNU General Public License version 2 only, as
  146.10 + * published by the Free Software Foundation.
  146.11 + *
  146.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
  146.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  146.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  146.15 + * version 2 for more details (a copy is included in the LICENSE file that
  146.16 + * accompanied this code).
  146.17 + *
  146.18 + * You should have received a copy of the GNU General Public License version
  146.19 + * 2 along with this work; if not, write to the Free Software Foundation,
  146.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  146.21 + *
  146.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  146.23 + * or visit www.oracle.com if you need additional information or have any
  146.24 + * questions.
  146.25 + */
  146.26 +
  146.27 +package pkg2;
  146.28 +
  146.29 +import pkg1.*;
  146.30 +
  146.31 +/**
  146.32 + * Testing use of TestTable.
  146.33 + */
  146.34 +public class TestUse
  146.35 +{
  146.36 +    public TestTable tTable;
  146.37 +}
   147.1 --- a/test/com/sun/javadoc/testHtmlTableTags/TestHtmlTableTags.java	Wed Oct 02 13:26:54 2013 -0700
   147.2 +++ b/test/com/sun/javadoc/testHtmlTableTags/TestHtmlTableTags.java	Tue Oct 08 14:59:46 2013 -0700
   147.3 @@ -1,5 +1,5 @@
   147.4  /*
   147.5 - * Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved.
   147.6 + * Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved.
   147.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   147.8   *
   147.9   * This code is free software; you can redistribute it and/or modify it
  147.10 @@ -23,7 +23,7 @@
  147.11  
  147.12  /*
  147.13   * @test
  147.14 - * @bug      6786688
  147.15 + * @bug      6786688 8008164
  147.16   * @summary  HTML tables should have table summary, caption and table headers.
  147.17   * @author   Bhavesh Patel
  147.18   * @library  ../lib/
  147.19 @@ -50,121 +50,121 @@
  147.20  
  147.21          //Package summary
  147.22          {BUG_ID + FS + "pkg1" + FS + "package-summary.html",
  147.23 -            "<table class=\"packageSummary\" border=\"0\" cellpadding=\"3\"" +
  147.24 +            "<table class=\"typeSummary\" border=\"0\" cellpadding=\"3\"" +
  147.25              " cellspacing=\"0\" summary=\"Class Summary table, " +
  147.26              "listing classes, and an explanation\">"
  147.27          },
  147.28          {BUG_ID + FS + "pkg1" + FS + "package-summary.html",
  147.29 -            "<table class=\"packageSummary\" border=\"0\" cellpadding=\"3\"" +
  147.30 +            "<table class=\"typeSummary\" border=\"0\" cellpadding=\"3\"" +
  147.31              " cellspacing=\"0\" summary=\"Interface Summary table, " +
  147.32              "listing interfaces, and an explanation\">"
  147.33          },
  147.34          {BUG_ID + FS + "pkg2" + FS + "package-summary.html",
  147.35 -            "<table class=\"packageSummary\" border=\"0\" cellpadding=\"3\"" +
  147.36 +            "<table class=\"typeSummary\" border=\"0\" cellpadding=\"3\"" +
  147.37              " cellspacing=\"0\" summary=\"Enum Summary table, " +
  147.38              "listing enums, and an explanation\">"
  147.39          },
  147.40          {BUG_ID + FS + "pkg2" + FS + "package-summary.html",
  147.41 -            "<table class=\"packageSummary\" border=\"0\" cellpadding=\"3\"" +
  147.42 +            "<table class=\"typeSummary\" border=\"0\" cellpadding=\"3\"" +
  147.43              " cellspacing=\"0\" summary=\"Annotation Types Summary table, " +
  147.44              "listing annotation types, and an explanation\">"
  147.45          },
  147.46          // Class documentation
  147.47          {BUG_ID + FS + "pkg1" + FS + "C1.html",
  147.48 -            "<table class=\"overviewSummary\" border=\"0\" cellpadding=\"3\" " +
  147.49 +            "<table class=\"memberSummary\" border=\"0\" cellpadding=\"3\" " +
  147.50              "cellspacing=\"0\" summary=\"Field Summary table, listing fields, " +
  147.51              "and an explanation\">"
  147.52          },
  147.53          {BUG_ID + FS + "pkg1" + FS + "C1.html",
  147.54 -            "<table class=\"overviewSummary\" border=\"0\" cellpadding=\"3\" " +
  147.55 +            "<table class=\"memberSummary\" border=\"0\" cellpadding=\"3\" " +
  147.56              "cellspacing=\"0\" summary=\"Method Summary table, listing methods, " +
  147.57              "and an explanation\">"
  147.58          },
  147.59          {BUG_ID + FS + "pkg2" + FS + "C2.html",
  147.60 -            "<table class=\"overviewSummary\" border=\"0\" cellpadding=\"3\" " +
  147.61 +            "<table class=\"memberSummary\" border=\"0\" cellpadding=\"3\" " +
  147.62              "cellspacing=\"0\" summary=\"Nested Class Summary table, listing " +
  147.63              "nested classes, and an explanation\">"
  147.64          },
  147.65          {BUG_ID + FS + "pkg2" + FS + "C2.html",
  147.66 -            "<table class=\"overviewSummary\" border=\"0\" cellpadding=\"3\" " +
  147.67 +            "<table class=\"memberSummary\" border=\"0\" cellpadding=\"3\" " +
  147.68              "cellspacing=\"0\" summary=\"Constructor Summary table, listing " +
  147.69              "constructors, and an explanation\">"
  147.70          },
  147.71          {BUG_ID + FS + "pkg2" + FS + "C2.ModalExclusionType.html",
  147.72 -            "<table class=\"overviewSummary\" border=\"0\" cellpadding=\"3\" " +
  147.73 +            "<table class=\"memberSummary\" border=\"0\" cellpadding=\"3\" " +
  147.74              "cellspacing=\"0\" summary=\"Enum Constant Summary table, listing " +
  147.75              "enum constants, and an explanation\">"
  147.76          },
  147.77          {BUG_ID + FS + "pkg2" + FS + "C3.html",
  147.78 -            "<table class=\"overviewSummary\" border=\"0\" cellpadding=\"3\" " +
  147.79 +            "<table class=\"memberSummary\" border=\"0\" cellpadding=\"3\" " +
  147.80              "cellspacing=\"0\" summary=\"Required Element Summary table, " +
  147.81              "listing required elements, and an explanation\">"
  147.82          },
  147.83          {BUG_ID + FS + "pkg2" + FS + "C4.html",
  147.84 -            "<table class=\"overviewSummary\" border=\"0\" cellpadding=\"3\" " +
  147.85 +            "<table class=\"memberSummary\" border=\"0\" cellpadding=\"3\" " +
  147.86              "cellspacing=\"0\" summary=\"Optional Element Summary table, " +
  147.87              "listing optional elements, and an explanation\">"
  147.88          },
  147.89          // Class use documentation
  147.90          {BUG_ID + FS + "pkg1" + FS + "class-use" + FS + "I1.html",
  147.91 -            "<table border=\"0\" cellpadding=\"3\" cellspacing=\"0\" summary=\"Use " +
  147.92 +            "<table class=\"useSummary\" border=\"0\" cellpadding=\"3\" cellspacing=\"0\" summary=\"Use " +
  147.93              "table, listing packages, and an explanation\">"
  147.94          },
  147.95          {BUG_ID + FS + "pkg1" + FS + "class-use" + FS + "C1.html",
  147.96 -            "<table border=\"0\" cellpadding=\"3\" cellspacing=\"0\" summary=\"Use " +
  147.97 +            "<table class=\"useSummary\" border=\"0\" cellpadding=\"3\" cellspacing=\"0\" summary=\"Use " +
  147.98              "table, listing fields, and an explanation\">"
  147.99          },
 147.100          {BUG_ID + FS + "pkg1" + FS + "class-use" + FS + "C1.html",
 147.101 -            "<table border=\"0\" cellpadding=\"3\" cellspacing=\"0\" summary=\"Use " +
 147.102 +            "<table class=\"useSummary\" border=\"0\" cellpadding=\"3\" cellspacing=\"0\" summary=\"Use " +
 147.103              "table, listing methods, and an explanation\">"
 147.104          },
 147.105          {BUG_ID + FS + "pkg2" + FS + "class-use" + FS + "C2.html",
 147.106 -            "<table border=\"0\" cellpadding=\"3\" cellspacing=\"0\" summary=\"Use " +
 147.107 +            "<table class=\"useSummary\" border=\"0\" cellpadding=\"3\" cellspacing=\"0\" summary=\"Use " +
 147.108              "table, listing fields, and an explanation\">"
 147.109          },
 147.110          {BUG_ID + FS + "pkg2" + FS + "class-use" + FS + "C2.html",
 147.111 -            "<table border=\"0\" cellpadding=\"3\" cellspacing=\"0\" summary=\"Use " +
 147.112 +            "<table class=\"useSummary\" border=\"0\" cellpadding=\"3\" cellspacing=\"0\" summary=\"Use " +
 147.113              "table, listing methods, and an explanation\">"
 147.114          },
 147.115          {BUG_ID + FS + "pkg2" + FS + "class-use" + FS + "C2.ModalExclusionType.html",
 147.116 -            "<table border=\"0\" cellpadding=\"3\" cellspacing=\"0\" summary=\"Use " +
 147.117 +            "<table class=\"useSummary\" border=\"0\" cellpadding=\"3\" cellspacing=\"0\" summary=\"Use " +
 147.118              "table, listing packages, and an explanation\">"
 147.119          },
 147.120          {BUG_ID + FS + "pkg2" + FS + "class-use" + FS + "C2.ModalExclusionType.html",
 147.121 -            "<table border=\"0\" cellpadding=\"3\" cellspacing=\"0\" summary=\"Use " +
 147.122 +            "<table class=\"useSummary\" border=\"0\" cellpadding=\"3\" cellspacing=\"0\" summary=\"Use " +
 147.123              "table, listing methods, and an explanation\">"
 147.124          },
 147.125          // Package use documentation
 147.126          {BUG_ID + FS + "pkg1" + FS + "package-use.html",
 147.127 -            "<table border=\"0\" cellpadding=\"3\" cellspacing=\"0\" summary=\"Use " +
 147.128 +            "<table class=\"useSummary\" border=\"0\" cellpadding=\"3\" cellspacing=\"0\" summary=\"Use " +
 147.129              "table, listing packages, and an explanation\">"
 147.130          },
 147.131          {BUG_ID + FS + "pkg1" + FS + "package-use.html",
 147.132 -            "<table border=\"0\" cellpadding=\"3\" cellspacing=\"0\" summary=\"Use " +
 147.133 +            "<table class=\"useSummary\" border=\"0\" cellpadding=\"3\" cellspacing=\"0\" summary=\"Use " +
 147.134              "table, listing classes, and an explanation\">"
 147.135          },
 147.136          {BUG_ID + FS + "pkg2" + FS + "package-use.html",
 147.137 -            "<table border=\"0\" cellpadding=\"3\" cellspacing=\"0\" summary=\"Use " +
 147.138 +            "<table class=\"useSummary\" border=\"0\" cellpadding=\"3\" cellspacing=\"0\" summary=\"Use " +
 147.139              "table, listing packages, and an explanation\">"
 147.140          },
 147.141          {BUG_ID + FS + "pkg2" + FS + "package-use.html",
 147.142 -            "<table border=\"0\" cellpadding=\"3\" cellspacing=\"0\" summary=\"Use " +
 147.143 +            "<table class=\"useSummary\" border=\"0\" cellpadding=\"3\" cellspacing=\"0\" summary=\"Use " +
 147.144              "table, listing classes, and an explanation\">"
 147.145          },
 147.146          // Deprecated
 147.147          {BUG_ID + FS + "deprecated-list.html",
 147.148 -            "<table border=\"0\" cellpadding=\"3\" cellspacing=\"0\" " +
 147.149 +            "<table class=\"deprecatedSummary\" border=\"0\" cellpadding=\"3\" cellspacing=\"0\" " +
 147.150              "summary=\"Deprecated Fields table, listing deprecated fields, " +
 147.151              "and an explanation\">"
 147.152          },
 147.153          {BUG_ID + FS + "deprecated-list.html",
 147.154 -            "<table border=\"0\" cellpadding=\"3\" cellspacing=\"0\" " +
 147.155 +            "<table class=\"deprecatedSummary\" border=\"0\" cellpadding=\"3\" cellspacing=\"0\" " +
 147.156              "summary=\"Deprecated Methods table, listing deprecated methods, " +
 147.157              "and an explanation\">"
 147.158          },
 147.159          // Constant values
 147.160          {BUG_ID + FS + "constant-values.html",
 147.161 -            "<table border=\"0\" cellpadding=\"3\" cellspacing=\"0\" " +
 147.162 +            "<table class=\"constantsSummary\" border=\"0\" cellpadding=\"3\" cellspacing=\"0\" " +
 147.163              "summary=\"Constant Field Values table, listing " +
 147.164              "constant fields, and values\">"
 147.165          },
   148.1 --- a/test/com/sun/javadoc/testJavascript/TestJavascript.java	Wed Oct 02 13:26:54 2013 -0700
   148.2 +++ b/test/com/sun/javadoc/testJavascript/TestJavascript.java	Tue Oct 08 14:59:46 2013 -0700
   148.3 @@ -23,7 +23,7 @@
   148.4  
   148.5  /*
   148.6   * @test
   148.7 - * @bug      4665566 4855876 7025314 8012375 8015997 8016328
   148.8 + * @bug      4665566 4855876 7025314 8012375 8015997 8016328 8024756
   148.9   * @summary  Verify that the output has the right javascript.
  148.10   * @author   jamieh
  148.11   * @library  ../lib/
  148.12 @@ -104,9 +104,13 @@
  148.13  
  148.14          //Make sure title javascript only runs if is-external is not true
  148.15          {BUG_ID + FS + "pkg" + FS + "C.html",
  148.16 -                "    if (location.href.indexOf('is-external=true') == -1) {" + NL +
  148.17 -                "        parent.document.title=\"C\";" + NL +
  148.18 -                        "    }"},
  148.19 +            "    try {" + NL +
  148.20 +            "        if (location.href.indexOf('is-external=true') == -1) {" + NL +
  148.21 +            "            parent.document.title=\"C\";" + NL +
  148.22 +            "        }" + NL +
  148.23 +            "    }" + NL +
  148.24 +            "    catch(err) {" + NL +
  148.25 +            "    }"},
  148.26      };
  148.27  
  148.28      private static final String[][] NEGATED_TEST = NO_TEST;
   149.1 --- a/test/com/sun/javadoc/testProfiles/TestProfiles.java	Wed Oct 02 13:26:54 2013 -0700
   149.2 +++ b/test/com/sun/javadoc/testProfiles/TestProfiles.java	Tue Oct 08 14:59:46 2013 -0700
   149.3 @@ -23,7 +23,7 @@
   149.4  
   149.5  /*
   149.6   * @test
   149.7 - * @bug      8006124 8009684 8016921 8023700 8024096
   149.8 + * @bug      8006124 8009684 8016921 8023700 8024096 8008164
   149.9   * @summary  Test javadoc support for profiles.
  149.10   * @author   Bhavesh Patel, Evgeniya Stepanova
  149.11   * @library  ../lib/
  149.12 @@ -137,7 +137,7 @@
  149.13          },
  149.14          // need to add teststring when JDK-8015496 will be fixed
  149.15          //Test exception in profiles
  149.16 -        {PROFILE_BUG_ID + FS + "compact1-summary.html","<table class=\"packageSummary\" "
  149.17 +        {PROFILE_BUG_ID + FS + "compact1-summary.html","<table class=\"typeSummary\" "
  149.18              + "border=\"0\" cellpadding=\"3\" cellspacing=\"0\" "
  149.19              + "summary=\"Exception Summary table, listing exceptions, and an explanation\">"
  149.20              + NL + "<caption><span>Exception Summary</span><span class=\"tabEnd\">"
  149.21 @@ -149,7 +149,7 @@
  149.22          },
  149.23          //Test errors in profiles
  149.24          {PROFILE_BUG_ID + FS + "compact1-summary.html",
  149.25 -            "<table class=\"packageSummary\" border=\"0\" cellpadding=\"3\" cellspacing=\"0\" "
  149.26 +            "<table class=\"typeSummary\" border=\"0\" cellpadding=\"3\" cellspacing=\"0\" "
  149.27              + "summary=\"Error Summary table, listing errors, and an explanation\">"
  149.28              + NL + "<caption><span>Error Summary</span><span class=\"tabEnd\">&nbsp;"
  149.29              + "</span></caption>" + NL + "<tr>" + NL + "<th class=\"colFirst\""
   150.1 --- a/test/com/sun/javadoc/testStylesheet/TestStylesheet.java	Wed Oct 02 13:26:54 2013 -0700
   150.2 +++ b/test/com/sun/javadoc/testStylesheet/TestStylesheet.java	Tue Oct 08 14:59:46 2013 -0700
   150.3 @@ -23,7 +23,7 @@
   150.4  
   150.5  /*
   150.6   * @test
   150.7 - * @bug      4494033 7028815 7052425 8007338 8023608
   150.8 + * @bug      4494033 7028815 7052425 8007338 8023608 8008164
   150.9   * @summary  Run tests on doclet stylesheet.
  150.10   * @author   jamieh
  150.11   * @library  ../lib/
  150.12 @@ -59,10 +59,8 @@
  150.13          {BUG_ID + FS + "stylesheet.css",
  150.14              "ul {" + NL + "    list-style-type:disc;" + NL + "}"},
  150.15          {BUG_ID + FS + "stylesheet.css",
  150.16 -            ".overviewSummary caption, .packageSummary caption, " +
  150.17 -            ".contentContainer ul.blockList li.blockList caption, " +
  150.18 -            ".summary caption, .classUseContainer caption, " +
  150.19 -            ".constantValuesContainer caption {" + NL +
  150.20 +            ".overviewSummary caption, .memberSummary caption, .typeSummary caption," + NL +
  150.21 +            ".useSummary caption, .constantsSummary caption, .deprecatedSummary caption {" + NL +
  150.22              "    position:relative;" + NL +
  150.23              "    text-align:left;" + NL +
  150.24              "    background-repeat:no-repeat;" + NL +
  150.25 @@ -74,10 +72,8 @@
  150.26              "    margin:0px;" + NL +
  150.27              "}"},
  150.28          {BUG_ID + FS + "stylesheet.css",
  150.29 -            ".overviewSummary caption span, .packageSummary caption span, " +
  150.30 -            ".contentContainer ul.blockList li.blockList caption span, " +
  150.31 -            ".summary caption span, .classUseContainer caption span, " +
  150.32 -            ".constantValuesContainer caption span {" + NL +
  150.33 +            ".overviewSummary caption span, .memberSummary caption span, .typeSummary caption span," + NL +
  150.34 +            ".useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span {" + NL +
  150.35              "    white-space:nowrap;" + NL +
  150.36              "    padding-top:8px;" + NL +
  150.37              "    padding-left:8px;" + NL +
  150.38 @@ -86,8 +82,7 @@
  150.39              "    background-image:url(resources/titlebar.gif);" + NL +
  150.40              "}"},
  150.41          {BUG_ID + FS + "stylesheet.css",
  150.42 -            ".contentContainer ul.blockList li.blockList caption " +
  150.43 -            "span.activeTableTab span {" + NL +
  150.44 +            ".memberSummary caption span.activeTableTab span {" + NL +
  150.45              "    white-space:nowrap;" + NL +
  150.46              "    padding-top:8px;" + NL +
  150.47              "    padding-left:8px;" + NL +
  150.48 @@ -96,7 +91,7 @@
  150.49              "    background-image:url(resources/activetitlebar.gif);" + NL +
  150.50              "}"},
  150.51          {BUG_ID + FS + "stylesheet.css",
  150.52 -            ".contentContainer ul.blockList li.blockList caption span.tableTab span {" + NL +
  150.53 +            ".memberSummary caption span.tableTab span {" + NL +
  150.54              "    white-space:nowrap;" + NL +
  150.55              "    padding-top:8px;" + NL +
  150.56              "    padding-left:8px;" + NL +
  150.57 @@ -105,8 +100,7 @@
  150.58              "    background-image:url(resources/titlebar.gif);" + NL +
  150.59              "}"},
  150.60          {BUG_ID + FS + "stylesheet.css",
  150.61 -            ".contentContainer ul.blockList li.blockList caption span.tableTab, " +
  150.62 -            ".contentContainer ul.blockList li.blockList caption span.activeTableTab {" + NL +
  150.63 +            ".memberSummary caption span.tableTab, .memberSummary caption span.activeTableTab {" + NL +
  150.64              "    padding-top:0px;" + NL +
  150.65              "    padding-left:0px;" + NL +
  150.66              "    background-image:none;" + NL +
   151.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   151.2 +++ b/test/tools/javac/ArraysInIntersections.java	Tue Oct 08 14:59:46 2013 -0700
   151.3 @@ -0,0 +1,39 @@
   151.4 +/*
   151.5 + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
   151.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   151.7 + *
   151.8 + * This code is free software; you can redistribute it and/or modify it
   151.9 + * under the terms of the GNU General Public License version 2 only, as
  151.10 + * published by the Free Software Foundation.
  151.11 + *
  151.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
  151.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  151.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  151.15 + * version 2 for more details (a copy is included in the LICENSE file that
  151.16 + * accompanied this code).
  151.17 + *
  151.18 + * You should have received a copy of the GNU General Public License version
  151.19 + * 2 along with this work; if not, write to the Free Software Foundation,
  151.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  151.21 + *
  151.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  151.23 + * or visit www.oracle.com if you need additional information or have any
  151.24 + * questions.
  151.25 + */
  151.26 +
  151.27 +/*
  151.28 + * @test
  151.29 + * @bug 8021339
  151.30 + * @summary Allow arrays in intersection types
  151.31 + * @compile ArraysInIntersections.java
  151.32 + */
  151.33 +
  151.34 +import java.io.Serializable;
  151.35 +
  151.36 +public class ArraysInIntersections<T extends Serializable & Integer[]> {
  151.37 +
  151.38 +    public <S extends Serializable & Integer[]> Object m() {
  151.39 +        return (Serializable & Integer[]) new Integer[1];
  151.40 +    }
  151.41 +
  151.42 +}
   152.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   152.2 +++ b/test/tools/javac/InferArraysInIntersections.java	Tue Oct 08 14:59:46 2013 -0700
   152.3 @@ -0,0 +1,38 @@
   152.4 +/*
   152.5 + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
   152.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   152.7 + *
   152.8 + * This code is free software; you can redistribute it and/or modify it
   152.9 + * under the terms of the GNU General Public License version 2 only, as
  152.10 + * published by the Free Software Foundation.
  152.11 + *
  152.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
  152.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  152.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  152.15 + * version 2 for more details (a copy is included in the LICENSE file that
  152.16 + * accompanied this code).
  152.17 + *
  152.18 + * You should have received a copy of the GNU General Public License version
  152.19 + * 2 along with this work; if not, write to the Free Software Foundation,
  152.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  152.21 + *
  152.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  152.23 + * or visit www.oracle.com if you need additional information or have any
  152.24 + * questions.
  152.25 + */
  152.26 +
  152.27 +/*
  152.28 + * @test
  152.29 + * @bug 8021339
  152.30 + * @summary Allow arrays in intersection types
  152.31 + * @compile -doe -XDrawDiagnostics InferArraysInIntersections.java
  152.32 + */
  152.33 +import java.util.*;
  152.34 +
  152.35 +class InferArraysInIntersections {
  152.36 +   <T> T m(List<? super T> t) { return null; }
  152.37 +
  152.38 +   void test(List<char[]> lc) {
  152.39 +      Runnable r = m(lc); //inference fails here
  152.40 +   }
  152.41 +}
   153.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   153.2 +++ b/test/tools/javac/annotations/neg/8022765/T8022765.java	Tue Oct 08 14:59:46 2013 -0700
   153.3 @@ -0,0 +1,141 @@
   153.4 +/**
   153.5 + * @test /nodynamiccopyright/
   153.6 + * @bug 8022765
   153.7 + * @summary javac should not crash for incorrect attribute values
   153.8 + * @build VerifyAnnotationsAttributed
   153.9 + * @run main VerifyAnnotationsAttributed T8022765.java
  153.10 + * @compile/fail/ref=T8022765.out -XDrawDiagnostics T8022765.java
  153.11 + */
  153.12 +@Ann(@Override)
  153.13 +@Primitive(@Override)
  153.14 +@Str(@Override)
  153.15 +@En(@Override)
  153.16 +@ArrAnn(@Override)
  153.17 +@ArrPrimitive(@Override)
  153.18 +@ArrStr(@Override)
  153.19 +@ArrEn(@Override)
  153.20 +class AnnC { }
  153.21 +
  153.22 +class PrimitiveC {
  153.23 +    private static final int C = 1;
  153.24 +    @Ann(C)
  153.25 +    @Primitive(C)
  153.26 +    @Str(C)
  153.27 +    @En(C)
  153.28 +    @ArrAnn(C)
  153.29 +    @ArrPrimitive(C)
  153.30 +    @ArrStr(C)
  153.31 +    @ArrEn(C)
  153.32 +    class I {
  153.33 +    }
  153.34 +}
  153.35 +
  153.36 +class StringC {
  153.37 +
  153.38 +    private static final String C = "";
  153.39 +
  153.40 +    @Ann(C)
  153.41 +    @Primitive(C)
  153.42 +    @Str(C)
  153.43 +    @En(C)
  153.44 +    @ArrAnn(C)
  153.45 +    @ArrPrimitive(C)
  153.46 +    @ArrStr(C)
  153.47 +    @ArrEn(C)
  153.48 +    class I {
  153.49 +    }
  153.50 +}
  153.51 +
  153.52 +@Ann(E.A)
  153.53 +@Primitive(E.A)
  153.54 +@Str(E.A)
  153.55 +@En(E.A)
  153.56 +@ArrAnn(E.A)
  153.57 +@ArrPrimitive(E.A)
  153.58 +@ArrStr(E.A)
  153.59 +@ArrEn(E.A)
  153.60 +class EnC { }
  153.61 +
  153.62 +@Ann({@Override})
  153.63 +@Primitive({@Override})
  153.64 +@Str({@Override})
  153.65 +@En({@Override})
  153.66 +@ArrAnn({@Override})
  153.67 +@ArrPrimitive({@Override})
  153.68 +@ArrStr({@Override})
  153.69 +@ArrEn({@Override})
  153.70 +class ArrAnnC { }
  153.71 +
  153.72 +class ArrPrimitiveC {
  153.73 +    private static final int C = 1;
  153.74 +    @Ann({C})
  153.75 +    @Primitive({C})
  153.76 +    @Str({C})
  153.77 +    @En({C})
  153.78 +    @ArrAnn({C})
  153.79 +    @ArrPrimitive({C})
  153.80 +    @ArrStr({C})
  153.81 +    @ArrEn({C})
  153.82 +    class I {
  153.83 +    }
  153.84 +}
  153.85 +
  153.86 +class ArrStringC {
  153.87 +    private static final String C = "";
  153.88 +    @Ann({C})
  153.89 +    @Primitive({C})
  153.90 +    @Str({C})
  153.91 +    @En({C})
  153.92 +    @ArrAnn({C})
  153.93 +    @ArrPrimitive({C})
  153.94 +    @ArrStr({C})
  153.95 +    @ArrEn({C})
  153.96 +    class I {
  153.97 +    }
  153.98 +}
  153.99 +
 153.100 +@Ann({E.A})
 153.101 +@Primitive({E.A})
 153.102 +@Str({E.A})
 153.103 +@En({E.A})
 153.104 +@ArrAnn({E.A})
 153.105 +@ArrPrimitive({E.A})
 153.106 +@ArrStr({E.A})
 153.107 +@ArrEn({E.A})
 153.108 +class ArrEnC { }
 153.109 +
 153.110 +@interface Ann {
 153.111 +    Override value();
 153.112 +}
 153.113 +
 153.114 +@interface Primitive {
 153.115 +    int value();
 153.116 +}
 153.117 +
 153.118 +@interface Str {
 153.119 +    String value();
 153.120 +}
 153.121 +
 153.122 +@interface En {
 153.123 +    E value();
 153.124 +}
 153.125 +
 153.126 +@interface ArrAnn {
 153.127 +    Override[] value();
 153.128 +}
 153.129 +
 153.130 +@interface ArrPrimitive {
 153.131 +    int[] value();
 153.132 +}
 153.133 +
 153.134 +@interface ArrStr {
 153.135 +    String[] value();
 153.136 +}
 153.137 +
 153.138 +@interface ArrEn {
 153.139 +    E[] value();
 153.140 +}
 153.141 +
 153.142 +enum E {
 153.143 +    A;
 153.144 +}
   154.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   154.2 +++ b/test/tools/javac/annotations/neg/8022765/T8022765.out	Tue Oct 08 14:59:46 2013 -0700
   154.3 @@ -0,0 +1,57 @@
   154.4 +T8022765.java:10:12: compiler.err.annotation.not.valid.for.type: int
   154.5 +T8022765.java:11:6: compiler.err.annotation.not.valid.for.type: java.lang.String
   154.6 +T8022765.java:12:5: compiler.err.annotation.not.valid.for.type: E
   154.7 +T8022765.java:14:15: compiler.err.annotation.not.valid.for.type: int
   154.8 +T8022765.java:15:9: compiler.err.annotation.not.valid.for.type: java.lang.String
   154.9 +T8022765.java:16:8: compiler.err.annotation.not.valid.for.type: E
  154.10 +T8022765.java:21:10: compiler.err.annotation.value.must.be.annotation
  154.11 +T8022765.java:23:10: compiler.err.prob.found.req: (compiler.misc.inconvertible.types: int, java.lang.String)
  154.12 +T8022765.java:24:9: compiler.err.prob.found.req: (compiler.misc.inconvertible.types: int, E)
  154.13 +T8022765.java:25:13: compiler.err.annotation.value.must.be.annotation
  154.14 +T8022765.java:27:13: compiler.err.prob.found.req: (compiler.misc.inconvertible.types: int, java.lang.String)
  154.15 +T8022765.java:28:12: compiler.err.prob.found.req: (compiler.misc.inconvertible.types: int, E)
  154.16 +T8022765.java:37:10: compiler.err.annotation.value.must.be.annotation
  154.17 +T8022765.java:38:16: compiler.err.prob.found.req: (compiler.misc.inconvertible.types: java.lang.String, int)
  154.18 +T8022765.java:40:9: compiler.err.prob.found.req: (compiler.misc.inconvertible.types: java.lang.String, E)
  154.19 +T8022765.java:41:13: compiler.err.annotation.value.must.be.annotation
  154.20 +T8022765.java:42:19: compiler.err.prob.found.req: (compiler.misc.inconvertible.types: java.lang.String, int)
  154.21 +T8022765.java:44:12: compiler.err.prob.found.req: (compiler.misc.inconvertible.types: java.lang.String, E)
  154.22 +T8022765.java:49:7: compiler.err.annotation.value.must.be.annotation
  154.23 +T8022765.java:50:13: compiler.err.prob.found.req: (compiler.misc.inconvertible.types: E, int)
  154.24 +T8022765.java:51:7: compiler.err.prob.found.req: (compiler.misc.inconvertible.types: E, java.lang.String)
  154.25 +T8022765.java:53:10: compiler.err.annotation.value.must.be.annotation
  154.26 +T8022765.java:54:16: compiler.err.prob.found.req: (compiler.misc.inconvertible.types: E, int)
  154.27 +T8022765.java:55:10: compiler.err.prob.found.req: (compiler.misc.inconvertible.types: E, java.lang.String)
  154.28 +T8022765.java:59:6: compiler.err.annotation.value.not.allowable.type
  154.29 +T8022765.java:60:12: compiler.err.annotation.value.not.allowable.type
  154.30 +T8022765.java:61:6: compiler.err.annotation.value.not.allowable.type
  154.31 +T8022765.java:62:5: compiler.err.annotation.value.not.allowable.type
  154.32 +T8022765.java:64:16: compiler.err.annotation.not.valid.for.type: int
  154.33 +T8022765.java:65:10: compiler.err.annotation.not.valid.for.type: java.lang.String
  154.34 +T8022765.java:66:9: compiler.err.annotation.not.valid.for.type: E
  154.35 +T8022765.java:71:10: compiler.err.annotation.value.not.allowable.type
  154.36 +T8022765.java:72:16: compiler.err.annotation.value.not.allowable.type
  154.37 +T8022765.java:73:10: compiler.err.annotation.value.not.allowable.type
  154.38 +T8022765.java:74:9: compiler.err.annotation.value.not.allowable.type
  154.39 +T8022765.java:75:14: compiler.err.annotation.value.must.be.annotation
  154.40 +T8022765.java:77:14: compiler.err.prob.found.req: (compiler.misc.inconvertible.types: int, java.lang.String)
  154.41 +T8022765.java:78:13: compiler.err.prob.found.req: (compiler.misc.inconvertible.types: int, E)
  154.42 +T8022765.java:85:10: compiler.err.annotation.value.not.allowable.type
  154.43 +T8022765.java:86:16: compiler.err.annotation.value.not.allowable.type
  154.44 +T8022765.java:87:10: compiler.err.annotation.value.not.allowable.type
  154.45 +T8022765.java:88:9: compiler.err.annotation.value.not.allowable.type
  154.46 +T8022765.java:89:14: compiler.err.annotation.value.must.be.annotation
  154.47 +T8022765.java:90:20: compiler.err.prob.found.req: (compiler.misc.inconvertible.types: java.lang.String, int)
  154.48 +T8022765.java:92:13: compiler.err.prob.found.req: (compiler.misc.inconvertible.types: java.lang.String, E)
  154.49 +T8022765.java:97:6: compiler.err.annotation.value.not.allowable.type
  154.50 +T8022765.java:97:8: compiler.err.attribute.value.must.be.constant
  154.51 +T8022765.java:98:12: compiler.err.annotation.value.not.allowable.type
  154.52 +T8022765.java:98:14: compiler.err.attribute.value.must.be.constant
  154.53 +T8022765.java:99:6: compiler.err.annotation.value.not.allowable.type
  154.54 +T8022765.java:99:8: compiler.err.attribute.value.must.be.constant
  154.55 +T8022765.java:100:5: compiler.err.annotation.value.not.allowable.type
  154.56 +T8022765.java:100:7: compiler.err.attribute.value.must.be.constant
  154.57 +T8022765.java:101:11: compiler.err.annotation.value.must.be.annotation
  154.58 +T8022765.java:102:17: compiler.err.prob.found.req: (compiler.misc.inconvertible.types: E, int)
  154.59 +T8022765.java:103:11: compiler.err.prob.found.req: (compiler.misc.inconvertible.types: E, java.lang.String)
  154.60 +56 errors
  154.61 \ No newline at end of file
   155.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   155.2 +++ b/test/tools/javac/annotations/neg/8022765/VerifyAnnotationsAttributed.java	Tue Oct 08 14:59:46 2013 -0700
   155.3 @@ -0,0 +1,78 @@
   155.4 +/*
   155.5 + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
   155.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   155.7 + *
   155.8 + * This code is free software; you can redistribute it and/or modify it
   155.9 + * under the terms of the GNU General Public License version 2 only, as
  155.10 + * published by the Free Software Foundation.
  155.11 + *
  155.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
  155.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  155.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  155.15 + * version 2 for more details (a copy is included in the LICENSE file that
  155.16 + * accompanied this code).
  155.17 + *
  155.18 + * You should have received a copy of the GNU General Public License version
  155.19 + * 2 along with this work; if not, write to the Free Software Foundation,
  155.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  155.21 + *
  155.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  155.23 + * or visit www.oracle.com if you need additional information or have any
  155.24 + * questions.
  155.25 + */
  155.26 +import com.sun.source.tree.CompilationUnitTree;
  155.27 +import com.sun.source.tree.IdentifierTree;
  155.28 +import com.sun.source.tree.MemberSelectTree;
  155.29 +import com.sun.source.util.JavacTask;
  155.30 +import com.sun.source.util.TreePathScanner;
  155.31 +import com.sun.source.util.Trees;
  155.32 +import com.sun.tools.javac.api.JavacTool;
  155.33 +import com.sun.tools.javac.file.JavacFileManager;
  155.34 +import java.io.File;
  155.35 +import java.io.IOException;
  155.36 +import java.net.URISyntaxException;
  155.37 +import java.util.Collections;
  155.38 +import javax.lang.model.element.Element;
  155.39 +import javax.lang.model.element.ElementKind;
  155.40 +
  155.41 +public class VerifyAnnotationsAttributed {
  155.42 +    public static void main(String... args) throws IOException, URISyntaxException {
  155.43 +        if (args.length != 1) throw new IllegalStateException("Must provide class name!");
  155.44 +        File testSrc = new File(System.getProperty("test.src"));
  155.45 +        File testFile = new File(testSrc, args[0]);
  155.46 +        if (!testFile.canRead()) throw new IllegalStateException("Cannot read the test source");
  155.47 +        JavacFileManager fm = JavacTool.create().getStandardFileManager(null, null, null);
  155.48 +        JavacTask task = JavacTool.create().getTask(null,
  155.49 +                                                    fm,
  155.50 +                                                    null,
  155.51 +                                                    Collections.<String>emptyList(),
  155.52 +                                                    null,
  155.53 +                                                    fm.getJavaFileObjects(testFile));
  155.54 +        final Trees trees = Trees.instance(task);
  155.55 +        final CompilationUnitTree cut = task.parse().iterator().next();
  155.56 +        task.analyze();
  155.57 +
  155.58 +        //ensure all the annotation attributes are annotated meaningfully
  155.59 +        //all the attributes in the test file should contain either an identifier
  155.60 +        //or a select, so only checking those for a reasonable Element/Symbol.
  155.61 +        new TreePathScanner<Void, Void>() {
  155.62 +            @Override
  155.63 +            public Void visitIdentifier(IdentifierTree node, Void p) {
  155.64 +                verifyAttributedMeaningfully();
  155.65 +                return super.visitIdentifier(node, p);
  155.66 +            }
  155.67 +            @Override
  155.68 +            public Void visitMemberSelect(MemberSelectTree node, Void p) {
  155.69 +                verifyAttributedMeaningfully();
  155.70 +                return super.visitMemberSelect(node, p);
  155.71 +            }
  155.72 +            private void verifyAttributedMeaningfully() {
  155.73 +                Element el = trees.getElement(getCurrentPath());
  155.74 +
  155.75 +                if (el == null || el.getKind() == ElementKind.OTHER) {
  155.76 +                    throw new IllegalStateException("Not attributed properly: " + getCurrentPath().getParentPath().getLeaf());
  155.77 +                }
  155.78 +            }
  155.79 +        }.scan(cut, null);
  155.80 +    }
  155.81 +}
   156.1 --- a/test/tools/javac/api/TestJavacTask.java	Wed Oct 02 13:26:54 2013 -0700
   156.2 +++ b/test/tools/javac/api/TestJavacTask.java	Tue Oct 08 14:59:46 2013 -0700
   156.3 @@ -1,5 +1,5 @@
   156.4  /*
   156.5 - * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved.
   156.6 + * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
   156.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   156.8   *
   156.9   * This code is free software; you can redistribute it and/or modify it
  156.10 @@ -23,8 +23,8 @@
  156.11  
  156.12  /*
  156.13   * @test
  156.14 - * @bug     4813736
  156.15 - * @summary Provide a basic test of access to the Java Model from javac
  156.16 + * @bug     4813736 8015073
  156.17 + * @summary Provide a basic test of access to the Java Model from javac, and error messages
  156.18   * @author  Peter von der Ah\u00e9
  156.19   * @run main TestJavacTask TestJavacTask.java
  156.20   */
  156.21 @@ -40,21 +40,36 @@
  156.22  import javax.tools.ToolProvider;
  156.23  
  156.24  public class TestJavacTask {
  156.25 -
  156.26 -    static JavacTaskImpl getTask(JavaCompiler compiler, File... file) {
  156.27 +    static final JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
  156.28 +    static JavacTaskImpl getTask(File... file) {
  156.29          StandardJavaFileManager fm = compiler.getStandardFileManager(null, null, null);
  156.30          Iterable<? extends JavaFileObject> files =
  156.31              fm.getJavaFileObjectsFromFiles(Arrays.asList(file));
  156.32          return (JavacTaskImpl)compiler.getTask(null, fm, null, null, null, files);
  156.33      }
  156.34  
  156.35 -    public static void main(String... args) throws IOException {
  156.36 -        JavaCompiler tool = ToolProvider.getSystemJavaCompiler();
  156.37 +    static void basicTest(String... args) throws IOException {
  156.38          String srcdir = System.getProperty("test.src");
  156.39          File file = new File(srcdir, args[0]);
  156.40 -        JavacTaskImpl task = getTask(tool, file);
  156.41 +        JavacTaskImpl task = getTask(file);
  156.42          for (TypeElement clazz : task.enter(task.parse()))
  156.43              System.out.println(clazz.getSimpleName());
  156.44      }
  156.45  
  156.46 +    static void checkKindError() {
  156.47 +        final File testFile = new File("Test.java "); // <-note trailing space!
  156.48 +        try {
  156.49 +            getTask(testFile);
  156.50 +        } catch (IllegalArgumentException iae) {
  156.51 +            if (!iae.getMessage().contains("\"" + testFile.getName() + "\"")) {
  156.52 +                System.err.println("Got message: " + iae.getMessage());
  156.53 +                throw new RuntimeException("Error: expected string not found");
  156.54 +            }
  156.55 +        }
  156.56 +    }
  156.57 +
  156.58 +    public static void main(String... args) throws IOException {
  156.59 +        basicTest(args);
  156.60 +        checkKindError();
  156.61 +    }
  156.62  }
   157.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   157.2 +++ b/test/tools/javac/diags/examples/UnderscoreInLambdaExpression.java	Tue Oct 08 14:59:46 2013 -0700
   157.3 @@ -0,0 +1,27 @@
   157.4 +/*
   157.5 + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
   157.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   157.7 + *
   157.8 + * This code is free software; you can redistribute it and/or modify it
   157.9 + * under the terms of the GNU General Public License version 2 only, as
  157.10 + * published by the Free Software Foundation.
  157.11 + *
  157.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
  157.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  157.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  157.15 + * version 2 for more details (a copy is included in the LICENSE file that
  157.16 + * accompanied this code).
  157.17 + *
  157.18 + * You should have received a copy of the GNU General Public License version
  157.19 + * 2 along with this work; if not, write to the Free Software Foundation,
  157.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  157.21 + *
  157.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  157.23 + * or visit www.oracle.com if you need additional information or have any
  157.24 + * questions.
  157.25 + */
  157.26 +
  157.27 +// key: compiler.err.underscore.as.identifier.in.lambda
  157.28 +public class UnderscoreInLambdaExpression {
  157.29 +    java.util.function.Function<String,String> f = _ -> "x";
  157.30 +}
   158.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   158.2 +++ b/test/tools/javac/enum/EnumAsIdentifier.java	Tue Oct 08 14:59:46 2013 -0700
   158.3 @@ -0,0 +1,16 @@
   158.4 +/**
   158.5 + * @test    /nodynamiccopyright/
   158.6 + * @bug     8025537
   158.7 + * @author  sogoel
   158.8 + * @summary enum keyword used as an identifier
   158.9 + * @compile/ref=EnumAsIdentifier4.out -XDrawDiagnostics -source 1.4 EnumAsIdentifier.java
  158.10 + * @compile/fail/ref=EnumAsIdentifier5.out -XDrawDiagnostics -source 1.5 EnumAsIdentifier.java
  158.11 + * @compile/fail/ref=EnumAsIdentifier.out -XDrawDiagnostics EnumAsIdentifier.java
  158.12 + */
  158.13 +
  158.14 +public class EnumAsIdentifier {
  158.15 +
  158.16 +    int enum = 0;
  158.17 +
  158.18 +}
  158.19 +
   159.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   159.2 +++ b/test/tools/javac/enum/EnumAsIdentifier.out	Tue Oct 08 14:59:46 2013 -0700
   159.3 @@ -0,0 +1,2 @@
   159.4 +EnumAsIdentifier.java:13:9: compiler.err.enum.as.identifier
   159.5 +1 error
   160.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   160.2 +++ b/test/tools/javac/enum/EnumAsIdentifier4.out	Tue Oct 08 14:59:46 2013 -0700
   160.3 @@ -0,0 +1,6 @@
   160.4 +- compiler.warn.source.no.bootclasspath: 1.4
   160.5 +- compiler.warn.option.obsolete.source: 1.4
   160.6 +- compiler.warn.option.obsolete.target: 1.4
   160.7 +- compiler.warn.option.obsolete.suppression
   160.8 +EnumAsIdentifier.java:13:9: compiler.warn.enum.as.identifier
   160.9 +5 warnings
   161.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   161.2 +++ b/test/tools/javac/enum/EnumAsIdentifier5.out	Tue Oct 08 14:59:46 2013 -0700
   161.3 @@ -0,0 +1,6 @@
   161.4 +- compiler.warn.source.no.bootclasspath: 1.5
   161.5 +- compiler.warn.option.obsolete.source: 1.5
   161.6 +- compiler.warn.option.obsolete.suppression
   161.7 +EnumAsIdentifier.java:13:9: compiler.err.enum.as.identifier
   161.8 +1 error
   161.9 +3 warnings
   162.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   162.2 +++ b/test/tools/javac/enum/EnumMembersOrder.java	Tue Oct 08 14:59:46 2013 -0700
   162.3 @@ -0,0 +1,20 @@
   162.4 +/**
   162.5 + * @test    /nodynamiccopyright/
   162.6 + * @bug     8025537 5028491
   162.7 + * @author  sogoel
   162.8 + * @summary enum constants should precede other enum members
   162.9 + * @compile/fail/ref=EnumMembersOrder.out -XDrawDiagnostics EnumMembersOrder.java
  162.10 + */
  162.11 +
  162.12 +enum Days {
  162.13 +
  162.14 +    Days(String d) { day = d; } // constructor
  162.15 +
  162.16 +    // enum constants
  162.17 +    WEEKEND("SAT"),
  162.18 +    WEEKDAY("MON");
  162.19 +
  162.20 +    private String day;
  162.21 +
  162.22 +}
  162.23 +
   163.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   163.2 +++ b/test/tools/javac/enum/EnumMembersOrder.out	Tue Oct 08 14:59:46 2013 -0700
   163.3 @@ -0,0 +1,7 @@
   163.4 +EnumMembersOrder.java:11:16: compiler.err.expected: ')'
   163.5 +EnumMembersOrder.java:11:17: compiler.err.expected3: ',', '}', ';'
   163.6 +EnumMembersOrder.java:11:19: compiler.err.expected: '}'
   163.7 +EnumMembersOrder.java:11:31: compiler.err.expected3: class, interface, enum
   163.8 +EnumMembersOrder.java:17:13: compiler.err.expected3: class, interface, enum
   163.9 +EnumMembersOrder.java:19:1: compiler.err.expected3: class, interface, enum
  163.10 +6 errors
   164.1 --- a/test/tools/javac/generics/OverrideBridge.java	Wed Oct 02 13:26:54 2013 -0700
   164.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
   164.3 @@ -1,166 +0,0 @@
   164.4 -/*
   164.5 - * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
   164.6 - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   164.7 - *
   164.8 - * This code is free software; you can redistribute it and/or modify it
   164.9 - * under the terms of the GNU General Public License version 2 only, as
  164.10 - * published by the Free Software Foundation.
  164.11 - *
  164.12 - * This code is distributed in the hope that it will be useful, but WITHOUT
  164.13 - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  164.14 - * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  164.15 - * version 2 for more details (a copy is included in the LICENSE file that
  164.16 - * accompanied this code).
  164.17 - *
  164.18 - * You should have received a copy of the GNU General Public License version
  164.19 - * 2 along with this work; if not, write to the Free Software Foundation,
  164.20 - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  164.21 - *
  164.22 - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  164.23 - * or visit www.oracle.com if you need additional information or have any
  164.24 - * questions.
  164.25 - */
  164.26 -
  164.27 -/*
  164.28 - * @test
  164.29 - * @bug 6337171 6996415
  164.30 - * @ignore 6996758: Investigate better override bridges strategy
  164.31 - * @summary  javac should create bridge methods when type variable bounds restricted
  164.32 - * @run main OverrideBridge
  164.33 - */
  164.34 -
  164.35 -// fix, and test, has been disabled as a consequence of 6996415
  164.36 -
  164.37 -import java.io.*;
  164.38 -import java.net.URI;
  164.39 -import java.util.ArrayList;
  164.40 -import java.util.Arrays;
  164.41 -import java.util.List;
  164.42 -import java.util.Map;
  164.43 -import java.util.HashMap;
  164.44 -import javax.tools.JavaCompiler;
  164.45 -import javax.tools.JavaFileObject;
  164.46 -import javax.tools.SimpleJavaFileObject;
  164.47 -import javax.tools.ToolProvider;
  164.48 -
  164.49 -import com.sun.source.util.JavacTask;
  164.50 -import com.sun.tools.classfile.ClassFile;
  164.51 -import com.sun.tools.classfile.ConstantPoolException;
  164.52 -import com.sun.tools.classfile.Descriptor.InvalidDescriptor;
  164.53 -import com.sun.tools.classfile.Method;
  164.54 -
  164.55 -public class OverrideBridge {
  164.56 -
  164.57 -    enum Implementation {
  164.58 -        IMPLICIT(""),
  164.59 -        EXPLICIT("@Override public abstract X m(X x);");
  164.60 -
  164.61 -        String impl;
  164.62 -
  164.63 -        Implementation(String impl) {
  164.64 -            this.impl = impl;
  164.65 -        }
  164.66 -    }
  164.67 -
  164.68 -    static class JavaSource extends SimpleJavaFileObject {
  164.69 -
  164.70 -        final static String sourceStub =
  164.71 -                        "abstract class A<X> {\n" +
  164.72 -                        "   public abstract X m(X x);\n" +
  164.73 -                        "}\n" +
  164.74 -                        "interface I<X> {\n" +
  164.75 -                        "X m(X x);\n" +
  164.76 -                        "}\n" +
  164.77 -                        "abstract class B<X extends B<X>> extends A<X> implements I<X> { #B }\n" +
  164.78 -                        "abstract class C<X extends C<X>> extends B<X>  { #C }\n" +
  164.79 -                        "abstract class D<X extends D<X>> extends C<X>  { #D }\n";
  164.80 -
  164.81 -        String source;
  164.82 -
  164.83 -        public JavaSource(Implementation implB, Implementation implC, Implementation implD) {
  164.84 -            super(URI.create("myfo:/Test.java"), JavaFileObject.Kind.SOURCE);
  164.85 -            source = sourceStub.replace("#B", implB.impl).replace("#C", implC.impl).replace("#D", implD.impl);
  164.86 -        }
  164.87 -
  164.88 -        @Override
  164.89 -        public CharSequence getCharContent(boolean ignoreEncodingErrors) {
  164.90 -            return source;
  164.91 -        }
  164.92 -    }
  164.93 -
  164.94 -    public static void main(String... args) throws Exception {
  164.95 -        Map<ClassFile, List<Method>> refMembers =
  164.96 -                compile(Implementation.EXPLICIT, Implementation.EXPLICIT, Implementation.EXPLICIT, "ref");
  164.97 -        int i = 0;
  164.98 -        for (Implementation implB : Implementation.values()) {
  164.99 -            for (Implementation implC : Implementation.values()) {
 164.100 -                for (Implementation implD : Implementation.values()) {
 164.101 -                    Map<ClassFile, List<Method>> membersToCheck = compile(implB, implC, implD, "out_" + i++);
 164.102 -                    check(refMembers, membersToCheck);
 164.103 -                }
 164.104 -            }
 164.105 -        }
 164.106 -    }
 164.107 -
 164.108 -    static String workDir = System.getProperty("user.dir");
 164.109 -
 164.110 -    static Map<ClassFile, List<Method>> compile(Implementation implB, Implementation implC, Implementation implD, String destPath) throws Exception {
 164.111 -        File destDir = new File(workDir, destPath); destDir.mkdir();
 164.112 -        final JavaCompiler tool = ToolProvider.getSystemJavaCompiler();
 164.113 -        JavaSource source = new JavaSource(implB, implC, implD);
 164.114 -        JavacTask ct = (JavacTask)tool.getTask(null, null, null,
 164.115 -                Arrays.asList("-d", destPath), null, Arrays.asList(source));
 164.116 -        ct.generate();
 164.117 -        Map<ClassFile, List<Method>> members = new HashMap<>();
 164.118 -        addMembers(destDir, members);
 164.119 -        return members;
 164.120 -    }
 164.121 -
 164.122 -    static void addMembers(File destDir, Map<ClassFile, List<Method>> members) {
 164.123 -        String[] names = { "B.class", "C.class", "D.class" };
 164.124 -        try {
 164.125 -            for (String name : names) {
 164.126 -                File f = new File(destDir, name);
 164.127 -                ClassFile cf = ClassFile.read(f);
 164.128 -                members.put(cf, readMethod(cf, "m"));
 164.129 -            }
 164.130 -        } catch (Exception e) {
 164.131 -            e.printStackTrace();
 164.132 -            throw new Error("error reading classes");
 164.133 -        }
 164.134 -    }
 164.135 -
 164.136 -    static List<Method> readMethod(ClassFile cf, String name) throws ConstantPoolException {
 164.137 -        List<Method> buf = new ArrayList<>();
 164.138 -        for (Method m : cf.methods) {
 164.139 -            if (m.getName(cf.constant_pool).equals(name)) {
 164.140 -                buf.add(m);
 164.141 -            }
 164.142 -        }
 164.143 -        return buf;
 164.144 -    }
 164.145 -
 164.146 -    static void check(Map<ClassFile, List<Method>> refMembers, Map<ClassFile, List<Method>> membersToCheck) throws ConstantPoolException, InvalidDescriptor {
 164.147 -        for (Map.Entry<ClassFile, List<Method>> ref : refMembers.entrySet()) {
 164.148 -            ClassFile cRef = ref.getKey();
 164.149 -            for (Method mRef : ref.getValue()) {
 164.150 -                boolean ok = false;
 164.151 -                for (Map.Entry<ClassFile, List<Method>> toCheck : membersToCheck.entrySet()) {
 164.152 -                    ClassFile cToCheck = toCheck.getKey();
 164.153 -                    for (Method mToCheck : toCheck.getValue()) {
 164.154 -                        if (cRef.getName().equals(cToCheck.getName()) &&
 164.155 -                                mRef.descriptor.getReturnType(cRef.constant_pool).equals(
 164.156 -                                mToCheck.descriptor.getReturnType(cToCheck.constant_pool)) &&
 164.157 -                                mRef.descriptor.getParameterTypes(cRef.constant_pool).equals(
 164.158 -                                mToCheck.descriptor.getParameterTypes(cToCheck.constant_pool))) {
 164.159 -                            ok = true;
 164.160 -                        }
 164.161 -                    }
 164.162 -                }
 164.163 -                if (!ok) {
 164.164 -                    throw new AssertionError("Matching method descriptor for " + mRef.descriptor.getParameterTypes(cRef.constant_pool) + "not found");
 164.165 -                }
 164.166 -            }
 164.167 -        }
 164.168 -    }
 164.169 -}
   165.1 --- a/test/tools/javac/generics/typevars/6680106/T6680106.out	Wed Oct 02 13:26:54 2013 -0700
   165.2 +++ b/test/tools/javac/generics/typevars/6680106/T6680106.out	Tue Oct 08 14:59:46 2013 -0700
   165.3 @@ -1,13 +1,7 @@
   165.4 -T6680106.java:11:25: compiler.err.type.found.req: T[], (compiler.misc.type.req.class)
   165.5 -T6680106.java:12:25: compiler.err.type.found.req: S[], (compiler.misc.type.req.class)
   165.6 -T6680106.java:12:40: compiler.err.type.found.req: T[], (compiler.misc.type.req.class)
   165.7 -T6680106.java:13:25: compiler.err.type.found.req: S[], (compiler.misc.type.req.class)
   165.8 -T6680106.java:13:40: compiler.err.type.found.req: U[], (compiler.misc.type.req.class)
   165.9 -T6680106.java:13:55: compiler.err.type.found.req: T[], (compiler.misc.type.req.class)
  165.10 -T6680106.java:14:30: compiler.err.type.found.req: T[], (compiler.misc.type.req.class)
  165.11 -T6680106.java:15:30: compiler.err.type.found.req: S[], (compiler.misc.type.req.class)
  165.12 -T6680106.java:15:50: compiler.err.type.found.req: T[], (compiler.misc.type.req.class)
  165.13 -T6680106.java:16:30: compiler.err.type.found.req: S[], (compiler.misc.type.req.class)
  165.14 -T6680106.java:16:50: compiler.err.type.found.req: U[], (compiler.misc.type.req.class)
  165.15 -T6680106.java:16:70: compiler.err.type.found.req: T[], (compiler.misc.type.req.class)
  165.16 -12 errors
  165.17 +T6680106.java:11:14: compiler.err.cyclic.inheritance: T
  165.18 +T6680106.java:12:14: compiler.err.cyclic.inheritance: T
  165.19 +T6680106.java:13:14: compiler.err.cyclic.inheritance: T
  165.20 +T6680106.java:14:14: compiler.err.cyclic.inheritance: T
  165.21 +T6680106.java:15:14: compiler.err.cyclic.inheritance: T
  165.22 +T6680106.java:16:14: compiler.err.cyclic.inheritance: T
  165.23 +6 errors
   166.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   166.2 +++ b/test/tools/javac/lambda/8024497/CrashUsingReturningThisRefLambdaFromDefaultMetTest.java	Tue Oct 08 14:59:46 2013 -0700
   166.3 @@ -0,0 +1,41 @@
   166.4 +/*
   166.5 + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
   166.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   166.7 + *
   166.8 + * This code is free software; you can redistribute it and/or modify it
   166.9 + * under the terms of the GNU General Public License version 2 only, as
  166.10 + * published by the Free Software Foundation.
  166.11 + *
  166.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
  166.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  166.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  166.15 + * version 2 for more details (a copy is included in the LICENSE file that
  166.16 + * accompanied this code).
  166.17 + *
  166.18 + * You should have received a copy of the GNU General Public License version
  166.19 + * 2 along with this work; if not, write to the Free Software Foundation,
  166.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  166.21 + *
  166.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  166.23 + * or visit www.oracle.com if you need additional information or have any
  166.24 + * questions.
  166.25 + */
  166.26 +
  166.27 +/*
  166.28 + * @test
  166.29 + * @bug 8024497
  166.30 + * @summary crash returning this-referencing lambda from default method
  166.31 + * @compile CrashUsingReturningThisRefLambdaFromDefaultMetTest.java
  166.32 + */
  166.33 +
  166.34 +interface SuperInterface {}
  166.35 +
  166.36 +interface CrashUsingReturningThisRefLambdaFromDefaultMetTest extends SuperInterface {
  166.37 +    default Runnable getAction() {
  166.38 +        return () -> {
  166.39 +            SuperInterface.super.getClass();
  166.40 +            this.getClass();
  166.41 +            CrashUsingReturningThisRefLambdaFromDefaultMetTest.this.getClass();
  166.42 +        };
  166.43 +    }
  166.44 +}
   167.1 --- a/test/tools/javac/lambda/methodReference/BridgeMethod.java	Wed Oct 02 13:26:54 2013 -0700
   167.2 +++ b/test/tools/javac/lambda/methodReference/BridgeMethod.java	Tue Oct 08 14:59:46 2013 -0700
   167.3 @@ -108,9 +108,10 @@
   167.4          System.out.println("methods in SAM conversion of N:");
   167.5          for(Method m : methods) {
   167.6              System.out.println(m.toGenericString());
   167.7 -            assertTrue(m.getName().equals("m"));
   167.8 -            Class<?> returnType = m.getReturnType();
   167.9 -            assertTrue(types.remove(returnType.getName()));
  167.10 +            if (m.getName().equals("m")) {
  167.11 +                Class<?> returnType = m.getReturnType();
  167.12 +                assertTrue(types.remove(returnType.getName()));
  167.13 +            }
  167.14          }
  167.15          assertTrue(types.size() == 1); //there's a bridge
  167.16      }
   168.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   168.2 +++ b/test/tools/javac/processing/errors/TestBadProcessor.java	Tue Oct 08 14:59:46 2013 -0700
   168.3 @@ -0,0 +1,119 @@
   168.4 +/*
   168.5 + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
   168.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   168.7 + *
   168.8 + * This code is free software; you can redistribute it and/or modify it
   168.9 + * under the terms of the GNU General Public License version 2 only, as
  168.10 + * published by the Free Software Foundation.
  168.11 + *
  168.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
  168.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  168.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  168.15 + * version 2 for more details (a copy is included in the LICENSE file that
  168.16 + * accompanied this code).
  168.17 + *
  168.18 + * You should have received a copy of the GNU General Public License version
  168.19 + * 2 along with this work; if not, write to the Free Software Foundation,
  168.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  168.21 + *
  168.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  168.23 + * or visit www.oracle.com if you need additional information or have any
  168.24 + * questions.
  168.25 + */
  168.26 +
  168.27 +/*
  168.28 + * @test
  168.29 + * @bug 8022163
  168.30 + * @summary javac exits with 0 status and no messages on error to construct an ann-procesor
  168.31 + */
  168.32 +
  168.33 +import java.io.*;
  168.34 +
  168.35 +public class TestBadProcessor {
  168.36 +    public static void main(String... args) throws Exception {
  168.37 +        new TestBadProcessor().run();
  168.38 +    }
  168.39 +
  168.40 +    public static final String badAnnoProcSrc =
  168.41 +        "import java.util.*;\n" +
  168.42 +        "import javax.annotation.processing.*;\n" +
  168.43 +        "import javax.lang.model.element.*;\n" +
  168.44 +
  168.45 +        "public class AnnoProc extends AbstractProcessor {\n" +
  168.46 +        "    public AnnoProc() {\n" +
  168.47 +        "        throw new Error();\n" +
  168.48 +        "    }\n" +
  168.49 +
  168.50 +        "    public boolean process(Set<? extends TypeElement> elems, \n" +
  168.51 +        "                        RoundEnvironment rEnv) {\n" +
  168.52 +        "        return false;\n" +
  168.53 +        "    }\n" +
  168.54 +        "}\n";
  168.55 +
  168.56 +    public void run() throws Exception {
  168.57 +        // setup
  168.58 +        File srcDir = new File("src");
  168.59 +        File classesDir = new File("classes");
  168.60 +        classesDir.mkdirs();
  168.61 +        File srcFile = writeFile(srcDir, "AnnoProc.java", badAnnoProcSrc);
  168.62 +        compile("-d", classesDir.getPath(), srcFile.getPath());
  168.63 +        writeFile(classesDir, "META-INF/services/javax.annotation.processing.Processor", "AnnoProc");
  168.64 +
  168.65 +        // run the primary compilation
  168.66 +        int rc;
  168.67 +        StringWriter sw = new StringWriter();
  168.68 +        try (PrintWriter pw = new PrintWriter(sw)) {
  168.69 +            String[] args = { "-processorpath", classesDir.getPath(), srcFile.getPath() };
  168.70 +            rc = com.sun.tools.javac.Main.compile(args, pw);
  168.71 +        }
  168.72 +
  168.73 +        // verify that it failed as expected, with the expected message
  168.74 +        String out = sw.toString();
  168.75 +        System.err.println(out);
  168.76 +        String expect = "error: Bad service configuration file, " +
  168.77 +                "or exception thrown while constructing Processor object: " +
  168.78 +                "javax.annotation.processing.Processor: " +
  168.79 +                "Provider AnnoProc could not be instantiated: java.lang.Error";
  168.80 +        if (!out.trim().equals(expect)) {
  168.81 +            System.err.println("expected: " + expect);
  168.82 +            error("output not as expected");
  168.83 +        }
  168.84 +
  168.85 +        if (rc == 0) {
  168.86 +            error("unexpected exit code: " + rc + "; expected: not zero");
  168.87 +        }
  168.88 +
  168.89 +        // summary
  168.90 +        if (errors > 0)
  168.91 +            throw new Exception(errors + " errors found");
  168.92 +    }
  168.93 +
  168.94 +    void compile(String... args) throws Exception {
  168.95 +        int rc;
  168.96 +        StringWriter sw = new StringWriter();
  168.97 +        try (PrintWriter pw = new PrintWriter(sw)) {
  168.98 +            rc = com.sun.tools.javac.Main.compile(args, pw);
  168.99 +        }
 168.100 +        String out = sw.toString();
 168.101 +        if (!out.isEmpty())
 168.102 +            System.err.println(out);
 168.103 +        if (rc != 0)
 168.104 +            throw new Exception("compilation failed");
 168.105 +    }
 168.106 +
 168.107 +    File writeFile(File dir, String path, String body) throws IOException {
 168.108 +        File f = new File(dir, path);
 168.109 +        f.getParentFile().mkdirs();
 168.110 +        try (FileWriter out = new FileWriter(f)) {
 168.111 +            out.write(body);
 168.112 +        }
 168.113 +        return f;
 168.114 +    }
 168.115 +
 168.116 +    void error(String msg) {
 168.117 +        System.err.println("Error: " + msg);
 168.118 +        errors++;
 168.119 +    }
 168.120 +
 168.121 +    int errors;
 168.122 +}
   169.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   169.2 +++ b/test/tools/javac/processing/model/element/TestTypeElement.java	Tue Oct 08 14:59:46 2013 -0700
   169.3 @@ -0,0 +1,63 @@
   169.4 +/*
   169.5 + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
   169.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   169.7 + *
   169.8 + * This code is free software; you can redistribute it and/or modify it
   169.9 + * under the terms of the GNU General Public License version 2 only, as
  169.10 + * published by the Free Software Foundation.
  169.11 + *
  169.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
  169.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  169.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  169.15 + * version 2 for more details (a copy is included in the LICENSE file that
  169.16 + * accompanied this code).
  169.17 + *
  169.18 + * You should have received a copy of the GNU General Public License version
  169.19 + * 2 along with this work; if not, write to the Free Software Foundation,
  169.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  169.21 + *
  169.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  169.23 + * or visit www.oracle.com if you need additional information or have any
  169.24 + * questions.
  169.25 + */
  169.26 +
  169.27 +/*
  169.28 + * @test
  169.29 + * @bug 8025118
  169.30 + * @summary Verify that TypeElement for interfaces does not have
  169.31 + *          Modifier.DEFAULT in getModifiers()
  169.32 + * @library /tools/javac/lib
  169.33 + * @build   JavacTestingAbstractProcessor TestTypeElement
  169.34 + * @compile -processor TestTypeElement -proc:only TestTypeElement.java
  169.35 + */
  169.36 +
  169.37 +import java.util.Set;
  169.38 +import javax.annotation.processing.*;
  169.39 +import javax.lang.model.element.*;
  169.40 +import static javax.tools.Diagnostic.Kind.*;
  169.41 +
  169.42 +/**
  169.43 + * Verify that TypeElement for interfaces does not have Modifier.DEFAULT in getModifiers().
  169.44 + */
  169.45 +public class TestTypeElement extends JavacTestingAbstractProcessor {
  169.46 +    public boolean process(Set<? extends TypeElement> annotations,
  169.47 +                           RoundEnvironment roundEnv) {
  169.48 +        if (!roundEnv.processingOver()) {
  169.49 +            for (Element element : roundEnv.getRootElements()) {
  169.50 +                if (element.getKind().isClass() || element.getKind().isInterface()) {
  169.51 +                    if (element.getModifiers().contains(Modifier.DEFAULT))
  169.52 +                        messager.printMessage(ERROR, "Modifier.DEFAULT not expected on classes/interfaces");
  169.53 +                }
  169.54 +            }
  169.55 +        }
  169.56 +        return true;
  169.57 +    }
  169.58 +
  169.59 +}
  169.60 +
  169.61 +/**
  169.62 + * Test interface to provide a default method.
  169.63 + */
  169.64 +interface InterfaceWithDefaultMethod {
  169.65 +    default void quux() {}
  169.66 +}
   170.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   170.2 +++ b/test/tools/javac/processing/model/type/InheritedAP.java	Tue Oct 08 14:59:46 2013 -0700
   170.3 @@ -0,0 +1,96 @@
   170.4 +/*
   170.5 + * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
   170.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   170.7 + *
   170.8 + * This code is free software; you can redistribute it and/or modify it
   170.9 + * under the terms of the GNU General Public License version 2 only, as
  170.10 + * published by the Free Software Foundation.
  170.11 + *
  170.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
  170.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  170.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  170.15 + * version 2 for more details (a copy is included in the LICENSE file that
  170.16 + * accompanied this code).
  170.17 + *
  170.18 + * You should have received a copy of the GNU General Public License version
  170.19 + * 2 along with this work; if not, write to the Free Software Foundation,
  170.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  170.21 + *
  170.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  170.23 + * or visit www.oracle.com if you need additional information or have any
  170.24 + * questions.
  170.25 + */
  170.26 +
  170.27 +/*
  170.28 + * @test
  170.29 + * @bug 8024513
  170.30 + * @library /tools/javac/lib
  170.31 + * @build InheritedAP
  170.32 + * @compile -cp . -processor InheritedAP -proc:only InheritedAP.java
  170.33 + * @summary NPE in annotation processing
  170.34 + */
  170.35 +import java.util.*;
  170.36 +import javax.annotation.processing.*;
  170.37 +import javax.lang.model.element.*;
  170.38 +import javax.lang.model.type.*;
  170.39 +import javax.lang.model.util.*;
  170.40 +import java.lang.annotation.*;
  170.41 +import static javax.lang.model.type.TypeKind.*;
  170.42 +import static javax.lang.model.SourceVersion.*;
  170.43 +import static javax.lang.model.util.ElementFilter.*;
  170.44 +
  170.45 +@SupportedAnnotationTypes("testclass")
  170.46 +@SupportedSourceVersion(RELEASE_8)
  170.47 +public class InheritedAP extends AbstractProcessor {
  170.48 +    static Types types;
  170.49 +    public void init(ProcessingEnvironment penv) {super.init(penv);}
  170.50 +    public static Types getTypes() { return types; }
  170.51 +
  170.52 +    public boolean process(Set<? extends TypeElement> typeElementSet,RoundEnvironment renv) {
  170.53 +        if ( renv.errorRaised()) { System.out.println("Error!"); return false; }
  170.54 +        if ( typeElementSet.size() <=0 && typesIn(renv.getRootElements()).size() <= 0 ) {
  170.55 +            return true;
  170.56 +        }
  170.57 +        types=processingEnv.getTypeUtils();
  170.58 +        for (TypeElement typeElem: typesIn(renv.getRootElements())) {
  170.59 +            if (typeElem.getAnnotation(testclass.class) != null) {
  170.60 +                new ElementScanner( new SimpleTypeMirrorVisitor()).scan(typeElem, null);
  170.61 +            }
  170.62 +        }
  170.63 +        return true ;
  170.64 +    }
  170.65 +}
  170.66 +
  170.67 +class SimpleTypeMirrorVisitor extends SimpleTypeVisitor6 <Void, Void> {
  170.68 +    protected Void defaultAction(TypeMirror mirror, Void p ) {
  170.69 +        try {
  170.70 +            System.out.println( "InheritedAP.getTypes().directSupertypes( "+mirror.toString()+" );" );
  170.71 +            InheritedAP.getTypes().directSupertypes(mirror);
  170.72 +            System.out.println("PASS");
  170.73 +        }catch(java.lang.IllegalArgumentException iae) {/*stuff*/ }
  170.74 +        return p;
  170.75 +    }
  170.76 +}
  170.77 +
  170.78 +class ElementScanner <T extends SimpleTypeVisitor6<Void, Void> >
  170.79 +                    extends ElementScanner6<Void, Void> {
  170.80 +    SimpleTypeVisitor6<Void, Void> typeVisitor;
  170.81 +
  170.82 +    public ElementScanner(T typeVisitor) { this.typeVisitor=typeVisitor;}
  170.83 +
  170.84 +    @Override
  170.85 +    public Void scan(Element e, Void p) {
  170.86 +         if (e instanceof TypeElement ) {
  170.87 +            TypeElement te = (TypeElement) e;
  170.88 +            te.getSuperclass().accept(typeVisitor,p);
  170.89 +        }
  170.90 +        return p;
  170.91 +    }
  170.92 +
  170.93 +}
  170.94 +
  170.95 +
  170.96 +@interface testclass { }
  170.97 +
  170.98 +@testclass
  170.99 +@interface iface { }
   171.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   171.2 +++ b/test/tools/javap/BoundsTypeVariableTest.java	Tue Oct 08 14:59:46 2013 -0700
   171.3 @@ -0,0 +1,95 @@
   171.4 +/*
   171.5 + * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
   171.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   171.7 + *
   171.8 + * This code is free software; you can redistribute it and/or modify it
   171.9 + * under the terms of the GNU General Public License version 2 only, as
  171.10 + * published by the Free Software Foundation.
  171.11 + *
  171.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
  171.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  171.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  171.15 + * version 2 for more details (a copy is included in the LICENSE file that
  171.16 + * accompanied this code).
  171.17 + *
  171.18 + * You should have received a copy of the GNU General Public License version
  171.19 + * 2 along with this work; if not, write to the Free Software Foundation,
  171.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  171.21 + *
  171.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  171.23 + * or visit www.oracle.com if you need additional information or have any
  171.24 + * questions.
  171.25 + */
  171.26 +
  171.27 +/**
  171.28 + * @test
  171.29 + * @bug 8003537
  171.30 + * @summary javap should not use / in Bounds Type Variables
  171.31 + */
  171.32 +
  171.33 +import java.io.File;
  171.34 +import java.io.IOException;
  171.35 +import java.io.PrintWriter;
  171.36 +import java.io.StringWriter;
  171.37 +import java.nio.charset.Charset;
  171.38 +import java.nio.file.Files;
  171.39 +import java.util.ArrayList;
  171.40 +import java.util.List;
  171.41 +import java.util.regex.Pattern;
  171.42 +import static java.nio.file.StandardOpenOption.*;
  171.43 +
  171.44 +public class BoundsTypeVariableTest {
  171.45 +    public static void main(String... args) throws Exception {
  171.46 +        new BoundsTypeVariableTest().run();
  171.47 +    }
  171.48 +
  171.49 +    void run() throws Exception {
  171.50 +        File srcDir = new File("src");
  171.51 +        srcDir.mkdirs();
  171.52 +        File classesDir = new File("classes");
  171.53 +        classesDir.mkdirs();
  171.54 +        final String expect = "public abstract <U extends java.lang.Object> U doit();";
  171.55 +        List<String> contents = new ArrayList<>();
  171.56 +        contents.add("abstract class X {");
  171.57 +        contents.add(expect);
  171.58 +        contents.add("}");
  171.59 +
  171.60 +        File f = writeFile(new File(srcDir, "X.java"), contents);
  171.61 +        javac("-d", classesDir.getPath(), f.getPath());
  171.62 +        String out = javap("-p", "-v", new File(classesDir, "X.class").getPath());
  171.63 +        if (!out.contains(expect)) {
  171.64 +            throw new Exception("expected pattern not found: " + expect);
  171.65 +        }
  171.66 +    }
  171.67 +
  171.68 +    File writeFile(File f, List<String> body) throws IOException {
  171.69 +        Files.write(f.toPath(), body, Charset.defaultCharset(),
  171.70 +                CREATE, TRUNCATE_EXISTING);
  171.71 +        return f;
  171.72 +    }
  171.73 +
  171.74 +    void javac(String... args) throws Exception {
  171.75 +        StringWriter sw = new StringWriter();
  171.76 +        PrintWriter pw = new PrintWriter(sw);
  171.77 +        int rc = com.sun.tools.javac.Main.compile(args, pw);
  171.78 +        pw.flush();
  171.79 +        String out = sw.toString();
  171.80 +        if (!out.isEmpty())
  171.81 +            System.err.println(out);
  171.82 +        if (rc != 0)
  171.83 +            throw new Exception("compilation failed");
  171.84 +    }
  171.85 +
  171.86 +    String javap(String... args) throws Exception {
  171.87 +        StringWriter sw = new StringWriter();
  171.88 +        PrintWriter pw = new PrintWriter(sw);
  171.89 +        int rc = com.sun.tools.javap.Main.run(args, pw);
  171.90 +        pw.flush();
  171.91 +        String out = sw.toString();
  171.92 +        if (!out.isEmpty())
  171.93 +            System.err.println(out);
  171.94 +        if (rc != 0)
  171.95 +            throw new Exception("javap failed");
  171.96 +        return out;
  171.97 +    }
  171.98 +}

mercurial