Merge
authorlana
Tue, 08 Oct 2013 14:59:46 -0700
changeset 20621 f2edea528f78
parent 20337 b9a0f6c693f3 (current diff)
parent 20620 1562aa55640a (diff)
child 20622 6e60d0f8cbc6
Merge
langtools/src/share/classes/jdk/Supported.java
langtools/test/tools/javac/generics/OverrideBridge.java
--- a/langtools/src/share/classes/com/sun/source/doctree/AttributeTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/doctree/AttributeTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -33,9 +33,9 @@
  *
  * @since 1.8
  */
-@jdk.Supported
+@jdk.Exported
 public interface AttributeTree extends DocTree {
-    @jdk.Supported
+    @jdk.Exported
     enum ValueKind { EMPTY, UNQUOTED, SINGLE, DOUBLE };
 
     Name getName();
--- a/langtools/src/share/classes/com/sun/source/doctree/AuthorTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/doctree/AuthorTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -35,7 +35,7 @@
  *
  * @since 1.8
  */
-@jdk.Supported
+@jdk.Exported
 public interface AuthorTree extends BlockTagTree {
     List<? extends DocTree> getName();
 }
--- a/langtools/src/share/classes/com/sun/source/doctree/BlockTagTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/doctree/BlockTagTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -31,7 +31,7 @@
  *
  * @since 1.8
  */
-@jdk.Supported
+@jdk.Exported
 public interface BlockTagTree extends DocTree {
     String getTagName();
 }
--- a/langtools/src/share/classes/com/sun/source/doctree/CommentTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/doctree/CommentTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -33,7 +33,7 @@
  *
  * @since 1.8
  */
-@jdk.Supported
+@jdk.Exported
 public interface CommentTree extends DocTree {
     String getBody();
 }
--- a/langtools/src/share/classes/com/sun/source/doctree/DeprecatedTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/doctree/DeprecatedTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -35,7 +35,7 @@
  *
  * @since 1.8
  */
-@jdk.Supported
+@jdk.Exported
 public interface DeprecatedTree extends BlockTagTree {
     List<? extends DocTree> getBody();
 }
--- a/langtools/src/share/classes/com/sun/source/doctree/DocCommentTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/doctree/DocCommentTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -35,7 +35,7 @@
  *
  * @since 1.8
  */
-@jdk.Supported
+@jdk.Exported
 public interface DocCommentTree extends DocTree {
     List<? extends DocTree> getFirstSentence();
     List<? extends DocTree> getBody();
--- a/langtools/src/share/classes/com/sun/source/doctree/DocRootTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/doctree/DocRootTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -33,5 +33,5 @@
  *
  * @since 1.8
  */
-@jdk.Supported
+@jdk.Exported
 public interface DocRootTree extends InlineTagTree { }
--- a/langtools/src/share/classes/com/sun/source/doctree/DocTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/doctree/DocTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -30,9 +30,9 @@
  *
  * @since 1.8
  */
-@jdk.Supported
+@jdk.Exported
 public interface DocTree {
-    @jdk.Supported
+    @jdk.Exported
     enum Kind {
         /**
          * Used for instances of {@link AttributeTree}
--- a/langtools/src/share/classes/com/sun/source/doctree/DocTreeVisitor.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/doctree/DocTreeVisitor.java	Tue Oct 08 14:59:46 2013 -0700
@@ -54,7 +54,7 @@
  *
  * @since 1.8
  */
-@jdk.Supported
+@jdk.Exported
 public interface DocTreeVisitor<R,P> {
     R visitAttribute(AttributeTree node, P p);
     R visitAuthor(AuthorTree node, P p);
--- a/langtools/src/share/classes/com/sun/source/doctree/EndElementTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/doctree/EndElementTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -35,7 +35,7 @@
  *
  * @since 1.8
  */
-@jdk.Supported
+@jdk.Exported
 public interface EndElementTree extends DocTree {
     Name getName();
 }
--- a/langtools/src/share/classes/com/sun/source/doctree/EntityTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/doctree/EntityTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -36,7 +36,7 @@
  *
  * @since 1.8
  */
-@jdk.Supported
+@jdk.Exported
 public interface EntityTree extends DocTree {
     Name getName();
 }
--- a/langtools/src/share/classes/com/sun/source/doctree/ErroneousTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/doctree/ErroneousTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -32,7 +32,7 @@
  *
  * @since 1.8
  */
-@jdk.Supported
+@jdk.Exported
 public interface ErroneousTree extends TextTree {
     /**
      * Gets a diagnostic object giving details about
--- a/langtools/src/share/classes/com/sun/source/doctree/IdentifierTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/doctree/IdentifierTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -35,7 +35,7 @@
  *
  * @since 1.8
  */
-@jdk.Supported
+@jdk.Exported
 public interface IdentifierTree extends DocTree {
     Name getName();
 }
--- a/langtools/src/share/classes/com/sun/source/doctree/InheritDocTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/doctree/InheritDocTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -34,5 +34,5 @@
  *
  * @since 1.8
  */
-@jdk.Supported
+@jdk.Exported
 public interface InheritDocTree extends InlineTagTree { }
--- a/langtools/src/share/classes/com/sun/source/doctree/InlineTagTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/doctree/InlineTagTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -31,7 +31,7 @@
  *
  * @since 1.8
  */
-@jdk.Supported
+@jdk.Exported
 public interface InlineTagTree extends DocTree {
     String getTagName();
 }
--- a/langtools/src/share/classes/com/sun/source/doctree/LinkTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/doctree/LinkTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -36,7 +36,7 @@
  *
  * @since 1.8
  */
-@jdk.Supported
+@jdk.Exported
 public interface LinkTree extends InlineTagTree {
     ReferenceTree getReference();
     List<? extends DocTree> getLabel();
--- a/langtools/src/share/classes/com/sun/source/doctree/LiteralTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/doctree/LiteralTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -34,7 +34,7 @@
  *
  * @since 1.8
  */
-@jdk.Supported
+@jdk.Exported
 public interface LiteralTree extends InlineTagTree {
     TextTree getBody();
 }
--- a/langtools/src/share/classes/com/sun/source/doctree/ParamTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/doctree/ParamTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -35,7 +35,7 @@
  *
  * @since 1.8
  */
-@jdk.Supported
+@jdk.Exported
 public interface ParamTree extends BlockTagTree {
     boolean isTypeParameter();
     IdentifierTree getName();
--- a/langtools/src/share/classes/com/sun/source/doctree/ReferenceTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/doctree/ReferenceTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -33,7 +33,7 @@
  *
  * @since 1.8
  */
-@jdk.Supported
+@jdk.Exported
 public interface ReferenceTree extends DocTree {
     String getSignature();
 }
--- a/langtools/src/share/classes/com/sun/source/doctree/ReturnTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/doctree/ReturnTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -35,7 +35,7 @@
  *
  * @since 1.8
  */
-@jdk.Supported
+@jdk.Exported
 public interface ReturnTree extends BlockTagTree {
     List<? extends DocTree> getDescription();
 }
--- a/langtools/src/share/classes/com/sun/source/doctree/SeeTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/doctree/SeeTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -38,7 +38,7 @@
  *
  * @since 1.8
  */
-@jdk.Supported
+@jdk.Exported
 public interface SeeTree extends BlockTagTree {
     List<? extends DocTree> getReference();
 }
--- a/langtools/src/share/classes/com/sun/source/doctree/SerialDataTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/doctree/SerialDataTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -35,7 +35,7 @@
  *
  * @since 1.8
  */
-@jdk.Supported
+@jdk.Exported
 public interface SerialDataTree extends BlockTagTree {
     List<? extends DocTree> getDescription();
 }
--- a/langtools/src/share/classes/com/sun/source/doctree/SerialFieldTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/doctree/SerialFieldTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -35,7 +35,7 @@
  *
  * @since 1.8
  */
-@jdk.Supported
+@jdk.Exported
 public interface SerialFieldTree extends BlockTagTree {
     IdentifierTree getName();
     ReferenceTree getType();
--- a/langtools/src/share/classes/com/sun/source/doctree/SerialTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/doctree/SerialTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -35,7 +35,7 @@
  *
  * @since 1.8
  */
-@jdk.Supported
+@jdk.Exported
 public interface SerialTree extends BlockTagTree {
     List<? extends DocTree> getDescription();
 }
--- a/langtools/src/share/classes/com/sun/source/doctree/SinceTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/doctree/SinceTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -35,7 +35,7 @@
  *
  * @since 1.8
  */
-@jdk.Supported
+@jdk.Exported
 public interface SinceTree extends BlockTagTree {
     List<? extends DocTree> getBody();
 }
--- a/langtools/src/share/classes/com/sun/source/doctree/StartElementTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/doctree/StartElementTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -36,7 +36,7 @@
  *
  * @since 1.8
  */
-@jdk.Supported
+@jdk.Exported
 public interface StartElementTree extends DocTree {
     Name getName();
     List<? extends DocTree> getAttributes();
--- a/langtools/src/share/classes/com/sun/source/doctree/TextTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/doctree/TextTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -30,7 +30,7 @@
  *
  * @since 1.8
  */
-@jdk.Supported
+@jdk.Exported
 public interface TextTree extends DocTree {
     String getBody();
 }
--- a/langtools/src/share/classes/com/sun/source/doctree/ThrowsTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/doctree/ThrowsTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -38,7 +38,7 @@
  *
  * @since 1.8
  */
-@jdk.Supported
+@jdk.Exported
 public interface ThrowsTree extends BlockTagTree {
     ReferenceTree getExceptionName();
     List<? extends DocTree> getDescription();
--- a/langtools/src/share/classes/com/sun/source/doctree/UnknownBlockTagTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/doctree/UnknownBlockTagTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -35,7 +35,7 @@
  * @since 1.8
  *
  */
-@jdk.Supported
+@jdk.Exported
 public interface UnknownBlockTagTree extends BlockTagTree {
     List<? extends DocTree> getContent();
 }
--- a/langtools/src/share/classes/com/sun/source/doctree/UnknownInlineTagTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/doctree/UnknownInlineTagTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -35,7 +35,7 @@
  * @since 1.8
  *
  */
-@jdk.Supported
+@jdk.Exported
 public interface UnknownInlineTagTree extends InlineTagTree {
     List<? extends DocTree> getContent();
 }
--- a/langtools/src/share/classes/com/sun/source/doctree/ValueTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/doctree/ValueTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -33,7 +33,7 @@
  *
  * @since 1.8
  */
-@jdk.Supported
+@jdk.Exported
 public interface ValueTree extends InlineTagTree {
     ReferenceTree getReference();
 }
--- a/langtools/src/share/classes/com/sun/source/doctree/VersionTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/doctree/VersionTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -36,7 +36,7 @@
  *
  * @since 1.8
  */
-@jdk.Supported
+@jdk.Exported
 public interface VersionTree extends BlockTagTree {
     List<? extends DocTree> getBody();
 }
--- a/langtools/src/share/classes/com/sun/source/doctree/package-info.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/doctree/package-info.java	Tue Oct 08 14:59:46 2013 -0700
@@ -31,5 +31,5 @@
  * @since 1.8
  * @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>
  */
-@jdk.Supported
+@jdk.Exported
 package com.sun.source.doctree;
--- a/langtools/src/share/classes/com/sun/source/tree/AnnotatedTypeTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/AnnotatedTypeTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -41,7 +41,7 @@
  * @author Mahmood Ali
  * @since 1.8
  */
-@jdk.Supported
+@jdk.Exported
 public interface AnnotatedTypeTree extends ExpressionTree {
     List<? extends AnnotationTree> getAnnotations();
     ExpressionTree getUnderlyingType();
--- a/langtools/src/share/classes/com/sun/source/tree/AnnotationTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/AnnotationTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -42,7 +42,7 @@
  * @author Jonathan Gibbons
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public interface AnnotationTree extends ExpressionTree {
     Tree getAnnotationType();
     List<? extends ExpressionTree> getArguments();
--- a/langtools/src/share/classes/com/sun/source/tree/ArrayAccessTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/ArrayAccessTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -39,7 +39,7 @@
  * @author Jonathan Gibbons
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public interface ArrayAccessTree extends ExpressionTree {
     ExpressionTree getExpression();
     ExpressionTree getIndex();
--- a/langtools/src/share/classes/com/sun/source/tree/ArrayTypeTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/ArrayTypeTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -39,7 +39,7 @@
  * @author Jonathan Gibbons
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public interface ArrayTypeTree extends Tree {
     Tree getType();
 }
--- a/langtools/src/share/classes/com/sun/source/tree/AssertTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/AssertTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -41,7 +41,7 @@
  * @author Jonathan Gibbons
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public interface AssertTree extends StatementTree {
     ExpressionTree getCondition();
     ExpressionTree getDetail();
--- a/langtools/src/share/classes/com/sun/source/tree/AssignmentTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/AssignmentTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -39,7 +39,7 @@
  * @author Jonathan Gibbons
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public interface AssignmentTree extends ExpressionTree {
     ExpressionTree getVariable();
     ExpressionTree getExpression();
--- a/langtools/src/share/classes/com/sun/source/tree/BinaryTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/BinaryTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -40,7 +40,7 @@
  * @author Jonathan Gibbons
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public interface BinaryTree extends ExpressionTree {
     ExpressionTree getLeftOperand();
     ExpressionTree getRightOperand();
--- a/langtools/src/share/classes/com/sun/source/tree/BlockTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/BlockTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -45,7 +45,7 @@
  * @author Jonathan Gibbons
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public interface BlockTree extends StatementTree {
     boolean isStatic();
     List<? extends StatementTree> getStatements();
--- a/langtools/src/share/classes/com/sun/source/tree/BreakTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/BreakTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -43,7 +43,7 @@
  * @author Jonathan Gibbons
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public interface BreakTree extends StatementTree {
     Name getLabel();
 }
--- a/langtools/src/share/classes/com/sun/source/tree/CaseTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/CaseTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -45,7 +45,7 @@
  * @author Jonathan Gibbons
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public interface CaseTree extends Tree {
     /**
      * @return null if and only if this Case is {@code default:}
--- a/langtools/src/share/classes/com/sun/source/tree/CatchTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/CatchTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -40,7 +40,7 @@
  * @author Jonathan Gibbons
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public interface CatchTree extends Tree {
     VariableTree getParameter();
     BlockTree getBlock();
--- a/langtools/src/share/classes/com/sun/source/tree/ClassTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/ClassTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -48,7 +48,7 @@
  * @author Jonathan Gibbons
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public interface ClassTree extends StatementTree {
     ModifiersTree getModifiers();
     Name getSimpleName();
--- a/langtools/src/share/classes/com/sun/source/tree/CompilationUnitTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/CompilationUnitTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -37,7 +37,7 @@
  * @author Peter von der Ah&eacute;
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public interface CompilationUnitTree extends Tree {
     List<? extends AnnotationTree> getPackageAnnotations();
     ExpressionTree getPackageName();
--- a/langtools/src/share/classes/com/sun/source/tree/CompoundAssignmentTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/CompoundAssignmentTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -40,7 +40,7 @@
  * @author Jonathan Gibbons
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public interface CompoundAssignmentTree extends ExpressionTree {
     ExpressionTree getVariable();
     ExpressionTree getExpression();
--- a/langtools/src/share/classes/com/sun/source/tree/ConditionalExpressionTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/ConditionalExpressionTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -39,7 +39,7 @@
  * @author Jonathan Gibbons
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public interface ConditionalExpressionTree extends ExpressionTree {
     ExpressionTree getCondition();
     ExpressionTree getTrueExpression();
--- a/langtools/src/share/classes/com/sun/source/tree/ContinueTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/ContinueTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -42,7 +42,7 @@
  * @author Jonathan Gibbons
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public interface ContinueTree extends StatementTree {
     Name getLabel();
 }
--- a/langtools/src/share/classes/com/sun/source/tree/DoWhileLoopTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/DoWhileLoopTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -41,7 +41,7 @@
  * @author Jonathan Gibbons
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public interface DoWhileLoopTree extends StatementTree {
     ExpressionTree getCondition();
     StatementTree getStatement();
--- a/langtools/src/share/classes/com/sun/source/tree/EmptyStatementTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/EmptyStatementTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -39,5 +39,5 @@
  * @author Jonathan Gibbons
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public interface EmptyStatementTree extends StatementTree {}
--- a/langtools/src/share/classes/com/sun/source/tree/EnhancedForLoopTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/EnhancedForLoopTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -40,7 +40,7 @@
  * @author Jonathan Gibbons
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public interface EnhancedForLoopTree extends StatementTree {
     VariableTree getVariable();
     ExpressionTree getExpression();
--- a/langtools/src/share/classes/com/sun/source/tree/ErroneousTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/ErroneousTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -34,7 +34,7 @@
  * @author Jonathan Gibbons
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public interface ErroneousTree extends ExpressionTree {
     List<? extends Tree> getErrorTrees();
 }
--- a/langtools/src/share/classes/com/sun/source/tree/ExpressionStatementTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/ExpressionStatementTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -39,7 +39,7 @@
  * @author Jonathan Gibbons
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public interface ExpressionStatementTree extends StatementTree {
     ExpressionTree getExpression();
 }
--- a/langtools/src/share/classes/com/sun/source/tree/ExpressionTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/ExpressionTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -35,5 +35,5 @@
  * @author Jonathan Gibbons
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public interface ExpressionTree extends Tree {}
--- a/langtools/src/share/classes/com/sun/source/tree/ForLoopTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/ForLoopTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -42,7 +42,7 @@
  * @author Jonathan Gibbons
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public interface ForLoopTree extends StatementTree {
     List<? extends StatementTree> getInitializer();
     ExpressionTree getCondition();
--- a/langtools/src/share/classes/com/sun/source/tree/IdentifierTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/IdentifierTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -41,7 +41,7 @@
  * @author Jonathan Gibbons
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public interface IdentifierTree extends ExpressionTree {
     Name getName();
 }
--- a/langtools/src/share/classes/com/sun/source/tree/IfTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/IfTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -45,7 +45,7 @@
  * @author Jonathan Gibbons
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public interface IfTree extends StatementTree {
     ExpressionTree getCondition();
     StatementTree getThenStatement();
--- a/langtools/src/share/classes/com/sun/source/tree/ImportTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/ImportTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -41,7 +41,7 @@
  * @author Jonathan Gibbons
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public interface ImportTree extends Tree {
     boolean isStatic();
     /**
--- a/langtools/src/share/classes/com/sun/source/tree/InstanceOfTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/InstanceOfTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -39,7 +39,7 @@
  * @author Jonathan Gibbons
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public interface InstanceOfTree extends ExpressionTree {
     ExpressionTree getExpression();
     Tree getType();
--- a/langtools/src/share/classes/com/sun/source/tree/IntersectionTypeTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/IntersectionTypeTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -34,7 +34,7 @@
  *
  * @since 1.8
  */
-@jdk.Supported
+@jdk.Exported
 public interface IntersectionTypeTree extends Tree {
     List<? extends Tree> getBounds();
 }
--- a/langtools/src/share/classes/com/sun/source/tree/LabeledStatementTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/LabeledStatementTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -41,7 +41,7 @@
  * @author Jonathan Gibbons
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public interface LabeledStatementTree extends StatementTree {
     Name getLabel();
     StatementTree getStatement();
--- a/langtools/src/share/classes/com/sun/source/tree/LambdaExpressionTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/LambdaExpressionTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -37,14 +37,14 @@
  *   (x,y)-> { return x + y; }
  * }</pre>
  */
-@jdk.Supported
+@jdk.Exported
 public interface LambdaExpressionTree extends ExpressionTree {
 
     /**
      * Lambda expressions come in two forms: (i) expression lambdas, whose body
      * is an expression, and (ii) statement lambdas, whose body is a block
      */
-    @jdk.Supported
+    @jdk.Exported
     public enum BodyKind {
         /** enum constant for expression lambdas */
         EXPRESSION,
--- a/langtools/src/share/classes/com/sun/source/tree/LineMap.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/LineMap.java	Tue Oct 08 14:59:46 2013 -0700
@@ -31,7 +31,7 @@
  *
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public interface LineMap {
     /**
      * Find the start position of a line.
--- a/langtools/src/share/classes/com/sun/source/tree/LiteralTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/LiteralTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -40,7 +40,7 @@
  * @author Jonathan Gibbons
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public interface LiteralTree extends ExpressionTree {
     Object getValue();
 }
--- a/langtools/src/share/classes/com/sun/source/tree/MemberReferenceTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/MemberReferenceTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -39,14 +39,14 @@
  *
  * @since 1.8
  */
-@jdk.Supported
+@jdk.Exported
 public interface MemberReferenceTree extends ExpressionTree {
 
     /**
      * There are two kinds of member references: (i) method references and
      * (ii) constructor references
      */
-    @jdk.Supported
+    @jdk.Exported
     public enum ReferenceMode {
         /** enum constant for method references */
         INVOKE,
--- a/langtools/src/share/classes/com/sun/source/tree/MemberSelectTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/MemberSelectTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -41,7 +41,7 @@
  * @author Jonathan Gibbons
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public interface MemberSelectTree extends ExpressionTree {
     ExpressionTree getExpression();
     Name getIdentifier();
--- a/langtools/src/share/classes/com/sun/source/tree/MethodInvocationTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/MethodInvocationTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -43,7 +43,7 @@
  * @author Jonathan Gibbons
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public interface MethodInvocationTree extends ExpressionTree {
     List<? extends Tree> getTypeArguments();
     ExpressionTree getMethodSelect();
--- a/langtools/src/share/classes/com/sun/source/tree/MethodTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/MethodTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -46,7 +46,7 @@
  * @author Jonathan Gibbons
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public interface MethodTree extends Tree {
     ModifiersTree getModifiers();
     Name getName();
--- a/langtools/src/share/classes/com/sun/source/tree/ModifiersTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/ModifiersTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -45,7 +45,7 @@
  * @author Jonathan Gibbons
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public interface ModifiersTree extends Tree {
     Set<Modifier> getFlags();
     List<? extends AnnotationTree> getAnnotations();
--- a/langtools/src/share/classes/com/sun/source/tree/NewArrayTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/NewArrayTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -43,7 +43,7 @@
  * @author Jonathan Gibbons
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public interface NewArrayTree extends ExpressionTree {
     Tree getType();
     List<? extends ExpressionTree> getDimensions();
--- a/langtools/src/share/classes/com/sun/source/tree/NewClassTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/NewClassTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -48,7 +48,7 @@
  * @author Jonathan Gibbons
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public interface NewClassTree extends ExpressionTree {
     ExpressionTree getEnclosingExpression();
     List<? extends Tree> getTypeArguments();
--- a/langtools/src/share/classes/com/sun/source/tree/ParameterizedTypeTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/ParameterizedTypeTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -41,7 +41,7 @@
  * @author Jonathan Gibbons
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public interface ParameterizedTypeTree extends Tree {
     Tree getType();
     List<? extends Tree> getTypeArguments();
--- a/langtools/src/share/classes/com/sun/source/tree/ParenthesizedTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/ParenthesizedTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -40,7 +40,7 @@
  * @author Jonathan Gibbons
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public interface ParenthesizedTree extends ExpressionTree {
     ExpressionTree getExpression();
 }
--- a/langtools/src/share/classes/com/sun/source/tree/PrimitiveTypeTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/PrimitiveTypeTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -41,7 +41,7 @@
  * @author Jonathan Gibbons
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public interface PrimitiveTypeTree extends Tree {
     TypeKind getPrimitiveTypeKind();
 }
--- a/langtools/src/share/classes/com/sun/source/tree/ReturnTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/ReturnTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -40,7 +40,7 @@
  * @author Jonathan Gibbons
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public interface ReturnTree extends StatementTree {
     ExpressionTree getExpression();
 }
--- a/langtools/src/share/classes/com/sun/source/tree/Scope.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/Scope.java	Tue Oct 08 14:59:46 2013 -0700
@@ -48,7 +48,7 @@
  *
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public interface Scope {
     /**
      * Returns the enclosing scope.
--- a/langtools/src/share/classes/com/sun/source/tree/StatementTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/StatementTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -35,5 +35,5 @@
  * @author Jonathan Gibbons
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public interface StatementTree extends Tree {}
--- a/langtools/src/share/classes/com/sun/source/tree/SwitchTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/SwitchTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -43,7 +43,7 @@
  * @author Jonathan Gibbons
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public interface SwitchTree extends StatementTree {
     ExpressionTree getExpression();
     List<? extends CaseTree> getCases();
--- a/langtools/src/share/classes/com/sun/source/tree/SynchronizedTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/SynchronizedTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -40,7 +40,7 @@
  * @author Jonathan Gibbons
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public interface SynchronizedTree extends StatementTree {
     ExpressionTree getExpression();
     BlockTree getBlock();
--- a/langtools/src/share/classes/com/sun/source/tree/ThrowTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/ThrowTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -39,7 +39,7 @@
  * @author Jonathan Gibbons
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public interface ThrowTree extends StatementTree {
     ExpressionTree getExpression();
 }
--- a/langtools/src/share/classes/com/sun/source/tree/Tree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/Tree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -39,13 +39,13 @@
  *
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public interface Tree {
 
     /**
      * Enumerates all kinds of trees.
      */
-    @jdk.Supported
+    @jdk.Exported
     public enum Kind {
 
         ANNOTATED_TYPE(AnnotatedTypeTree.class),
--- a/langtools/src/share/classes/com/sun/source/tree/TreeVisitor.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/TreeVisitor.java	Tue Oct 08 14:59:46 2013 -0700
@@ -56,7 +56,7 @@
  *
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public interface TreeVisitor<R,P> {
     R visitAnnotatedType(AnnotatedTypeTree node, P p);
     R visitAnnotation(AnnotationTree node, P p);
--- a/langtools/src/share/classes/com/sun/source/tree/TryTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/TryTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -45,7 +45,7 @@
  * @author Jonathan Gibbons
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public interface TryTree extends StatementTree {
     BlockTree getBlock();
     List<? extends CatchTree> getCatches();
--- a/langtools/src/share/classes/com/sun/source/tree/TypeCastTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/TypeCastTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -39,7 +39,7 @@
  * @author Jonathan Gibbons
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public interface TypeCastTree extends ExpressionTree {
     Tree getType();
     ExpressionTree getExpression();
--- a/langtools/src/share/classes/com/sun/source/tree/TypeParameterTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/TypeParameterTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -46,7 +46,7 @@
  * @author Jonathan Gibbons
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public interface TypeParameterTree extends Tree {
     Name getName();
     List<? extends Tree> getBounds();
--- a/langtools/src/share/classes/com/sun/source/tree/UnaryTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/UnaryTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -42,7 +42,7 @@
  * @author Jonathan Gibbons
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public interface UnaryTree extends ExpressionTree {
     ExpressionTree getExpression();
 }
--- a/langtools/src/share/classes/com/sun/source/tree/UnionTypeTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/UnionTypeTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -34,7 +34,7 @@
  *
  * @since 1.7
  */
-@jdk.Supported
+@jdk.Exported
 public interface UnionTypeTree extends Tree {
     List<? extends Tree> getTypeAlternatives();
 }
--- a/langtools/src/share/classes/com/sun/source/tree/VariableTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/VariableTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -42,7 +42,7 @@
  * @author Jonathan Gibbons
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public interface VariableTree extends StatementTree {
     ModifiersTree getModifiers();
     Name getName();
--- a/langtools/src/share/classes/com/sun/source/tree/WhileLoopTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/WhileLoopTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -41,7 +41,7 @@
  * @author Jonathan Gibbons
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public interface WhileLoopTree extends StatementTree {
     ExpressionTree getCondition();
     StatementTree getStatement();
--- a/langtools/src/share/classes/com/sun/source/tree/WildcardTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/WildcardTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -44,7 +44,7 @@
  * @author Jonathan Gibbons
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public interface WildcardTree extends Tree {
     Tree getBound();
 }
--- a/langtools/src/share/classes/com/sun/source/tree/package-info.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/tree/package-info.java	Tue Oct 08 14:59:46 2013 -0700
@@ -31,5 +31,5 @@
  * @author Jonathan Gibbons
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 package com.sun.source.tree;
--- a/langtools/src/share/classes/com/sun/source/util/DocSourcePositions.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/util/DocSourcePositions.java	Tue Oct 08 14:59:46 2013 -0700
@@ -36,7 +36,7 @@
  *
  * @since 1.8
  */
-@jdk.Supported
+@jdk.Exported
 public interface DocSourcePositions extends SourcePositions {
 
     /**
--- a/langtools/src/share/classes/com/sun/source/util/DocTreePath.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/util/DocTreePath.java	Tue Oct 08 14:59:46 2013 -0700
@@ -35,7 +35,7 @@
  *
  * @since 1.8
  */
-@jdk.Supported
+@jdk.Exported
 public class DocTreePath implements Iterable<DocTree> {
     /**
      * Gets a documentation tree path for a tree node within a compilation unit.
--- a/langtools/src/share/classes/com/sun/source/util/DocTreePathScanner.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/util/DocTreePathScanner.java	Tue Oct 08 14:59:46 2013 -0700
@@ -36,7 +36,7 @@
  *
  * @since 1.8
  */
-@jdk.Supported
+@jdk.Exported
 public class DocTreePathScanner<R, P> extends DocTreeScanner<R, P> {
     /**
      * Scan a tree from a position identified by a TreePath.
--- a/langtools/src/share/classes/com/sun/source/util/DocTreeScanner.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/util/DocTreeScanner.java	Tue Oct 08 14:59:46 2013 -0700
@@ -67,7 +67,7 @@
  *
  * @since 1.8
  */
-@jdk.Supported
+@jdk.Exported
 public class DocTreeScanner<R,P> implements DocTreeVisitor<R,P> {
 
     /**
--- a/langtools/src/share/classes/com/sun/source/util/DocTrees.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/util/DocTrees.java	Tue Oct 08 14:59:46 2013 -0700
@@ -37,7 +37,7 @@
  *
  * @since 1.8
  */
-@jdk.Supported
+@jdk.Exported
 public abstract class DocTrees extends Trees {
     /**
      * Gets a DocTrees object for a given CompilationTask.
--- a/langtools/src/share/classes/com/sun/source/util/JavacTask.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/util/JavacTask.java	Tue Oct 08 14:59:46 2013 -0700
@@ -48,7 +48,7 @@
  * @author Jonathan Gibbons
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public abstract class JavacTask implements CompilationTask {
 
     /**
--- a/langtools/src/share/classes/com/sun/source/util/Plugin.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/util/Plugin.java	Tue Oct 08 14:59:46 2013 -0700
@@ -48,7 +48,7 @@
  *
  * @since 1.8
  */
-@jdk.Supported
+@jdk.Exported
 public interface Plugin {
     /**
      * Get the user-friendly name of this plug-in.
--- a/langtools/src/share/classes/com/sun/source/util/SimpleDocTreeVisitor.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/util/SimpleDocTreeVisitor.java	Tue Oct 08 14:59:46 2013 -0700
@@ -32,7 +32,7 @@
  *
  * @since 1.8
  */
-@jdk.Supported
+@jdk.Exported
 public class SimpleDocTreeVisitor<R,P> implements DocTreeVisitor<R, P> {
     protected final R DEFAULT_VALUE;
 
--- a/langtools/src/share/classes/com/sun/source/util/SimpleTreeVisitor.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/util/SimpleTreeVisitor.java	Tue Oct 08 14:59:46 2013 -0700
@@ -33,7 +33,7 @@
  * @author Peter von der Ah&eacute;
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public class SimpleTreeVisitor <R,P> implements TreeVisitor<R,P> {
     protected final R DEFAULT_VALUE;
 
--- a/langtools/src/share/classes/com/sun/source/util/SourcePositions.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/util/SourcePositions.java	Tue Oct 08 14:59:46 2013 -0700
@@ -35,7 +35,7 @@
  * @author Peter von der Ah&eacute;
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public interface SourcePositions {
 
     /**
--- a/langtools/src/share/classes/com/sun/source/util/TaskEvent.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/util/TaskEvent.java	Tue Oct 08 14:59:46 2013 -0700
@@ -36,14 +36,14 @@
  * @author Jonathan Gibbons
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public final class TaskEvent
 {
     /**
      * Kind of task event.
      * @since 1.6
      */
-    @jdk.Supported
+    @jdk.Exported
     public enum Kind {
         /**
          * For events related to the parsing of a file.
--- a/langtools/src/share/classes/com/sun/source/util/TaskListener.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/util/TaskListener.java	Tue Oct 08 14:59:46 2013 -0700
@@ -32,7 +32,7 @@
  * @author Jonathan Gibbons
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public interface TaskListener
 {
     public void started(TaskEvent e);
--- a/langtools/src/share/classes/com/sun/source/util/TreePath.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/util/TreePath.java	Tue Oct 08 14:59:46 2013 -0700
@@ -36,7 +36,7 @@
  * @author Jonathan Gibbons
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public class TreePath implements Iterable<Tree> {
     /**
      * Gets a tree path for a tree node within a compilation unit.
--- a/langtools/src/share/classes/com/sun/source/util/TreePathScanner.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/util/TreePathScanner.java	Tue Oct 08 14:59:46 2013 -0700
@@ -38,7 +38,7 @@
  * @author Jonathan Gibbons
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public class TreePathScanner<R, P> extends TreeScanner<R, P> {
 
     /**
--- a/langtools/src/share/classes/com/sun/source/util/TreeScanner.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/util/TreeScanner.java	Tue Oct 08 14:59:46 2013 -0700
@@ -68,7 +68,7 @@
  * @author Jonathan Gibbons
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 public class TreeScanner<R,P> implements TreeVisitor<R,P> {
 
     /** Scan a single node.
--- a/langtools/src/share/classes/com/sun/source/util/Trees.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/util/Trees.java	Tue Oct 08 14:59:46 2013 -0700
@@ -51,7 +51,7 @@
  *
  * @author Peter von der Ah&eacute;
  */
-@jdk.Supported
+@jdk.Exported
 public abstract class Trees {
     /**
      * Gets a Trees object for a given CompilationTask.
--- a/langtools/src/share/classes/com/sun/source/util/package-info.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/source/util/package-info.java	Tue Oct 08 14:59:46 2013 -0700
@@ -30,5 +30,5 @@
  * @author Jonathan Gibbons
  * @since 1.6
  */
-@jdk.Supported
+@jdk.Exported
 package com.sun.source.util;
--- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/AbstractMemberWriter.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/AbstractMemberWriter.java	Tue Oct 08 14:59:46 2013 -0700
@@ -413,7 +413,7 @@
     protected void addDeprecatedAPI(List<Doc> deprmembers, String headingKey,
             String tableSummary, String[] tableHeader, Content contentTree) {
         if (deprmembers.size() > 0) {
-            Content table = HtmlTree.TABLE(0, 3, 0, tableSummary,
+            Content table = HtmlTree.TABLE(HtmlStyle.deprecatedSummary, 0, 3, 0, tableSummary,
                 writer.getTableCaption(configuration.getResource(headingKey)));
             table.addContent(writer.getSummaryTableHeader(tableHeader, "col"));
             Content tbody = new HtmlTree(HtmlTag.TBODY);
@@ -453,7 +453,7 @@
         List<? extends ProgramElementDoc> members = mems;
         boolean printedUseTableHeader = false;
         if (members.size() > 0) {
-            Content table = HtmlTree.TABLE(0, 3, 0, tableSummary,
+            Content table = HtmlTree.TABLE(HtmlStyle.useSummary, 0, 3, 0, tableSummary,
                     writer.getTableCaption(heading));
             Content tbody = new HtmlTree(HtmlTag.TBODY);
             Iterator<? extends ProgramElementDoc> it = members.iterator();
--- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/ClassUseWriter.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/ClassUseWriter.java	Tue Oct 08 14:59:46 2013 -0700
@@ -263,7 +263,7 @@
      * @param contentTree the content tree to which the packages list will be added
      */
     protected void addPackageList(Content contentTree) throws IOException {
-        Content table = HtmlTree.TABLE(0, 3, 0, useTableSummary,
+        Content table = HtmlTree.TABLE(HtmlStyle.useSummary, 0, 3, 0, useTableSummary,
                 getTableCaption(configuration.getResource(
                 "doclet.ClassUse_Packages.that.use.0",
                 getLink(new LinkInfoImpl(configuration, LinkInfoImpl.Kind.CLASS_USE_HEADER, classdoc
@@ -298,7 +298,7 @@
                 pkgToPackageAnnotations.isEmpty()) {
             return;
         }
-        Content table = HtmlTree.TABLE(0, 3, 0, useTableSummary,
+        Content table = HtmlTree.TABLE(HtmlStyle.useSummary, 0, 3, 0, useTableSummary,
                 getTableCaption(configuration.getResource(
                 "doclet.ClassUse_PackageAnnotation",
                 getLink(new LinkInfoImpl(configuration,
--- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/ConstantsSummaryWriterImpl.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/ConstantsSummaryWriterImpl.java	Tue Oct 08 14:59:46 2013 -0700
@@ -207,7 +207,7 @@
      * @return the table caption and header
      */
     protected Content getClassName(Content classStr) {
-        Content table = HtmlTree.TABLE(0, 3, 0, constantsTableSummary,
+        Content table = HtmlTree.TABLE(HtmlStyle.constantsSummary, 0, 3, 0, constantsTableSummary,
                 getTableCaption(classStr));
         table.addContent(getSummaryTableHeader(constantsTableHeader, "col"));
         return table;
--- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/HtmlDoclet.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/HtmlDoclet.java	Tue Oct 08 14:59:46 2013 -0700
@@ -194,6 +194,10 @@
                             .getClassBuilder(curr, prev, next, classtree);
                     classBuilder.build();
                 }
+            } catch (IOException e) {
+                throw new DocletAbortException(e);
+            } catch (DocletAbortException de) {
+                throw de;
             } catch (Exception e) {
                 e.printStackTrace();
                 throw new DocletAbortException(e);
--- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java	Tue Oct 08 14:59:46 2013 -0700
@@ -356,7 +356,7 @@
         if(classes.length > 0) {
             Arrays.sort(classes);
             Content caption = getTableCaption(new RawHtml(label));
-            Content table = HtmlTree.TABLE(HtmlStyle.packageSummary, 0, 3, 0,
+            Content table = HtmlTree.TABLE(HtmlStyle.typeSummary, 0, 3, 0,
                     tableSummary, caption);
             table.addContent(getSummaryTableHeader(tableHeader, "col"));
             Content tbody = new HtmlTree(HtmlTag.TBODY);
@@ -937,7 +937,7 @@
     protected void addPackageDeprecatedAPI(List<Doc> deprPkgs, String headingKey,
             String tableSummary, String[] tableHeader, Content contentTree) {
         if (deprPkgs.size() > 0) {
-            Content table = HtmlTree.TABLE(0, 3, 0, tableSummary,
+            Content table = HtmlTree.TABLE(HtmlStyle.deprecatedSummary, 0, 3, 0, tableSummary,
                     getTableCaption(configuration.getResource(headingKey)));
             table.addContent(getSummaryTableHeader(tableHeader, "col"));
             Content tbody = new HtmlTree(HtmlTag.TBODY);
--- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/PackageUseWriter.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/PackageUseWriter.java	Tue Oct 08 14:59:46 2013 -0700
@@ -151,7 +151,7 @@
      * @param contentTree the content tree to which the package list will be added
      */
     protected void addPackageList(Content contentTree) throws IOException {
-        Content table = HtmlTree.TABLE(0, 3, 0, useTableSummary,
+        Content table = HtmlTree.TABLE(HtmlStyle.useSummary, 0, 3, 0, useTableSummary,
                 getTableCaption(configuration.getResource(
                 "doclet.ClassUse_Packages.that.use.0",
                 getPackageLink(pkgdoc, Util.getPackageName(pkgdoc)))));
@@ -196,7 +196,7 @@
             }
             String tableSummary = configuration.getText("doclet.Use_Table_Summary",
                     configuration.getText("doclet.classes"));
-            Content table = HtmlTree.TABLE(0, 3, 0, tableSummary,
+            Content table = HtmlTree.TABLE(HtmlStyle.useSummary, 0, 3, 0, tableSummary,
                     getTableCaption(configuration.getResource(
                     "doclet.ClassUse_Classes.in.0.used.by.1",
                     getPackageLink(pkgdoc, Util.getPackageName(pkgdoc)),
--- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/PackageWriterImpl.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/PackageWriterImpl.java	Tue Oct 08 14:59:46 2013 -0700
@@ -169,7 +169,7 @@
         if(classes.length > 0) {
             Arrays.sort(classes);
             Content caption = getTableCaption(new RawHtml(label));
-            Content table = HtmlTree.TABLE(HtmlStyle.packageSummary, 0, 3, 0,
+            Content table = HtmlTree.TABLE(HtmlStyle.typeSummary, 0, 3, 0,
                     tableSummary, caption);
             table.addContent(getSummaryTableHeader(tableHeader, "col"));
             Content tbody = new HtmlTree(HtmlTag.TBODY);
--- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/SubWriterHolderWriter.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/SubWriterHolderWriter.java	Tue Oct 08 14:59:46 2013 -0700
@@ -92,7 +92,7 @@
         else {
             caption = getTableCaption(mw.getCaption());
         }
-        Content table = HtmlTree.TABLE(HtmlStyle.overviewSummary, 0, 3, 0,
+        Content table = HtmlTree.TABLE(HtmlStyle.memberSummary, 0, 3, 0,
                 mw.getTableSummary(), caption);
         table.addContent(getSummaryTableHeader(mw.getSummaryTableHeader(cd), "col"));
         for (int i = 0; i < tableContents.size(); i++) {
--- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlStyle.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlStyle.java	Tue Oct 08 14:59:46 2013 -0700
@@ -48,8 +48,11 @@
     colFirst,
     colLast,
     colOne,
+    constantsSummary,
     constantValuesContainer,
     contentContainer,
+    deprecatedContent,
+    deprecatedSummary,
     description,
     details,
     docSummary,
@@ -61,11 +64,11 @@
     inheritance,
     italic,
     legalCopy,
+    memberSummary,
     nameValue,
     navBarCell1Rev,
     navList,
     overviewSummary,
-    packageSummary,
     rowColor,
     serializedFormContainer,
     skipNav,
@@ -76,9 +79,10 @@
     subNavList,
     subTitle,
     summary,
-    deprecatedContent,
     tabEnd,
     tableTab,
     title,
-    topNav;
+    topNav,
+    typeSummary,
+    useSummary;
 }
--- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlTree.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlTree.java	Tue Oct 08 14:59:46 2013 -0700
@@ -619,25 +619,6 @@
     }
 
     /**
-     * Generates a Table tag with border, width and summary attributes and
-     * some content.
-     *
-     * @param border border for the table
-     * @param width width of the table
-     * @param summary summary for the table
-     * @param body content for the table
-     * @return an HtmlTree object for the TABLE tag
-     */
-    public static HtmlTree TABLE(int border, int width, String summary,
-            Content body) {
-        HtmlTree htmltree = new HtmlTree(HtmlTag.TABLE, nullCheck(body));
-        htmltree.addAttr(HtmlAttr.BORDER, Integer.toString(border));
-        htmltree.addAttr(HtmlAttr.WIDTH, Integer.toString(width));
-        htmltree.addAttr(HtmlAttr.SUMMARY, nullCheck(summary));
-        return htmltree;
-    }
-
-    /**
      * Generates a Table tag with style class, border, cell padding,
      * cellspacing and summary attributes and some content.
      *
@@ -662,22 +643,6 @@
     }
 
     /**
-     * Generates a Table tag with border, cell padding,
-     * cellspacing and summary attributes and some content.
-     *
-     * @param border border for the table
-     * @param cellPadding cell padding for the table
-     * @param cellSpacing cell spacing for the table
-     * @param summary summary for the table
-     * @param body content for the table
-     * @return an HtmlTree object for the TABLE tag
-     */
-    public static HtmlTree TABLE(int border, int cellPadding,
-            int cellSpacing, String summary, Content body) {
-        return TABLE(null, border, cellPadding, cellSpacing, summary, body);
-    }
-
-    /**
      * Generates a TD tag with style class attribute and some content.
      *
      * @param styleClass style for the tag
--- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlWriter.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlWriter.java	Tue Oct 08 14:59:46 2013 -0700
@@ -310,8 +310,12 @@
         if(winTitle != null && winTitle.length() > 0) {
             script.addAttr(HtmlAttr.TYPE, "text/javascript");
             String scriptCode = "<!--" + DocletConstants.NL +
-                    "    if (location.href.indexOf('is-external=true') == -1) {" + DocletConstants.NL +
-                    "        parent.document.title=\"" + winTitle + "\";" + DocletConstants.NL +
+                    "    try {" + DocletConstants.NL +
+                    "        if (location.href.indexOf('is-external=true') == -1) {" + DocletConstants.NL +
+                    "            parent.document.title=\"" + winTitle + "\";" + DocletConstants.NL +
+                    "        }" + DocletConstants.NL +
+                    "    }" + DocletConstants.NL +
+                    "    catch(err) {" + DocletConstants.NL +
                     "    }" + DocletConstants.NL +
                     "//-->" + DocletConstants.NL;
             RawHtml scriptContent = new RawHtml(scriptCode);
--- a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/AbstractDoclet.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/AbstractDoclet.java	Tue Oct 08 14:59:46 2013 -0700
@@ -83,6 +83,16 @@
         } catch (Configuration.Fault f) {
             root.printError(f.getMessage());
             return false;
+        } catch (DocletAbortException e) {
+            Throwable cause = e.getCause();
+            if (cause != null) {
+                if (cause.getLocalizedMessage() != null) {
+                    root.printError(cause.getLocalizedMessage());
+                } else {
+                    root.printError(cause.toString());
+                }
+            }
+            return false;
         } catch (Exception exc) {
             exc.printStackTrace();
             return false;
--- a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/AbstractBuilder.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/AbstractBuilder.java	Tue Oct 08 14:59:46 2013 -0700
@@ -140,7 +140,7 @@
             configuration.root.printError("Unknown element: " + component);
             throw new DocletAbortException(e);
         } catch (InvocationTargetException e) {
-            e.getCause().printStackTrace();
+            throw new DocletAbortException(e.getCause());
         } catch (Exception e) {
             e.printStackTrace();
             configuration.root.printError("Exception " +
--- a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/stylesheet.css	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/stylesheet.css	Tue Oct 08 14:59:46 2013 -0700
@@ -348,27 +348,16 @@
 /*
 Table styles
 */
-.contentContainer table, .classUseContainer table, .constantValuesContainer table {
+.overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary {
     border-bottom:1px solid #9eadc0;
-    width:100%;
-}
-.contentContainer ul li table, .classUseContainer ul li table, .constantValuesContainer ul li table {
+    margin:0 0 12px 0px;
     width:100%;
 }
-.contentContainer .description table, .contentContainer .details table {
-    border-bottom:none;
-}
-.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{
-    vertical-align:top;
-    padding-right:20px;
+.overviewSummary, .memberSummary  {
+    padding:0px;
 }
-.contentContainer ul li table th.colLast, .classUseContainer ul li table th.colLast,.constantValuesContainer ul li table th.colLast,
-.contentContainer ul li table td.colLast, .classUseContainer ul li table td.colLast,.constantValuesContainer ul li table td.colLast,
-.contentContainer ul li table th.colOne, .classUseContainer ul li table th.colOne,
-.contentContainer ul li table td.colOne, .classUseContainer ul li table td.colOne {
-    padding-right:3px;
-}
-.overviewSummary caption, .packageSummary caption, .contentContainer ul.blockList li.blockList caption, .summary caption, .classUseContainer caption, .constantValuesContainer caption {
+.overviewSummary caption, .memberSummary caption, .typeSummary caption,
+.useSummary caption, .constantsSummary caption, .deprecatedSummary caption {
     position:relative;
     text-align:left;
     background-repeat:no-repeat;
@@ -379,10 +368,18 @@
     padding:0px;
     margin:0px;
 }
-caption a:link, caption a:hover, caption a:active, caption a:visited {
+.overviewSummary caption a:link, .memberSummary caption a:link, .typeSummary caption a:link,
+.useSummary caption a:link, .constantsSummary caption a:link, .deprecatedSummary caption a:link,
+.overviewSummary caption a:hover, .memberSummary caption a:hover, .typeSummary caption a:hover,
+.useSummary caption a:hover, .constantsSummary caption a:hover, .deprecatedSummary caption a:hover,
+.overviewSummary caption a:active, .memberSummary caption a:active, .typeSummary caption a:active,
+.useSummary caption a:active, .constantsSummary caption a:active, .deprecatedSummary caption a:active,
+.overviewSummary caption a:visited, .memberSummary caption a:visited, .typeSummary caption a:visited,
+.useSummary caption a:visited, .constantsSummary caption a:visited, .deprecatedSummary caption a:visited {
     color:#FFFFFF;
 }
-.overviewSummary caption span, .packageSummary caption span, .contentContainer ul.blockList li.blockList caption span, .summary caption span, .classUseContainer caption span, .constantValuesContainer caption span {
+.overviewSummary caption span, .memberSummary caption span, .typeSummary caption span,
+.useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span {
     white-space:nowrap;
     padding-top:8px;
     padding-left:8px;
@@ -390,7 +387,7 @@
     float:left;
     background-image:url(resources/titlebar.gif);
 }
-.contentContainer ul.blockList li.blockList caption span.activeTableTab span {
+.memberSummary caption span.activeTableTab span {
     white-space:nowrap;
     padding-top:8px;
     padding-left:8px;
@@ -398,7 +395,7 @@
     float:left;
     background-image:url(resources/activetitlebar.gif);
 }
-.contentContainer ul.blockList li.blockList caption span.tableTab span {
+.memberSummary caption span.tableTab span {
     white-space:nowrap;
     padding-top:8px;
     padding-left:8px;
@@ -406,14 +403,15 @@
     float:left;
     background-image:url(resources/titlebar.gif);
 }
-.contentContainer ul.blockList li.blockList caption span.tableTab, .contentContainer ul.blockList li.blockList caption span.activeTableTab {
+.memberSummary caption span.tableTab, .memberSummary caption span.activeTableTab {
     padding-top:0px;
     padding-left:0px;
     background-image:none;
     float:none;
     display:inline-block;
 }
-.overviewSummary .tabEnd, .packageSummary .tabEnd, .contentContainer ul.blockList li.blockList .tabEnd, .summary .tabEnd, .classUseContainer .tabEnd, .constantValuesContainer .tabEnd {
+.overviewSummary .tabEnd, .memberSummary .tabEnd, .typeSummary .tabEnd,
+.useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd {
     width:10px;
     background-image:url(resources/titlebar_end.gif);
     background-repeat:no-repeat;
@@ -421,7 +419,7 @@
     position:relative;
     float:left;
 }
-.contentContainer ul.blockList li.blockList .activeTableTab .tabEnd {
+.memberSummary .activeTableTab .tabEnd {
     width:10px;
     margin-right:5px;
     background-image:url(resources/activetitlebar_end.gif);
@@ -430,7 +428,7 @@
     position:relative;
     float:left;
 }
-.contentContainer ul.blockList li.blockList .tableTab .tabEnd {
+.memberSummary .tableTab .tabEnd {
     width:10px;
     margin-right:5px;
     background-image:url(resources/titlebar_end.gif);
@@ -439,33 +437,23 @@
     position:relative;
     float:left;
 }
-ul.blockList ul.blockList li.blockList table {
-    margin:0 0 12px 0px;
-    width:100%;
-}
-.tableSubHeadingColor {
-    background-color: #EEEEFF;
-}
-.altColor {
-    background-color:#eeeeef;
-}
-.rowColor {
-    background-color:#ffffff;
-}
-.overviewSummary td, .packageSummary td, .contentContainer ul.blockList li.blockList td, .summary td, .classUseContainer td, .constantValuesContainer td {
+.overviewSummary td, .memberSummary td, .typeSummary td,
+.useSummary td, .constantsSummary td, .deprecatedSummary td {
     text-align:left;
     padding:3px 3px 3px 7px;
 }
-th.colFirst, th.colLast, th.colOne, .constantValuesContainer th {
+th.colOne, th.colFirst, th.colLast, .useSummary th, .constantsSummary th,
+td.colOne, td.colFirst, td.colLast, .useSummary td, .constantsSummary td{
+    vertical-align:top;
+    padding-right:3px;
+}
+th.colFirst, th.colLast, th.colOne, .constantsSummary th {
     background:#dee3e9;
     border-top:1px solid #9eadc0;
     border-bottom:1px solid #9eadc0;
     text-align:left;
     padding:3px 3px 3px 7px;
 }
-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 {
-    font-weight:bold;
-}
 td.colFirst, th.colFirst {
     border-left:1px solid #9eadc0;
     white-space:nowrap;
@@ -477,18 +465,25 @@
     border-right:1px solid #9eadc0;
     border-left:1px solid #9eadc0;
 }
-table.overviewSummary  {
-    padding:0px;
-    margin-left:0px;
-}
-table.overviewSummary td.colFirst, table.overviewSummary th.colFirst,
-table.overviewSummary td.colOne, table.overviewSummary th.colOne {
+.overviewSummary td.colFirst, .overviewSummary th.colFirst,
+.overviewSummary td.colOne, .overviewSummary th.colOne,
+.memberSummary td.colFirst, .memberSummary th.colFirst,
+.memberSummary td.colOne, .memberSummary th.colOne,
+.typeSummary td.colFirst{
     width:25%;
     vertical-align:middle;
 }
-table.packageSummary td.colFirst, table.overviewSummary th.colFirst {
-    width:25%;
-    vertical-align:middle;
+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 {
+    font-weight:bold;
+}
+.tableSubHeadingColor {
+    background-color: #EEEEFF;
+}
+.altColor {
+    background-color:#eeeeef;
+}
+.rowColor {
+    background-color:#ffffff;
 }
 /*
 Content styles
--- a/langtools/src/share/classes/com/sun/tools/javac/Main.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/tools/javac/Main.java	Tue Oct 08 14:59:46 2013 -0700
@@ -31,7 +31,7 @@
  * The programmatic interface for the Java Programming Language
  * compiler, javac.
  */
-@jdk.Supported
+@jdk.Exported
 public class Main {
 
     /** Main entry point for the launcher.
--- a/langtools/src/share/classes/com/sun/tools/javac/api/JavacTool.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/tools/javac/api/JavacTool.java	Tue Oct 08 14:59:46 2013 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -120,7 +120,6 @@
         try {
             ClientCodeWrapper ccw = ClientCodeWrapper.instance(context);
 
-            final String kindMsg = "All compilation units must be of SOURCE kind";
             if (options != null)
                 for (String option : options)
                     option.getClass(); // null check
@@ -132,8 +131,11 @@
             if (compilationUnits != null) {
                 compilationUnits = ccw.wrapJavaFileObjects(compilationUnits); // implicit null check
                 for (JavaFileObject cu : compilationUnits) {
-                    if (cu.getKind() != JavaFileObject.Kind.SOURCE)
+                    if (cu.getKind() != JavaFileObject.Kind.SOURCE) {
+                        String kindMsg = "Compilation unit is not of SOURCE kind: "
+                                + "\"" + cu.getName() + "\"";
                         throw new IllegalArgumentException(kindMsg);
+                    }
                 }
             }
 
--- a/langtools/src/share/classes/com/sun/tools/javac/code/Symbol.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/tools/javac/code/Symbol.java	Tue Oct 08 14:59:46 2013 -0700
@@ -327,7 +327,8 @@
     public boolean isStatic() {
         return
             (flags() & STATIC) != 0 ||
-            (owner.flags() & INTERFACE) != 0 && kind != MTH;
+            (owner.flags() & INTERFACE) != 0 && kind != MTH &&
+             name != name.table.names._this;
     }
 
     public boolean isInterface() {
@@ -1060,6 +1061,12 @@
                 return ElementKind.CLASS;
         }
 
+        @Override
+        public Set<Modifier> getModifiers() {
+            long flags = flags();
+            return Flags.asModifierSet(flags & ~DEFAULT);
+        }
+
         public NestingKind getNestingKind() {
             complete();
             if (owner.kind == PCK)
--- a/langtools/src/share/classes/com/sun/tools/javac/code/Type.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/tools/javac/code/Type.java	Tue Oct 08 14:59:46 2013 -0700
@@ -1651,6 +1651,9 @@
         public <R, P> R accept(TypeVisitor<R, P> v, P p) {
             return v.visitNoType(this, p);
         }
+
+        @Override
+        public boolean isCompound() { return false; }
     }
 
     /** Represents VOID.
@@ -1672,6 +1675,9 @@
         }
 
         @Override
+        public boolean isCompound() { return false; }
+
+        @Override
         public <R, P> R accept(TypeVisitor<R, P> v, P p) {
             return v.visitNoType(this, p);
         }
@@ -1698,6 +1704,9 @@
         }
 
         @Override
+        public boolean isCompound() { return false; }
+
+        @Override
         public <R, P> R accept(TypeVisitor<R, P> v, P p) {
             return v.visitNull(this, p);
         }
--- a/langtools/src/share/classes/com/sun/tools/javac/code/Types.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/tools/javac/code/Types.java	Tue Oct 08 14:59:46 2013 -0700
@@ -244,7 +244,7 @@
             public Type visitClassType(ClassType t, Symbol sym) {
                 if (t.tsym == sym)
                     return t;
-                Type base = asSuper(sym.type, t.tsym);
+                Type base = asSuper(sym.type, t);
                 if (base == null)
                     return null;
                 ListBuffer<Type> from = new ListBuffer<Type>();
@@ -687,7 +687,7 @@
                         (t.flags() & SYNTHETIC) == 0;
             }
         };
-        private boolean pendingBridges(ClassSymbol origin, TypeSymbol s) {
+        private boolean pendingBridges(ClassSymbol origin, TypeSymbol sym) {
             //a symbol will be completed from a classfile if (a) symbol has
             //an associated file object with CLASS kind and (b) the symbol has
             //not been entered
@@ -696,11 +696,11 @@
                     enter.getEnv(origin) == null) {
                 return false;
             }
-            if (origin == s) {
+            if (origin == sym) {
                 return true;
             }
             for (Type t : interfaces(origin.type)) {
-                if (pendingBridges((ClassSymbol)t.tsym, s)) {
+                if (pendingBridges((ClassSymbol)t.tsym, sym)) {
                     return true;
                 }
             }
@@ -761,7 +761,7 @@
             } else if (t.hasTag(TYPEVAR)) {
                 return isSubtypeUnchecked(t.getUpperBound(), s, warn);
             } else if (!s.isRaw()) {
-                Type t2 = asSuper(t, s.tsym);
+                Type t2 = asSuper(t, s);
                 if (t2 != null && t2.isRaw()) {
                     if (isReifiable(s)) {
                         warn.silentWarn(LintCategory.UNCHECKED);
@@ -914,7 +914,7 @@
 
             @Override
             public Boolean visitClassType(ClassType t, Type s) {
-                Type sup = asSuper(t, s.tsym);
+                Type sup = asSuper(t, s);
                 return sup != null
                     && sup.tsym == s.tsym
                     // You're not allowed to write
@@ -1935,30 +1935,42 @@
      * @param t a type
      * @param sym a symbol
      */
-    public Type asSuper(Type t, Symbol sym) {
-        return asSuper.visit(t, sym);
+    public Type asSuper(Type t, Symbol s) {
+        return asSuper(t, s.type);
+    }
+
+    public Type asSuper(Type t, Type s) {
+        return asSuper.visit(t, s);
     }
     // where
-        private SimpleVisitor<Type,Symbol> asSuper = new SimpleVisitor<Type,Symbol>() {
-
-            public Type visitType(Type t, Symbol sym) {
+        private SimpleVisitor<Type,Type> asSuper = new SimpleVisitor<Type,Type>() {
+
+            public Type visitType(Type t, Type s) {
                 return null;
             }
 
             @Override
-            public Type visitClassType(ClassType t, Symbol sym) {
-                if (t.tsym == sym)
+            public Type visitClassType(ClassType t, Type s) {
+                if (t.tsym == s.tsym)
                     return t;
 
                 Type st = supertype(t);
-                if (st.hasTag(CLASS) || st.hasTag(TYPEVAR) || st.hasTag(ERROR)) {
-                    Type x = asSuper(st, sym);
+
+                switch(st.getTag()) {
+                default: break;
+                case CLASS:
+                case ARRAY:
+                case TYPEVAR:
+                case ERROR: {
+                    Type x = asSuper(st, s);
                     if (x != null)
                         return x;
+                } break;
                 }
-                if ((sym.flags() & INTERFACE) != 0) {
+
+                if ((s.tsym.flags() & INTERFACE) != 0) {
                     for (List<Type> l = interfaces(t); l.nonEmpty(); l = l.tail) {
-                        Type x = asSuper(l.head, sym);
+                        Type x = asSuper(l.head, s);
                         if (x != null)
                             return x;
                     }
@@ -1967,22 +1979,20 @@
             }
 
             @Override
-            public Type visitArrayType(ArrayType t, Symbol sym) {
-                return isSubtype(t, sym.type) ? sym.type : null;
+            public Type visitArrayType(ArrayType t, Type s) {
+                return isSubtype(t, s) ? s : null;
             }
 
             @Override
-            public Type visitTypeVar(TypeVar t, Symbol sym) {
-                if (t.tsym == sym)
+            public Type visitTypeVar(TypeVar t, Type s) {
+                if (t.tsym == s.tsym)
                     return t;
                 else
-                    return asSuper(t.bound, sym);
+                    return asSuper(t.bound, s);
             }
 
             @Override
-            public Type visitErrorType(ErrorType t, Symbol sym) {
-                return t;
-            }
+            public Type visitErrorType(ErrorType t, Type s) { return t; }
         };
 
     /**
@@ -3563,9 +3573,9 @@
             //step 3 - for each element G in MEC, compute lci(Inv(G))
             List<Type> candidates = List.nil();
             for (Type erasedSupertype : mec) {
-                List<Type> lci = List.of(asSuper(ts.head, erasedSupertype.tsym));
+                List<Type> lci = List.of(asSuper(ts.head, erasedSupertype));
                 for (Type t : ts) {
-                    lci = intersect(lci, List.of(asSuper(t, erasedSupertype.tsym)));
+                    lci = intersect(lci, List.of(asSuper(t, erasedSupertype)));
                 }
                 candidates = candidates.appendList(lci);
             }
@@ -3985,7 +3995,7 @@
         // The arguments to the supers could be unified here to
         // get a more accurate analysis
         while (commonSupers.nonEmpty()) {
-            Type t1 = asSuper(from, commonSupers.head.tsym);
+            Type t1 = asSuper(from, commonSupers.head);
             Type t2 = commonSupers.head; // same as asSuper(to, commonSupers.head.tsym);
             if (disjointTypes(t1.getTypeArguments(), t2.getTypeArguments()))
                 return false;
@@ -4016,7 +4026,7 @@
             from = target;
         }
         Assert.check((from.tsym.flags() & FINAL) != 0);
-        Type t1 = asSuper(from, to.tsym);
+        Type t1 = asSuper(from, to);
         if (t1 == null) return false;
         Type t2 = to;
         if (disjointTypes(t1.getTypeArguments(), t2.getTypeArguments()))
--- a/langtools/src/share/classes/com/sun/tools/javac/comp/Annotate.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/tools/javac/comp/Annotate.java	Tue Oct 08 14:59:46 2013 -0700
@@ -310,6 +310,7 @@
     Attribute enterAttributeValue(Type expected,
                                   JCExpression tree,
                                   Env<AttrContext> env) {
+        Type original = expected;
         //first, try completing the attribution value sym - if a completion
         //error is thrown, we should recover gracefully, and display an
         //ordinary resolution diagnostic.
@@ -317,7 +318,54 @@
             expected.tsym.complete();
         } catch(CompletionFailure e) {
             log.error(tree.pos(), "cant.resolve", Kinds.kindName(e.sym), e.sym);
-            return new Attribute.Error(expected);
+            expected = syms.errType;
+        }
+        if (expected.hasTag(ARRAY)) {
+            if (!tree.hasTag(NEWARRAY)) {
+                tree = make.at(tree.pos).
+                    NewArray(null, List.<JCExpression>nil(), List.of(tree));
+            }
+            JCNewArray na = (JCNewArray)tree;
+            if (na.elemtype != null) {
+                log.error(na.elemtype.pos(), "new.not.allowed.in.annotation");
+            }
+            ListBuffer<Attribute> buf = new ListBuffer<Attribute>();
+            for (List<JCExpression> l = na.elems; l.nonEmpty(); l=l.tail) {
+                buf.append(enterAttributeValue(types.elemtype(expected),
+                                               l.head,
+                                               env));
+            }
+            na.type = expected;
+            return new Attribute.
+                Array(expected, buf.toArray(new Attribute[buf.length()]));
+        }
+        if (tree.hasTag(NEWARRAY)) { //error recovery
+            if (!expected.isErroneous())
+                log.error(tree.pos(), "annotation.value.not.allowable.type");
+            JCNewArray na = (JCNewArray)tree;
+            if (na.elemtype != null) {
+                log.error(na.elemtype.pos(), "new.not.allowed.in.annotation");
+            }
+            for (List<JCExpression> l = na.elems; l.nonEmpty(); l=l.tail) {
+                enterAttributeValue(syms.errType,
+                                    l.head,
+                                    env);
+            }
+            return new Attribute.Error(original);
+        }
+        if ((expected.tsym.flags() & Flags.ANNOTATION) != 0) {
+            if (tree.hasTag(ANNOTATION)) {
+                return enterAnnotation((JCAnnotation)tree, expected, env);
+            } else {
+                log.error(tree.pos(), "annotation.value.must.be.annotation");
+                expected = syms.errType;
+            }
+        }
+        if (tree.hasTag(ANNOTATION)) { //error recovery
+            if (!expected.isErroneous())
+                log.error(tree.pos(), "annotation.not.valid.for.type", expected);
+            enterAnnotation((JCAnnotation)tree, syms.errType, env);
+            return new Attribute.Error(original);
         }
         if (expected.isPrimitive() || types.isSameType(expected, syms.stringType)) {
             Type result = attr.attribExpr(tree, env, expected);
@@ -353,33 +401,6 @@
             return new Attribute.Class(types,
                                        (((JCFieldAccess) tree).selected).type);
         }
-        if ((expected.tsym.flags() & Flags.ANNOTATION) != 0) {
-            if (!tree.hasTag(ANNOTATION)) {
-                log.error(tree.pos(), "annotation.value.must.be.annotation");
-                expected = syms.errorType;
-            }
-            return enterAnnotation((JCAnnotation)tree, expected, env);
-        }
-        if (expected.hasTag(ARRAY)) { // should really be isArray()
-            if (!tree.hasTag(NEWARRAY)) {
-                tree = make.at(tree.pos).
-                    NewArray(null, List.<JCExpression>nil(), List.of(tree));
-            }
-            JCNewArray na = (JCNewArray)tree;
-            if (na.elemtype != null) {
-                log.error(na.elemtype.pos(), "new.not.allowed.in.annotation");
-                return new Attribute.Error(expected);
-            }
-            ListBuffer<Attribute> buf = new ListBuffer<Attribute>();
-            for (List<JCExpression> l = na.elems; l.nonEmpty(); l=l.tail) {
-                buf.append(enterAttributeValue(types.elemtype(expected),
-                                               l.head,
-                                               env));
-            }
-            na.type = expected;
-            return new Attribute.
-                Array(expected, buf.toArray(new Attribute[buf.length()]));
-        }
         if (expected.hasTag(CLASS) &&
             (expected.tsym.flags() & Flags.ENUM) != 0) {
             attr.attribExpr(tree, env, expected);
@@ -394,6 +415,7 @@
             VarSymbol enumerator = (VarSymbol) sym;
             return new Attribute.Enum(expected, enumerator);
         }
+        //error recovery:
         if (!expected.isErroneous())
             log.error(tree.pos(), "annotation.value.not.allowable.type");
         return new Attribute.Error(attr.attribExpr(tree, env, expected));
--- a/langtools/src/share/classes/com/sun/tools/javac/comp/Attr.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/tools/javac/comp/Attr.java	Tue Oct 08 14:59:46 2013 -0700
@@ -58,6 +58,7 @@
 import static com.sun.tools.javac.code.Kinds.ERRONEOUS;
 import static com.sun.tools.javac.code.TypeTag.*;
 import static com.sun.tools.javac.code.TypeTag.WILDCARD;
+import static com.sun.tools.javac.code.TypeTag.ARRAY;
 import static com.sun.tools.javac.tree.JCTree.Tag.*;
 
 /** This is the main context-dependent analysis phase in GJC. It
@@ -797,28 +798,32 @@
                    JCTree tree,
                    Env<AttrContext> env,
                    boolean classExpected,
-                   boolean interfaceExpected,
+                   boolean interfaceOrArrayExpected,
                    boolean checkExtensible) {
         if (t.isErroneous())
             return t;
-        if (t.hasTag(TYPEVAR) && !classExpected && !interfaceExpected) {
+        if (t.hasTag(TYPEVAR) && !classExpected && !interfaceOrArrayExpected) {
             // check that type variable is already visible
             if (t.getUpperBound() == null) {
                 log.error(tree.pos(), "illegal.forward.ref");
                 return types.createErrorType(t);
             }
-        } else {
+        } else if (classExpected) {
             t = chk.checkClassType(tree.pos(), t, checkExtensible|!allowGenerics);
+        } else {
+            t = chk.checkClassOrArrayType(tree.pos(), t,
+                                          checkExtensible|!allowGenerics);
         }
-        if (interfaceExpected && (t.tsym.flags() & INTERFACE) == 0) {
+        if (interfaceOrArrayExpected &&
+            !(t.tsym.isInterface() || t.getTag() == ARRAY)) {
             log.error(tree.pos(), "intf.expected.here");
             // return errType is necessary since otherwise there might
             // be undetected cycles which cause attribution to loop
             return types.createErrorType(t);
         } else if (checkExtensible &&
                    classExpected &&
-                   (t.tsym.flags() & INTERFACE) != 0) {
-                log.error(tree.pos(), "no.intf.expected.here");
+                   t.tsym.isInterface()) {
+            log.error(tree.pos(), "no.intf.expected.here");
             return types.createErrorType(t);
         }
         if (checkExtensible &&
@@ -829,6 +834,12 @@
         chk.checkNonCyclic(tree.pos(), t);
         return t;
     }
+    //where
+        private Object asTypeParam(Type t) {
+            return (t.hasTag(TYPEVAR))
+                                    ? diags.fragment("type.parameter", t)
+                                    : t;
+        }
 
     Type attribIdentAsEnumType(Env<AttrContext> env, JCIdent id) {
         Assert.check((env.enclClass.sym.flags() & ENUM) != 0);
@@ -4058,8 +4069,7 @@
     }
 
     public void visitAnnotation(JCAnnotation tree) {
-        log.error(tree.pos(), "annotation.not.valid.for.type", pt());
-        result = tree.type = syms.errType;
+        Assert.error("should be handled in Annotate");
     }
 
     public void visitAnnotatedType(JCAnnotatedType tree) {
--- a/langtools/src/share/classes/com/sun/tools/javac/comp/Check.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/tools/javac/comp/Check.java	Tue Oct 08 14:59:46 2013 -0700
@@ -706,6 +706,37 @@
         return t;
     }
 
+    // Analog of checkClassType that calls checkClassOrArrayType instead
+    Type checkClassOrArrayType(DiagnosticPosition pos,
+                               Type t, boolean noBounds) {
+        t = checkClassOrArrayType(pos, t);
+        if (noBounds && t.isParameterized()) {
+            List<Type> args = t.getTypeArguments();
+            while (args.nonEmpty()) {
+                if (args.head.hasTag(WILDCARD))
+                    return typeTagError(pos,
+                                        diags.fragment("type.req.exact"),
+                                        args.head);
+                args = args.tail;
+            }
+        }
+        return t;
+    }
+
+    /** Check that type is a reifiable class, interface or array type.
+     *  @param pos           Position to be used for error reporting.
+     *  @param t             The type to be checked.
+     */
+    Type checkReifiableReferenceType(DiagnosticPosition pos, Type t) {
+        t = checkClassOrArrayType(pos, t);
+        if (!t.isErroneous() && !types.isReifiable(t)) {
+            log.error(pos, "illegal.generic.type.for.instof");
+            return types.createErrorType(t);
+        } else {
+            return t;
+        }
+    }
+
     /** Check that type is a reference type, i.e. a class, interface or array type
      *  or a type variable.
      *  @param pos           Position to be used for error reporting.
@@ -2210,6 +2241,9 @@
             seen = seen.prepend(tv);
             for (Type b : types.getBounds(tv))
                 checkNonCyclic1(pos, b, seen);
+        } else if (t.hasTag(ARRAY)) {
+            final ArrayType at = (ArrayType)t.unannotatedType();
+            checkNonCyclic1(pos, at.elemtype, seen);
         }
     }
 
--- a/langtools/src/share/classes/com/sun/tools/javac/main/JavaCompiler.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/tools/javac/main/JavaCompiler.java	Tue Oct 08 14:59:46 2013 -0700
@@ -1743,13 +1743,4 @@
         shouldStopPolicyIfError = prev.shouldStopPolicyIfError;
         shouldStopPolicyIfNoError = prev.shouldStopPolicyIfNoError;
     }
-
-    public static void enableLogging() {
-        Logger logger = Logger.getLogger(com.sun.tools.javac.Main.class.getPackage().getName());
-        logger.setLevel(Level.ALL);
-        for (Handler h : logger.getParent().getHandlers()) {
-            h.setLevel(Level.ALL);
-       }
-
-    }
 }
--- a/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java	Tue Oct 08 14:59:46 2013 -0700
@@ -3002,8 +3002,9 @@
         int pos = token.pos;
         Name name;
         if (lambdaParameter && token.kind == UNDERSCORE) {
-            syntaxError(pos, "expected", IDENTIFIER);
+            log.error(pos, "underscore.as.identifier.in.lambda");
             name = token.name();
+            nextToken();
         } else {
             if (allowThisIdent) {
                 JCExpression pn = qualident(false);
--- a/langtools/src/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java	Tue Oct 08 14:59:46 2013 -0700
@@ -1034,6 +1034,13 @@
                 } else {
                     discoverAndRunProcs(context, annotationsPresent, topLevelClasses, packageInfoFiles);
                 }
+            } catch (Throwable t) {
+                // we're specifically expecting Abort here, but if any Throwable
+                // comes by, we should flush all deferred diagnostics, rather than
+                // drop them on the ground.
+                deferredDiagnosticHandler.reportDeferredDiagnostics();
+                log.popDiagnosticHandler(deferredDiagnosticHandler);
+                throw t;
             } finally {
                 if (!taskListener.isEmpty())
                     taskListener.finished(new TaskEvent(TaskEvent.Kind.ANNOTATION_PROCESSING_ROUND));
--- a/langtools/src/share/classes/com/sun/tools/javac/resources/compiler.properties	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/tools/javac/resources/compiler.properties	Tue Oct 08 14:59:46 2013 -0700
@@ -2224,6 +2224,10 @@
     ''_'' used as an identifier\n\
     (use of ''_'' as an identifier might not be supported in releases after Java SE 8)
 
+compiler.err.underscore.as.identifier.in.lambda=\
+    ''_'' used as an identifier\n\
+    (use of ''_'' as an identifier is forbidden for lambda parameters)
+
 compiler.err.enum.as.identifier=\
     as of release 5, ''enum'' is a keyword, and may not be used as an identifier\n\
     (use -source 1.4 or lower to use ''enum'' as an identifier)
--- a/langtools/src/share/classes/com/sun/tools/javac/sym/CreateSymbols.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/tools/javac/sym/CreateSymbols.java	Tue Oct 08 14:59:46 2013 -0700
@@ -107,15 +107,21 @@
             if (renv.processingOver())
                 createSymbols();
         } catch (IOException e) {
+            CharSequence msg = e.getLocalizedMessage();
+            if (msg == null)
+                msg = e.toString();
             processingEnv.getMessager()
-                .printMessage(Diagnostic.Kind.ERROR, e.getLocalizedMessage());
+                .printMessage(Diagnostic.Kind.ERROR, msg);
         } catch (Throwable t) {
             t.printStackTrace();
             Throwable cause = t.getCause();
             if (cause == null)
                 cause = t;
+            CharSequence msg = cause.getLocalizedMessage();
+            if (msg == null)
+                msg = cause.toString();
             processingEnv.getMessager()
-                .printMessage(Diagnostic.Kind.ERROR, cause.getLocalizedMessage());
+                .printMessage(Diagnostic.Kind.ERROR, msg);
         }
         return true;
     }
--- a/langtools/src/share/classes/com/sun/tools/javap/ClassWriter.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/com/sun/tools/javap/ClassWriter.java	Tue Oct 08 14:59:46 2013 -0700
@@ -232,6 +232,12 @@
                 return t.accept(this, new StringBuilder()).toString();
             }
 
+            String printTypeArgs(List<? extends TypeParamType> typeParamTypes) {
+                StringBuilder builder = new StringBuilder();
+                appendIfNotEmpty(builder, "<", typeParamTypes, "> ");
+                return builder.toString();
+            }
+
             public StringBuilder visitSimpleType(SimpleType type, StringBuilder sb) {
                 sb.append(getJavaName(type.name));
                 return sb;
@@ -438,7 +444,7 @@
 
         writeModifiers(flags.getMethodModifiers());
         if (methodType != null) {
-            writeListIfNotEmpty("<", methodType.typeParamTypes, "> ");
+            print(new JavaTypePrinter(false).printTypeArgs(methodType.typeParamTypes));
         }
         if (getName(m).equals("<init>")) {
             print(getJavaName(classFile));
--- a/langtools/src/share/classes/javax/lang/model/element/Element.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/javax/lang/model/element/Element.java	Tue Oct 08 14:59:46 2013 -0700
@@ -202,6 +202,7 @@
      * @return {@code true} if the specified object represents the same
      *          element as this
      */
+    @Override
     boolean equals(Object obj);
 
     /**
@@ -209,6 +210,7 @@
      *
      * @see #equals
      */
+    @Override
     int hashCode();
 
 
@@ -219,11 +221,18 @@
      * Elements#getAllAnnotationMirrors(Element)
      * getAllAnnotationMirrors}.
      *
-     * @see ElementFilter
      * @since 1.6
      */
     @Override
     List<? extends AnnotationMirror> getAnnotationMirrors();
+
+    /**
+     * {@inheritDoc}
+     * @since 1.6
+     */
+    @Override
+    <A extends Annotation> A getAnnotation(Class<A> annotationType);
+
     /**
      * Applies a visitor to this element.
      *
--- a/langtools/src/share/classes/javax/tools/Diagnostic.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/src/share/classes/javax/tools/Diagnostic.java	Tue Oct 08 14:59:46 2013 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -49,6 +49,15 @@
 
     /**
      * Kinds of diagnostics, for example, error or warning.
+     *
+     * The kind of a diagnostic can be used to determine how the
+     * diagnostic should be presented to the user. For example,
+     * errors might be colored red or prefixed with the word "Error",
+     * while warnings might be colored yellow or prefixed with the
+     * word "Warning". There is no requirement that the Kind
+     * should imply any inherent semantic meaning to the message
+     * of the diagnostic: for example, a tool might provide an
+     * option to report all warnings as errors.
      */
     enum Kind {
         /**
@@ -63,7 +72,7 @@
         /**
          * Problem similar to a warning, but is mandated by the tool's
          * specification.  For example, the Java&trade; Language
-         * Specification, 3rd Ed. mandates warnings on certain
+         * Specification mandates warnings on certain
          * unchecked operations and the use of deprecated methods.
          */
         MANDATORY_WARNING,
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/src/share/classes/jdk/Exported.java	Tue Oct 08 14:59:46 2013 -0700
@@ -0,0 +1,54 @@
+/*
+ * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package jdk;
+
+import java.lang.annotation.*;
+
+/**
+  * Indicates whether or not a JDK specific type or package is an
+  * exported part of the JDK suitable for use outside of the JDK
+  * implementation itself.
+  *
+  * This annotation should only be applied to types and packages
+  * <em>outside</em> of the Java SE namespaces of {@code java.*} and
+  * {@code javax.*} packages.  For example, certain portions of {@code
+  * com.sun.*} are official parts of the JDK meant to be generally
+  * usable while other portions of {@code com.sun.*} are not.  This
+  * annotation type allows those portions to be easily and
+  * programmaticly distinguished.
+  *
+  * @since 1.8
+  */
+@Documented
+@Retention(RetentionPolicy.RUNTIME)
+@Target({ElementType.TYPE, ElementType.PACKAGE})
+@Exported
+public @interface Exported {
+    /**
+     * Whether or not the annotated type or package is an exported part of the JDK.
+     */
+    boolean value() default true;
+}
--- a/langtools/src/share/classes/jdk/Supported.java	Wed Jul 05 19:15:04 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-/*
- * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.  Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package jdk;
-
-import java.lang.annotation.*;
-
-/**
-  * Indicates whether or not a JDK specific type or package is a
-  * supported part of the JDK.
-  *
-  * This annotation should only be applied to types and packages
-  * <em>outside</em> of the Java SE namespaces of {@code java.*} and
-  * {@code javax.*} packages.  For example, certain portions of {@code
-  * com.sun.*} are official parts of the JDK meant to be generally
-  * usable while other portions of {@code com.sun.*} are not.  This
-  * annotation type allows those portions to be easily and
-  * programmaticly distinguished.
-  *
-  * @since 1.8
-  */
-@Documented
-@Retention(RetentionPolicy.RUNTIME)
-@Target({ElementType.TYPE, ElementType.PACKAGE})
-@Supported
-public @interface Supported {
-    /**
-     * Whether or not this package or type is a supported part of the JDK.
-     */
-    boolean value() default true;
-}
--- a/langtools/test/Makefile	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/test/Makefile	Tue Oct 08 14:59:46 2013 -0700
@@ -7,7 +7,7 @@
 # A full product build (or "control" build) creates a complete JDK image.
 # To test a product build, set TESTJAVA to the path for the image.
 #
-# A langtools build just builds the langtools components of a JDK. 
+# A langtools build just builds the langtools components of a JDK.
 # To test a langtools build, set TESTJAVA to the path for a recent JDK
 # build, and set TESTBOOTCLASSPATH to the compiled langtools classes --
 # for example build/classes or dist/lib/classes.jar.
@@ -122,10 +122,10 @@
   TESTJAVA = $(SLASH_JAVA)/re/jdk/1.7.0/promoted/latest/binaries/$(PLATFORM)-$(ARCH)
 endif
 
-# PRODUCT_HOME is a JPRT variable pointing to a directory containing the output from 
+# PRODUCT_HOME is a JPRT variable pointing to a directory containing the output from
 # make/Makefile
 # For langtools, this is a directory containing build and dist
-# For a control build, this is build/$(PRODUCT)-$(ARCH)/XYZ-image 
+# For a control build, this is build/$(PRODUCT)-$(ARCH)/XYZ-image
 #	(i.e, j2sdk-image or jdk-module-image)
 ifdef PRODUCT_HOME
   ifeq ($(shell [ -r $(PRODUCT_HOME)/dist/lib/classes.jar ]; echo $$?),0)
@@ -139,13 +139,13 @@
 ifdef TESTBOOTCLASSPATH
   JTREG_OPTIONS += -Xbootclasspath/p:$(TESTBOOTCLASSPATH)
 ### In the following, -refvmoptions is an undocumented option
-### The following does not work JCK 7 b30 2/6/2010. Awaiting b31. 
+### The following does not work JCK 7 b30 2/6/2010. Awaiting b31.
   JCK_OPTIONS += \
 	-vmoptions:-Xbootclasspath/p:$(TESTBOOTCLASSPATH) \
 	-refvmoptions:-Xbootclasspath/p:$(TESTBOOTCLASSPATH)
 endif
 
-# Concurrency is the number of tests that can execute at once. 
+# Concurrency is the number of tests that can execute at once.
 # On an otherwise empty machine, suggest setting to (#cpus + 2)
 # If unset, the default is (#cpus)
 ### RFE: determine and use #cpus
@@ -206,7 +206,7 @@
 # Exit -- used for final "normal" exit from "make". Redefine to "true" to avoid
 # having make exit with non-zero return code.
 EXIT = exit
-# Function to exit shell if exit code of preceding command is greater than or equal 
+# Function to exit shell if exit code of preceding command is greater than or equal
 # to a given level. Redefine function or preceding FATAL_*_EXIT codes as needed.
 EXIT_IF_FATAL = status=$$?; if [ $$status -ge $(1) ]; then exit $$status ; fi
 
@@ -217,8 +217,8 @@
 # Root of all test results
 TEST_OUTPUT_DIR = $(TEST_ROOT)/../build/$(PLATFORM)-$(ARCH)/test/langtools
 ABS_TEST_OUTPUT_DIR := \
-	$(shell mkdir -p $(TEST_ROOT)/../build/$(PLATFORM)-$(ARCH)/test/langtools; \
-		cd  $(TEST_ROOT)/../build/$(PLATFORM)-$(ARCH)/test/langtools; \
+	$(shell mkdir -p $(TEST_OUTPUT_DIR); \
+		cd  $(TEST_OUTPUT_DIR); \
 		pwd $(CYGPATH))
 # Subdirectories for different test runs
 JTREG_OUTPUT_DIR = $(ABS_TEST_OUTPUT_DIR)/jtreg
@@ -255,7 +255,7 @@
 # JT_JAVA
 #	Version of java used to run jtreg.  Should normally be the same as TESTJAVA
 # TESTJAVA
-# 	Version of java to be tested.  
+# 	Version of java to be tested.
 # JTREG_OPTIONS
 #	Additional options for jtreg
 # JTREG_TESTDIRS
@@ -311,7 +311,7 @@
 #	Version of java used to run JCK.  Should normally be the same as TESTJAVA
 #       Default is JDK 7
 # TESTJAVA
-# 	Version of java to be tested.  
+# 	Version of java to be tested.
 # JCK_COMPILER_OPTIONS
 #	Additional options for JCK-compiler
 # JCK_COMPILER_TESTDIRS
@@ -360,7 +360,7 @@
 # JT_JAVA
 #	Version of java used to run JCK.  Should normally be the same as TESTJAVA
 # TESTJAVA
-# 	Version of java to be tested.  
+# 	Version of java to be tested.
 # JCK_RUNTIME_OPTIONS
 #	Additional options for JCK-runtime
 # JCK_RUNTIME_TESTDIRS
--- a/langtools/test/com/sun/javadoc/JavascriptWinTitle/JavascriptWinTitle.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/test/com/sun/javadoc/JavascriptWinTitle/JavascriptWinTitle.java	Tue Oct 08 14:59:46 2013 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 4645058 4747738 4855054
+ * @bug 4645058 4747738 4855054 8024756
  * @summary  Javascript IE load error when linked by -linkoffline
  *           Window title shouldn't change when loading left frames (javascript)
  * @author dkramer
@@ -115,9 +115,13 @@
 
             // Test that win title javascript is followed by NOSCRIPT code.
             {"<script type=\"text/javascript\"><!--" + LS +
-                     "    if (location.href.indexOf('is-external=true') == -1) {" + LS +
-                     "        parent.document.title=\"C (Window Title)\";" + LS +
-                     "    }" + LS + "//-->" + LS + "</script>",
+            "    try {" + LS +
+            "        if (location.href.indexOf('is-external=true') == -1) {" + LS +
+            "            parent.document.title=\"C (Window Title)\";" + LS +
+            "        }" + LS +
+            "    }" + LS +
+            "    catch(err) {" + LS +
+            "    }" + LS + "//-->" + LS + "</script>",
              TMPDEST_DIR1 + FS + "p1" + FS + "C.html"
             }
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/com/sun/javadoc/testHtmlTableStyles/TestHtmlTableStyles.java	Tue Oct 08 14:59:46 2013 -0700
@@ -0,0 +1,110 @@
+/*
+ * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 8008164
+ * @summary Test styles on HTML tables generated by javadoc.
+ * @author Bhavesh Patel
+ * @library ../lib/
+ * @build JavadocTester TestHtmlTableStyles
+ * @run main TestHtmlTableStyles
+ */
+
+public class TestHtmlTableStyles extends JavadocTester {
+
+    private static final String BUG_ID = "8008164";
+
+    //Input for string search tests.
+    private static final String[][] TEST = {
+        {BUG_ID + FS + "pkg1" + FS + "TestTable.html",
+            "<table border cellpadding=3 cellspacing=1>"
+        },
+        {BUG_ID + FS + "pkg1" + FS + "TestTable.html",
+            "<table class=\"memberSummary\" border=\"0\" cellpadding=\"3\" " +
+            "cellspacing=\"0\" summary=\"Field Summary table, listing fields, " +
+            "and an explanation\">"
+        },
+        {BUG_ID + FS + "pkg1" + FS + "TestTable.html",
+            "<table class=\"memberSummary\" border=\"0\" cellpadding=\"3\" " +
+            "cellspacing=\"0\" summary=\"Constructor Summary table, listing " +
+            "constructors, and an explanation\">"
+        },
+        {BUG_ID + FS + "pkg1" + FS + "TestTable.html",
+            "<table class=\"memberSummary\" border=\"0\" cellpadding=\"3\" " +
+            "cellspacing=\"0\" summary=\"Method Summary table, listing methods, " +
+            "and an explanation\">"
+        },
+        {BUG_ID + FS + "pkg1" + FS + "package-summary.html",
+            "<table class=\"typeSummary\" border=\"0\" cellpadding=\"3\" " +
+            "cellspacing=\"0\" summary=\"Class Summary table, listing classes, " +
+            "and an explanation\">"
+        },
+        {BUG_ID + FS + "pkg1" + FS + "class-use" + FS + "TestTable.html",
+            "<table class=\"useSummary\" border=\"0\" cellpadding=\"3\" " +
+            "cellspacing=\"0\" summary=\"Use table, listing fields, and an explanation\">"
+        },
+        {BUG_ID + FS + "overview-summary.html",
+            "<table class=\"overviewSummary\" border=\"0\" cellpadding=\"3\" " +
+            "cellspacing=\"0\" summary=\"Packages table, listing packages, and an explanation\">"
+        },
+        {BUG_ID + FS + "deprecated-list.html",
+            "<table class=\"deprecatedSummary\" border=\"0\" cellpadding=\"3\" " +
+            "cellspacing=\"0\" summary=\"Deprecated Methods table, listing " +
+            "deprecated methods, and an explanation\">"
+        },
+        {BUG_ID + FS + "constant-values.html",
+            "<table class=\"constantsSummary\" border=\"0\" cellpadding=\"3\" " +
+            "cellspacing=\"0\" summary=\"Constant Field Values table, listing " +
+            "constant fields, and values\">"
+        },
+    };
+
+    private static final String[] ARGS = new String[] {
+        "-d", BUG_ID, "-sourcepath", SRC_DIR, "-use", "pkg1", "pkg2"
+    };
+
+    /**
+     * The entry point of the test.
+     * @param args the array of command line arguments.
+     */
+    public static void main(String[] args) throws Exception {
+        TestHtmlTableStyles tester = new TestHtmlTableStyles();
+        run(tester, ARGS, TEST, NO_TEST);
+        tester.printSummary();
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public String getBugId() {
+        return BUG_ID;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public String getBugName() {
+        return getClass().getName();
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/com/sun/javadoc/testHtmlTableStyles/pkg1/TestTable.java	Tue Oct 08 14:59:46 2013 -0700
@@ -0,0 +1,84 @@
+/*
+ * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package pkg1;
+
+/**
+ * Testing table in documentation comment. In the generated documentation, it
+ * should be displayed as a regular table and not have any styles that the javadoc
+ * generated tables have.
+ *
+ * <table border cellpadding=3 cellspacing=1>
+ * <caption>Summary of test table</caption>
+ *  <tr>
+ *    <td></td>
+ *    <td align=center colspan = 2> First Element (Head)</td>
+ *    <td align=center colspan = 2> Last Element (Tail)</td>
+ *  </tr>
+ *  <tr>
+ *    <td></td>
+ *    <td align=center><em>Throws exception</em></td>
+ *    <td align=center><em>Special value</em></td>
+ *    <td align=center><em>Throws exception</em></td>
+ *    <td align=center><em>Special value</em></td>
+ *  </tr>
+ *  <tr>
+ *    <td>Insert</td>
+ *    <td>addFirst(e)</td>
+ *    <td>offerFirst(e)</td>
+ *    <td>addLast(e)</td>
+ *    <td>offerLast(e)</td>
+ *  </tr>
+ *  <tr>
+ *    <td>Remove</td>
+ *    <td>removeFirst()</td>
+ *    <td>pollFirst()</td>
+ *    <td>removeLast()</td>
+ *    <td>pollLast()</td>
+ *  </tr>
+ * </table>
+ */
+public class TestTable
+{
+    /**
+     * Field in Class.
+     */
+    public String field;
+
+    /**
+     * Field constant in Class.
+     */
+    public static final int fieldCnst = 0;
+
+    /**
+     * Method in Class.
+     */
+    public void methodInClass(int i) {}
+
+    /**
+     * Deprecated method in Class.
+     * @deprecated Do not use it.
+     */
+    public void deprMethod() {}
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/com/sun/javadoc/testHtmlTableStyles/pkg2/TestUse.java	Tue Oct 08 14:59:46 2013 -0700
@@ -0,0 +1,34 @@
+/*
+ * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package pkg2;
+
+import pkg1.*;
+
+/**
+ * Testing use of TestTable.
+ */
+public class TestUse
+{
+    public TestTable tTable;
+}
--- a/langtools/test/com/sun/javadoc/testHtmlTableTags/TestHtmlTableTags.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/test/com/sun/javadoc/testHtmlTableTags/TestHtmlTableTags.java	Tue Oct 08 14:59:46 2013 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug      6786688
+ * @bug      6786688 8008164
  * @summary  HTML tables should have table summary, caption and table headers.
  * @author   Bhavesh Patel
  * @library  ../lib/
@@ -50,121 +50,121 @@
 
         //Package summary
         {BUG_ID + FS + "pkg1" + FS + "package-summary.html",
-            "<table class=\"packageSummary\" border=\"0\" cellpadding=\"3\"" +
+            "<table class=\"typeSummary\" border=\"0\" cellpadding=\"3\"" +
             " cellspacing=\"0\" summary=\"Class Summary table, " +
             "listing classes, and an explanation\">"
         },
         {BUG_ID + FS + "pkg1" + FS + "package-summary.html",
-            "<table class=\"packageSummary\" border=\"0\" cellpadding=\"3\"" +
+            "<table class=\"typeSummary\" border=\"0\" cellpadding=\"3\"" +
             " cellspacing=\"0\" summary=\"Interface Summary table, " +
             "listing interfaces, and an explanation\">"
         },
         {BUG_ID + FS + "pkg2" + FS + "package-summary.html",
-            "<table class=\"packageSummary\" border=\"0\" cellpadding=\"3\"" +
+            "<table class=\"typeSummary\" border=\"0\" cellpadding=\"3\"" +
             " cellspacing=\"0\" summary=\"Enum Summary table, " +
             "listing enums, and an explanation\">"
         },
         {BUG_ID + FS + "pkg2" + FS + "package-summary.html",
-            "<table class=\"packageSummary\" border=\"0\" cellpadding=\"3\"" +
+            "<table class=\"typeSummary\" border=\"0\" cellpadding=\"3\"" +
             " cellspacing=\"0\" summary=\"Annotation Types Summary table, " +
             "listing annotation types, and an explanation\">"
         },
         // Class documentation
         {BUG_ID + FS + "pkg1" + FS + "C1.html",
-            "<table class=\"overviewSummary\" border=\"0\" cellpadding=\"3\" " +
+            "<table class=\"memberSummary\" border=\"0\" cellpadding=\"3\" " +
             "cellspacing=\"0\" summary=\"Field Summary table, listing fields, " +
             "and an explanation\">"
         },
         {BUG_ID + FS + "pkg1" + FS + "C1.html",
-            "<table class=\"overviewSummary\" border=\"0\" cellpadding=\"3\" " +
+            "<table class=\"memberSummary\" border=\"0\" cellpadding=\"3\" " +
             "cellspacing=\"0\" summary=\"Method Summary table, listing methods, " +
             "and an explanation\">"
         },
         {BUG_ID + FS + "pkg2" + FS + "C2.html",
-            "<table class=\"overviewSummary\" border=\"0\" cellpadding=\"3\" " +
+            "<table class=\"memberSummary\" border=\"0\" cellpadding=\"3\" " +
             "cellspacing=\"0\" summary=\"Nested Class Summary table, listing " +
             "nested classes, and an explanation\">"
         },
         {BUG_ID + FS + "pkg2" + FS + "C2.html",
-            "<table class=\"overviewSummary\" border=\"0\" cellpadding=\"3\" " +
+            "<table class=\"memberSummary\" border=\"0\" cellpadding=\"3\" " +
             "cellspacing=\"0\" summary=\"Constructor Summary table, listing " +
             "constructors, and an explanation\">"
         },
         {BUG_ID + FS + "pkg2" + FS + "C2.ModalExclusionType.html",
-            "<table class=\"overviewSummary\" border=\"0\" cellpadding=\"3\" " +
+            "<table class=\"memberSummary\" border=\"0\" cellpadding=\"3\" " +
             "cellspacing=\"0\" summary=\"Enum Constant Summary table, listing " +
             "enum constants, and an explanation\">"
         },
         {BUG_ID + FS + "pkg2" + FS + "C3.html",
-            "<table class=\"overviewSummary\" border=\"0\" cellpadding=\"3\" " +
+            "<table class=\"memberSummary\" border=\"0\" cellpadding=\"3\" " +
             "cellspacing=\"0\" summary=\"Required Element Summary table, " +
             "listing required elements, and an explanation\">"
         },
         {BUG_ID + FS + "pkg2" + FS + "C4.html",
-            "<table class=\"overviewSummary\" border=\"0\" cellpadding=\"3\" " +
+            "<table class=\"memberSummary\" border=\"0\" cellpadding=\"3\" " +
             "cellspacing=\"0\" summary=\"Optional Element Summary table, " +
             "listing optional elements, and an explanation\">"
         },
         // Class use documentation
         {BUG_ID + FS + "pkg1" + FS + "class-use" + FS + "I1.html",
-            "<table border=\"0\" cellpadding=\"3\" cellspacing=\"0\" summary=\"Use " +
+            "<table class=\"useSummary\" border=\"0\" cellpadding=\"3\" cellspacing=\"0\" summary=\"Use " +
             "table, listing packages, and an explanation\">"
         },
         {BUG_ID + FS + "pkg1" + FS + "class-use" + FS + "C1.html",
-            "<table border=\"0\" cellpadding=\"3\" cellspacing=\"0\" summary=\"Use " +
+            "<table class=\"useSummary\" border=\"0\" cellpadding=\"3\" cellspacing=\"0\" summary=\"Use " +
             "table, listing fields, and an explanation\">"
         },
         {BUG_ID + FS + "pkg1" + FS + "class-use" + FS + "C1.html",
-            "<table border=\"0\" cellpadding=\"3\" cellspacing=\"0\" summary=\"Use " +
+            "<table class=\"useSummary\" border=\"0\" cellpadding=\"3\" cellspacing=\"0\" summary=\"Use " +
             "table, listing methods, and an explanation\">"
         },
         {BUG_ID + FS + "pkg2" + FS + "class-use" + FS + "C2.html",
-            "<table border=\"0\" cellpadding=\"3\" cellspacing=\"0\" summary=\"Use " +
+            "<table class=\"useSummary\" border=\"0\" cellpadding=\"3\" cellspacing=\"0\" summary=\"Use " +
             "table, listing fields, and an explanation\">"
         },
         {BUG_ID + FS + "pkg2" + FS + "class-use" + FS + "C2.html",
-            "<table border=\"0\" cellpadding=\"3\" cellspacing=\"0\" summary=\"Use " +
+            "<table class=\"useSummary\" border=\"0\" cellpadding=\"3\" cellspacing=\"0\" summary=\"Use " +
             "table, listing methods, and an explanation\">"
         },
         {BUG_ID + FS + "pkg2" + FS + "class-use" + FS + "C2.ModalExclusionType.html",
-            "<table border=\"0\" cellpadding=\"3\" cellspacing=\"0\" summary=\"Use " +
+            "<table class=\"useSummary\" border=\"0\" cellpadding=\"3\" cellspacing=\"0\" summary=\"Use " +
             "table, listing packages, and an explanation\">"
         },
         {BUG_ID + FS + "pkg2" + FS + "class-use" + FS + "C2.ModalExclusionType.html",
-            "<table border=\"0\" cellpadding=\"3\" cellspacing=\"0\" summary=\"Use " +
+            "<table class=\"useSummary\" border=\"0\" cellpadding=\"3\" cellspacing=\"0\" summary=\"Use " +
             "table, listing methods, and an explanation\">"
         },
         // Package use documentation
         {BUG_ID + FS + "pkg1" + FS + "package-use.html",
-            "<table border=\"0\" cellpadding=\"3\" cellspacing=\"0\" summary=\"Use " +
+            "<table class=\"useSummary\" border=\"0\" cellpadding=\"3\" cellspacing=\"0\" summary=\"Use " +
             "table, listing packages, and an explanation\">"
         },
         {BUG_ID + FS + "pkg1" + FS + "package-use.html",
-            "<table border=\"0\" cellpadding=\"3\" cellspacing=\"0\" summary=\"Use " +
+            "<table class=\"useSummary\" border=\"0\" cellpadding=\"3\" cellspacing=\"0\" summary=\"Use " +
             "table, listing classes, and an explanation\">"
         },
         {BUG_ID + FS + "pkg2" + FS + "package-use.html",
-            "<table border=\"0\" cellpadding=\"3\" cellspacing=\"0\" summary=\"Use " +
+            "<table class=\"useSummary\" border=\"0\" cellpadding=\"3\" cellspacing=\"0\" summary=\"Use " +
             "table, listing packages, and an explanation\">"
         },
         {BUG_ID + FS + "pkg2" + FS + "package-use.html",
-            "<table border=\"0\" cellpadding=\"3\" cellspacing=\"0\" summary=\"Use " +
+            "<table class=\"useSummary\" border=\"0\" cellpadding=\"3\" cellspacing=\"0\" summary=\"Use " +
             "table, listing classes, and an explanation\">"
         },
         // Deprecated
         {BUG_ID + FS + "deprecated-list.html",
-            "<table border=\"0\" cellpadding=\"3\" cellspacing=\"0\" " +
+            "<table class=\"deprecatedSummary\" border=\"0\" cellpadding=\"3\" cellspacing=\"0\" " +
             "summary=\"Deprecated Fields table, listing deprecated fields, " +
             "and an explanation\">"
         },
         {BUG_ID + FS + "deprecated-list.html",
-            "<table border=\"0\" cellpadding=\"3\" cellspacing=\"0\" " +
+            "<table class=\"deprecatedSummary\" border=\"0\" cellpadding=\"3\" cellspacing=\"0\" " +
             "summary=\"Deprecated Methods table, listing deprecated methods, " +
             "and an explanation\">"
         },
         // Constant values
         {BUG_ID + FS + "constant-values.html",
-            "<table border=\"0\" cellpadding=\"3\" cellspacing=\"0\" " +
+            "<table class=\"constantsSummary\" border=\"0\" cellpadding=\"3\" cellspacing=\"0\" " +
             "summary=\"Constant Field Values table, listing " +
             "constant fields, and values\">"
         },
--- a/langtools/test/com/sun/javadoc/testJavascript/TestJavascript.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/test/com/sun/javadoc/testJavascript/TestJavascript.java	Tue Oct 08 14:59:46 2013 -0700
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug      4665566 4855876 7025314 8012375 8015997 8016328
+ * @bug      4665566 4855876 7025314 8012375 8015997 8016328 8024756
  * @summary  Verify that the output has the right javascript.
  * @author   jamieh
  * @library  ../lib/
@@ -104,9 +104,13 @@
 
         //Make sure title javascript only runs if is-external is not true
         {BUG_ID + FS + "pkg" + FS + "C.html",
-                "    if (location.href.indexOf('is-external=true') == -1) {" + NL +
-                "        parent.document.title=\"C\";" + NL +
-                        "    }"},
+            "    try {" + NL +
+            "        if (location.href.indexOf('is-external=true') == -1) {" + NL +
+            "            parent.document.title=\"C\";" + NL +
+            "        }" + NL +
+            "    }" + NL +
+            "    catch(err) {" + NL +
+            "    }"},
     };
 
     private static final String[][] NEGATED_TEST = NO_TEST;
--- a/langtools/test/com/sun/javadoc/testProfiles/TestProfiles.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/test/com/sun/javadoc/testProfiles/TestProfiles.java	Tue Oct 08 14:59:46 2013 -0700
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug      8006124 8009684 8016921 8023700 8024096
+ * @bug      8006124 8009684 8016921 8023700 8024096 8008164
  * @summary  Test javadoc support for profiles.
  * @author   Bhavesh Patel, Evgeniya Stepanova
  * @library  ../lib/
@@ -137,7 +137,7 @@
         },
         // need to add teststring when JDK-8015496 will be fixed
         //Test exception in profiles
-        {PROFILE_BUG_ID + FS + "compact1-summary.html","<table class=\"packageSummary\" "
+        {PROFILE_BUG_ID + FS + "compact1-summary.html","<table class=\"typeSummary\" "
             + "border=\"0\" cellpadding=\"3\" cellspacing=\"0\" "
             + "summary=\"Exception Summary table, listing exceptions, and an explanation\">"
             + NL + "<caption><span>Exception Summary</span><span class=\"tabEnd\">"
@@ -149,7 +149,7 @@
         },
         //Test errors in profiles
         {PROFILE_BUG_ID + FS + "compact1-summary.html",
-            "<table class=\"packageSummary\" border=\"0\" cellpadding=\"3\" cellspacing=\"0\" "
+            "<table class=\"typeSummary\" border=\"0\" cellpadding=\"3\" cellspacing=\"0\" "
             + "summary=\"Error Summary table, listing errors, and an explanation\">"
             + NL + "<caption><span>Error Summary</span><span class=\"tabEnd\">&nbsp;"
             + "</span></caption>" + NL + "<tr>" + NL + "<th class=\"colFirst\""
--- a/langtools/test/com/sun/javadoc/testStylesheet/TestStylesheet.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/test/com/sun/javadoc/testStylesheet/TestStylesheet.java	Tue Oct 08 14:59:46 2013 -0700
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug      4494033 7028815 7052425 8007338 8023608
+ * @bug      4494033 7028815 7052425 8007338 8023608 8008164
  * @summary  Run tests on doclet stylesheet.
  * @author   jamieh
  * @library  ../lib/
@@ -59,10 +59,8 @@
         {BUG_ID + FS + "stylesheet.css",
             "ul {" + NL + "    list-style-type:disc;" + NL + "}"},
         {BUG_ID + FS + "stylesheet.css",
-            ".overviewSummary caption, .packageSummary caption, " +
-            ".contentContainer ul.blockList li.blockList caption, " +
-            ".summary caption, .classUseContainer caption, " +
-            ".constantValuesContainer caption {" + NL +
+            ".overviewSummary caption, .memberSummary caption, .typeSummary caption," + NL +
+            ".useSummary caption, .constantsSummary caption, .deprecatedSummary caption {" + NL +
             "    position:relative;" + NL +
             "    text-align:left;" + NL +
             "    background-repeat:no-repeat;" + NL +
@@ -74,10 +72,8 @@
             "    margin:0px;" + NL +
             "}"},
         {BUG_ID + FS + "stylesheet.css",
-            ".overviewSummary caption span, .packageSummary caption span, " +
-            ".contentContainer ul.blockList li.blockList caption span, " +
-            ".summary caption span, .classUseContainer caption span, " +
-            ".constantValuesContainer caption span {" + NL +
+            ".overviewSummary caption span, .memberSummary caption span, .typeSummary caption span," + NL +
+            ".useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span {" + NL +
             "    white-space:nowrap;" + NL +
             "    padding-top:8px;" + NL +
             "    padding-left:8px;" + NL +
@@ -86,8 +82,7 @@
             "    background-image:url(resources/titlebar.gif);" + NL +
             "}"},
         {BUG_ID + FS + "stylesheet.css",
-            ".contentContainer ul.blockList li.blockList caption " +
-            "span.activeTableTab span {" + NL +
+            ".memberSummary caption span.activeTableTab span {" + NL +
             "    white-space:nowrap;" + NL +
             "    padding-top:8px;" + NL +
             "    padding-left:8px;" + NL +
@@ -96,7 +91,7 @@
             "    background-image:url(resources/activetitlebar.gif);" + NL +
             "}"},
         {BUG_ID + FS + "stylesheet.css",
-            ".contentContainer ul.blockList li.blockList caption span.tableTab span {" + NL +
+            ".memberSummary caption span.tableTab span {" + NL +
             "    white-space:nowrap;" + NL +
             "    padding-top:8px;" + NL +
             "    padding-left:8px;" + NL +
@@ -105,8 +100,7 @@
             "    background-image:url(resources/titlebar.gif);" + NL +
             "}"},
         {BUG_ID + FS + "stylesheet.css",
-            ".contentContainer ul.blockList li.blockList caption span.tableTab, " +
-            ".contentContainer ul.blockList li.blockList caption span.activeTableTab {" + NL +
+            ".memberSummary caption span.tableTab, .memberSummary caption span.activeTableTab {" + NL +
             "    padding-top:0px;" + NL +
             "    padding-left:0px;" + NL +
             "    background-image:none;" + NL +
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/ArraysInIntersections.java	Tue Oct 08 14:59:46 2013 -0700
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 8021339
+ * @summary Allow arrays in intersection types
+ * @compile ArraysInIntersections.java
+ */
+
+import java.io.Serializable;
+
+public class ArraysInIntersections<T extends Serializable & Integer[]> {
+
+    public <S extends Serializable & Integer[]> Object m() {
+        return (Serializable & Integer[]) new Integer[1];
+    }
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/InferArraysInIntersections.java	Tue Oct 08 14:59:46 2013 -0700
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 8021339
+ * @summary Allow arrays in intersection types
+ * @compile -doe -XDrawDiagnostics InferArraysInIntersections.java
+ */
+import java.util.*;
+
+class InferArraysInIntersections {
+   <T> T m(List<? super T> t) { return null; }
+
+   void test(List<char[]> lc) {
+      Runnable r = m(lc); //inference fails here
+   }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/annotations/neg/8022765/T8022765.java	Tue Oct 08 14:59:46 2013 -0700
@@ -0,0 +1,141 @@
+/**
+ * @test /nodynamiccopyright/
+ * @bug 8022765
+ * @summary javac should not crash for incorrect attribute values
+ * @build VerifyAnnotationsAttributed
+ * @run main VerifyAnnotationsAttributed T8022765.java
+ * @compile/fail/ref=T8022765.out -XDrawDiagnostics T8022765.java
+ */
+@Ann(@Override)
+@Primitive(@Override)
+@Str(@Override)
+@En(@Override)
+@ArrAnn(@Override)
+@ArrPrimitive(@Override)
+@ArrStr(@Override)
+@ArrEn(@Override)
+class AnnC { }
+
+class PrimitiveC {
+    private static final int C = 1;
+    @Ann(C)
+    @Primitive(C)
+    @Str(C)
+    @En(C)
+    @ArrAnn(C)
+    @ArrPrimitive(C)
+    @ArrStr(C)
+    @ArrEn(C)
+    class I {
+    }
+}
+
+class StringC {
+
+    private static final String C = "";
+
+    @Ann(C)
+    @Primitive(C)
+    @Str(C)
+    @En(C)
+    @ArrAnn(C)
+    @ArrPrimitive(C)
+    @ArrStr(C)
+    @ArrEn(C)
+    class I {
+    }
+}
+
+@Ann(E.A)
+@Primitive(E.A)
+@Str(E.A)
+@En(E.A)
+@ArrAnn(E.A)
+@ArrPrimitive(E.A)
+@ArrStr(E.A)
+@ArrEn(E.A)
+class EnC { }
+
+@Ann({@Override})
+@Primitive({@Override})
+@Str({@Override})
+@En({@Override})
+@ArrAnn({@Override})
+@ArrPrimitive({@Override})
+@ArrStr({@Override})
+@ArrEn({@Override})
+class ArrAnnC { }
+
+class ArrPrimitiveC {
+    private static final int C = 1;
+    @Ann({C})
+    @Primitive({C})
+    @Str({C})
+    @En({C})
+    @ArrAnn({C})
+    @ArrPrimitive({C})
+    @ArrStr({C})
+    @ArrEn({C})
+    class I {
+    }
+}
+
+class ArrStringC {
+    private static final String C = "";
+    @Ann({C})
+    @Primitive({C})
+    @Str({C})
+    @En({C})
+    @ArrAnn({C})
+    @ArrPrimitive({C})
+    @ArrStr({C})
+    @ArrEn({C})
+    class I {
+    }
+}
+
+@Ann({E.A})
+@Primitive({E.A})
+@Str({E.A})
+@En({E.A})
+@ArrAnn({E.A})
+@ArrPrimitive({E.A})
+@ArrStr({E.A})
+@ArrEn({E.A})
+class ArrEnC { }
+
+@interface Ann {
+    Override value();
+}
+
+@interface Primitive {
+    int value();
+}
+
+@interface Str {
+    String value();
+}
+
+@interface En {
+    E value();
+}
+
+@interface ArrAnn {
+    Override[] value();
+}
+
+@interface ArrPrimitive {
+    int[] value();
+}
+
+@interface ArrStr {
+    String[] value();
+}
+
+@interface ArrEn {
+    E[] value();
+}
+
+enum E {
+    A;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/annotations/neg/8022765/T8022765.out	Tue Oct 08 14:59:46 2013 -0700
@@ -0,0 +1,57 @@
+T8022765.java:10:12: compiler.err.annotation.not.valid.for.type: int
+T8022765.java:11:6: compiler.err.annotation.not.valid.for.type: java.lang.String
+T8022765.java:12:5: compiler.err.annotation.not.valid.for.type: E
+T8022765.java:14:15: compiler.err.annotation.not.valid.for.type: int
+T8022765.java:15:9: compiler.err.annotation.not.valid.for.type: java.lang.String
+T8022765.java:16:8: compiler.err.annotation.not.valid.for.type: E
+T8022765.java:21:10: compiler.err.annotation.value.must.be.annotation
+T8022765.java:23:10: compiler.err.prob.found.req: (compiler.misc.inconvertible.types: int, java.lang.String)
+T8022765.java:24:9: compiler.err.prob.found.req: (compiler.misc.inconvertible.types: int, E)
+T8022765.java:25:13: compiler.err.annotation.value.must.be.annotation
+T8022765.java:27:13: compiler.err.prob.found.req: (compiler.misc.inconvertible.types: int, java.lang.String)
+T8022765.java:28:12: compiler.err.prob.found.req: (compiler.misc.inconvertible.types: int, E)
+T8022765.java:37:10: compiler.err.annotation.value.must.be.annotation
+T8022765.java:38:16: compiler.err.prob.found.req: (compiler.misc.inconvertible.types: java.lang.String, int)
+T8022765.java:40:9: compiler.err.prob.found.req: (compiler.misc.inconvertible.types: java.lang.String, E)
+T8022765.java:41:13: compiler.err.annotation.value.must.be.annotation
+T8022765.java:42:19: compiler.err.prob.found.req: (compiler.misc.inconvertible.types: java.lang.String, int)
+T8022765.java:44:12: compiler.err.prob.found.req: (compiler.misc.inconvertible.types: java.lang.String, E)
+T8022765.java:49:7: compiler.err.annotation.value.must.be.annotation
+T8022765.java:50:13: compiler.err.prob.found.req: (compiler.misc.inconvertible.types: E, int)
+T8022765.java:51:7: compiler.err.prob.found.req: (compiler.misc.inconvertible.types: E, java.lang.String)
+T8022765.java:53:10: compiler.err.annotation.value.must.be.annotation
+T8022765.java:54:16: compiler.err.prob.found.req: (compiler.misc.inconvertible.types: E, int)
+T8022765.java:55:10: compiler.err.prob.found.req: (compiler.misc.inconvertible.types: E, java.lang.String)
+T8022765.java:59:6: compiler.err.annotation.value.not.allowable.type
+T8022765.java:60:12: compiler.err.annotation.value.not.allowable.type
+T8022765.java:61:6: compiler.err.annotation.value.not.allowable.type
+T8022765.java:62:5: compiler.err.annotation.value.not.allowable.type
+T8022765.java:64:16: compiler.err.annotation.not.valid.for.type: int
+T8022765.java:65:10: compiler.err.annotation.not.valid.for.type: java.lang.String
+T8022765.java:66:9: compiler.err.annotation.not.valid.for.type: E
+T8022765.java:71:10: compiler.err.annotation.value.not.allowable.type
+T8022765.java:72:16: compiler.err.annotation.value.not.allowable.type
+T8022765.java:73:10: compiler.err.annotation.value.not.allowable.type
+T8022765.java:74:9: compiler.err.annotation.value.not.allowable.type
+T8022765.java:75:14: compiler.err.annotation.value.must.be.annotation
+T8022765.java:77:14: compiler.err.prob.found.req: (compiler.misc.inconvertible.types: int, java.lang.String)
+T8022765.java:78:13: compiler.err.prob.found.req: (compiler.misc.inconvertible.types: int, E)
+T8022765.java:85:10: compiler.err.annotation.value.not.allowable.type
+T8022765.java:86:16: compiler.err.annotation.value.not.allowable.type
+T8022765.java:87:10: compiler.err.annotation.value.not.allowable.type
+T8022765.java:88:9: compiler.err.annotation.value.not.allowable.type
+T8022765.java:89:14: compiler.err.annotation.value.must.be.annotation
+T8022765.java:90:20: compiler.err.prob.found.req: (compiler.misc.inconvertible.types: java.lang.String, int)
+T8022765.java:92:13: compiler.err.prob.found.req: (compiler.misc.inconvertible.types: java.lang.String, E)
+T8022765.java:97:6: compiler.err.annotation.value.not.allowable.type
+T8022765.java:97:8: compiler.err.attribute.value.must.be.constant
+T8022765.java:98:12: compiler.err.annotation.value.not.allowable.type
+T8022765.java:98:14: compiler.err.attribute.value.must.be.constant
+T8022765.java:99:6: compiler.err.annotation.value.not.allowable.type
+T8022765.java:99:8: compiler.err.attribute.value.must.be.constant
+T8022765.java:100:5: compiler.err.annotation.value.not.allowable.type
+T8022765.java:100:7: compiler.err.attribute.value.must.be.constant
+T8022765.java:101:11: compiler.err.annotation.value.must.be.annotation
+T8022765.java:102:17: compiler.err.prob.found.req: (compiler.misc.inconvertible.types: E, int)
+T8022765.java:103:11: compiler.err.prob.found.req: (compiler.misc.inconvertible.types: E, java.lang.String)
+56 errors
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/annotations/neg/8022765/VerifyAnnotationsAttributed.java	Tue Oct 08 14:59:46 2013 -0700
@@ -0,0 +1,78 @@
+/*
+ * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+import com.sun.source.tree.CompilationUnitTree;
+import com.sun.source.tree.IdentifierTree;
+import com.sun.source.tree.MemberSelectTree;
+import com.sun.source.util.JavacTask;
+import com.sun.source.util.TreePathScanner;
+import com.sun.source.util.Trees;
+import com.sun.tools.javac.api.JavacTool;
+import com.sun.tools.javac.file.JavacFileManager;
+import java.io.File;
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.util.Collections;
+import javax.lang.model.element.Element;
+import javax.lang.model.element.ElementKind;
+
+public class VerifyAnnotationsAttributed {
+    public static void main(String... args) throws IOException, URISyntaxException {
+        if (args.length != 1) throw new IllegalStateException("Must provide class name!");
+        File testSrc = new File(System.getProperty("test.src"));
+        File testFile = new File(testSrc, args[0]);
+        if (!testFile.canRead()) throw new IllegalStateException("Cannot read the test source");
+        JavacFileManager fm = JavacTool.create().getStandardFileManager(null, null, null);
+        JavacTask task = JavacTool.create().getTask(null,
+                                                    fm,
+                                                    null,
+                                                    Collections.<String>emptyList(),
+                                                    null,
+                                                    fm.getJavaFileObjects(testFile));
+        final Trees trees = Trees.instance(task);
+        final CompilationUnitTree cut = task.parse().iterator().next();
+        task.analyze();
+
+        //ensure all the annotation attributes are annotated meaningfully
+        //all the attributes in the test file should contain either an identifier
+        //or a select, so only checking those for a reasonable Element/Symbol.
+        new TreePathScanner<Void, Void>() {
+            @Override
+            public Void visitIdentifier(IdentifierTree node, Void p) {
+                verifyAttributedMeaningfully();
+                return super.visitIdentifier(node, p);
+            }
+            @Override
+            public Void visitMemberSelect(MemberSelectTree node, Void p) {
+                verifyAttributedMeaningfully();
+                return super.visitMemberSelect(node, p);
+            }
+            private void verifyAttributedMeaningfully() {
+                Element el = trees.getElement(getCurrentPath());
+
+                if (el == null || el.getKind() == ElementKind.OTHER) {
+                    throw new IllegalStateException("Not attributed properly: " + getCurrentPath().getParentPath().getLeaf());
+                }
+            }
+        }.scan(cut, null);
+    }
+}
--- a/langtools/test/tools/javac/api/TestJavacTask.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/test/tools/javac/api/TestJavacTask.java	Tue Oct 08 14:59:46 2013 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,8 +23,8 @@
 
 /*
  * @test
- * @bug     4813736
- * @summary Provide a basic test of access to the Java Model from javac
+ * @bug     4813736 8015073
+ * @summary Provide a basic test of access to the Java Model from javac, and error messages
  * @author  Peter von der Ah\u00e9
  * @run main TestJavacTask TestJavacTask.java
  */
@@ -40,21 +40,36 @@
 import javax.tools.ToolProvider;
 
 public class TestJavacTask {
-
-    static JavacTaskImpl getTask(JavaCompiler compiler, File... file) {
+    static final JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
+    static JavacTaskImpl getTask(File... file) {
         StandardJavaFileManager fm = compiler.getStandardFileManager(null, null, null);
         Iterable<? extends JavaFileObject> files =
             fm.getJavaFileObjectsFromFiles(Arrays.asList(file));
         return (JavacTaskImpl)compiler.getTask(null, fm, null, null, null, files);
     }
 
-    public static void main(String... args) throws IOException {
-        JavaCompiler tool = ToolProvider.getSystemJavaCompiler();
+    static void basicTest(String... args) throws IOException {
         String srcdir = System.getProperty("test.src");
         File file = new File(srcdir, args[0]);
-        JavacTaskImpl task = getTask(tool, file);
+        JavacTaskImpl task = getTask(file);
         for (TypeElement clazz : task.enter(task.parse()))
             System.out.println(clazz.getSimpleName());
     }
 
+    static void checkKindError() {
+        final File testFile = new File("Test.java "); // <-note trailing space!
+        try {
+            getTask(testFile);
+        } catch (IllegalArgumentException iae) {
+            if (!iae.getMessage().contains("\"" + testFile.getName() + "\"")) {
+                System.err.println("Got message: " + iae.getMessage());
+                throw new RuntimeException("Error: expected string not found");
+            }
+        }
+    }
+
+    public static void main(String... args) throws IOException {
+        basicTest(args);
+        checkKindError();
+    }
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/diags/examples/UnderscoreInLambdaExpression.java	Tue Oct 08 14:59:46 2013 -0700
@@ -0,0 +1,27 @@
+/*
+ * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+// key: compiler.err.underscore.as.identifier.in.lambda
+public class UnderscoreInLambdaExpression {
+    java.util.function.Function<String,String> f = _ -> "x";
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/enum/EnumAsIdentifier.java	Tue Oct 08 14:59:46 2013 -0700
@@ -0,0 +1,16 @@
+/**
+ * @test    /nodynamiccopyright/
+ * @bug     8025537
+ * @author  sogoel
+ * @summary enum keyword used as an identifier
+ * @compile/ref=EnumAsIdentifier4.out -XDrawDiagnostics -source 1.4 EnumAsIdentifier.java
+ * @compile/fail/ref=EnumAsIdentifier5.out -XDrawDiagnostics -source 1.5 EnumAsIdentifier.java
+ * @compile/fail/ref=EnumAsIdentifier.out -XDrawDiagnostics EnumAsIdentifier.java
+ */
+
+public class EnumAsIdentifier {
+
+    int enum = 0;
+
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/enum/EnumAsIdentifier.out	Tue Oct 08 14:59:46 2013 -0700
@@ -0,0 +1,2 @@
+EnumAsIdentifier.java:13:9: compiler.err.enum.as.identifier
+1 error
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/enum/EnumAsIdentifier4.out	Tue Oct 08 14:59:46 2013 -0700
@@ -0,0 +1,6 @@
+- compiler.warn.source.no.bootclasspath: 1.4
+- compiler.warn.option.obsolete.source: 1.4
+- compiler.warn.option.obsolete.target: 1.4
+- compiler.warn.option.obsolete.suppression
+EnumAsIdentifier.java:13:9: compiler.warn.enum.as.identifier
+5 warnings
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/enum/EnumAsIdentifier5.out	Tue Oct 08 14:59:46 2013 -0700
@@ -0,0 +1,6 @@
+- compiler.warn.source.no.bootclasspath: 1.5
+- compiler.warn.option.obsolete.source: 1.5
+- compiler.warn.option.obsolete.suppression
+EnumAsIdentifier.java:13:9: compiler.err.enum.as.identifier
+1 error
+3 warnings
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/enum/EnumMembersOrder.java	Tue Oct 08 14:59:46 2013 -0700
@@ -0,0 +1,20 @@
+/**
+ * @test    /nodynamiccopyright/
+ * @bug     8025537 5028491
+ * @author  sogoel
+ * @summary enum constants should precede other enum members
+ * @compile/fail/ref=EnumMembersOrder.out -XDrawDiagnostics EnumMembersOrder.java
+ */
+
+enum Days {
+
+    Days(String d) { day = d; } // constructor
+
+    // enum constants
+    WEEKEND("SAT"),
+    WEEKDAY("MON");
+
+    private String day;
+
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/enum/EnumMembersOrder.out	Tue Oct 08 14:59:46 2013 -0700
@@ -0,0 +1,7 @@
+EnumMembersOrder.java:11:16: compiler.err.expected: ')'
+EnumMembersOrder.java:11:17: compiler.err.expected3: ',', '}', ';'
+EnumMembersOrder.java:11:19: compiler.err.expected: '}'
+EnumMembersOrder.java:11:31: compiler.err.expected3: class, interface, enum
+EnumMembersOrder.java:17:13: compiler.err.expected3: class, interface, enum
+EnumMembersOrder.java:19:1: compiler.err.expected3: class, interface, enum
+6 errors
--- a/langtools/test/tools/javac/generics/OverrideBridge.java	Wed Jul 05 19:15:04 2017 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,166 +0,0 @@
-/*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-/*
- * @test
- * @bug 6337171 6996415
- * @ignore 6996758: Investigate better override bridges strategy
- * @summary  javac should create bridge methods when type variable bounds restricted
- * @run main OverrideBridge
- */
-
-// fix, and test, has been disabled as a consequence of 6996415
-
-import java.io.*;
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-import java.util.HashMap;
-import javax.tools.JavaCompiler;
-import javax.tools.JavaFileObject;
-import javax.tools.SimpleJavaFileObject;
-import javax.tools.ToolProvider;
-
-import com.sun.source.util.JavacTask;
-import com.sun.tools.classfile.ClassFile;
-import com.sun.tools.classfile.ConstantPoolException;
-import com.sun.tools.classfile.Descriptor.InvalidDescriptor;
-import com.sun.tools.classfile.Method;
-
-public class OverrideBridge {
-
-    enum Implementation {
-        IMPLICIT(""),
-        EXPLICIT("@Override public abstract X m(X x);");
-
-        String impl;
-
-        Implementation(String impl) {
-            this.impl = impl;
-        }
-    }
-
-    static class JavaSource extends SimpleJavaFileObject {
-
-        final static String sourceStub =
-                        "abstract class A<X> {\n" +
-                        "   public abstract X m(X x);\n" +
-                        "}\n" +
-                        "interface I<X> {\n" +
-                        "X m(X x);\n" +
-                        "}\n" +
-                        "abstract class B<X extends B<X>> extends A<X> implements I<X> { #B }\n" +
-                        "abstract class C<X extends C<X>> extends B<X>  { #C }\n" +
-                        "abstract class D<X extends D<X>> extends C<X>  { #D }\n";
-
-        String source;
-
-        public JavaSource(Implementation implB, Implementation implC, Implementation implD) {
-            super(URI.create("myfo:/Test.java"), JavaFileObject.Kind.SOURCE);
-            source = sourceStub.replace("#B", implB.impl).replace("#C", implC.impl).replace("#D", implD.impl);
-        }
-
-        @Override
-        public CharSequence getCharContent(boolean ignoreEncodingErrors) {
-            return source;
-        }
-    }
-
-    public static void main(String... args) throws Exception {
-        Map<ClassFile, List<Method>> refMembers =
-                compile(Implementation.EXPLICIT, Implementation.EXPLICIT, Implementation.EXPLICIT, "ref");
-        int i = 0;
-        for (Implementation implB : Implementation.values()) {
-            for (Implementation implC : Implementation.values()) {
-                for (Implementation implD : Implementation.values()) {
-                    Map<ClassFile, List<Method>> membersToCheck = compile(implB, implC, implD, "out_" + i++);
-                    check(refMembers, membersToCheck);
-                }
-            }
-        }
-    }
-
-    static String workDir = System.getProperty("user.dir");
-
-    static Map<ClassFile, List<Method>> compile(Implementation implB, Implementation implC, Implementation implD, String destPath) throws Exception {
-        File destDir = new File(workDir, destPath); destDir.mkdir();
-        final JavaCompiler tool = ToolProvider.getSystemJavaCompiler();
-        JavaSource source = new JavaSource(implB, implC, implD);
-        JavacTask ct = (JavacTask)tool.getTask(null, null, null,
-                Arrays.asList("-d", destPath), null, Arrays.asList(source));
-        ct.generate();
-        Map<ClassFile, List<Method>> members = new HashMap<>();
-        addMembers(destDir, members);
-        return members;
-    }
-
-    static void addMembers(File destDir, Map<ClassFile, List<Method>> members) {
-        String[] names = { "B.class", "C.class", "D.class" };
-        try {
-            for (String name : names) {
-                File f = new File(destDir, name);
-                ClassFile cf = ClassFile.read(f);
-                members.put(cf, readMethod(cf, "m"));
-            }
-        } catch (Exception e) {
-            e.printStackTrace();
-            throw new Error("error reading classes");
-        }
-    }
-
-    static List<Method> readMethod(ClassFile cf, String name) throws ConstantPoolException {
-        List<Method> buf = new ArrayList<>();
-        for (Method m : cf.methods) {
-            if (m.getName(cf.constant_pool).equals(name)) {
-                buf.add(m);
-            }
-        }
-        return buf;
-    }
-
-    static void check(Map<ClassFile, List<Method>> refMembers, Map<ClassFile, List<Method>> membersToCheck) throws ConstantPoolException, InvalidDescriptor {
-        for (Map.Entry<ClassFile, List<Method>> ref : refMembers.entrySet()) {
-            ClassFile cRef = ref.getKey();
-            for (Method mRef : ref.getValue()) {
-                boolean ok = false;
-                for (Map.Entry<ClassFile, List<Method>> toCheck : membersToCheck.entrySet()) {
-                    ClassFile cToCheck = toCheck.getKey();
-                    for (Method mToCheck : toCheck.getValue()) {
-                        if (cRef.getName().equals(cToCheck.getName()) &&
-                                mRef.descriptor.getReturnType(cRef.constant_pool).equals(
-                                mToCheck.descriptor.getReturnType(cToCheck.constant_pool)) &&
-                                mRef.descriptor.getParameterTypes(cRef.constant_pool).equals(
-                                mToCheck.descriptor.getParameterTypes(cToCheck.constant_pool))) {
-                            ok = true;
-                        }
-                    }
-                }
-                if (!ok) {
-                    throw new AssertionError("Matching method descriptor for " + mRef.descriptor.getParameterTypes(cRef.constant_pool) + "not found");
-                }
-            }
-        }
-    }
-}
--- a/langtools/test/tools/javac/generics/typevars/6680106/T6680106.out	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/test/tools/javac/generics/typevars/6680106/T6680106.out	Tue Oct 08 14:59:46 2013 -0700
@@ -1,13 +1,7 @@
-T6680106.java:11:25: compiler.err.type.found.req: T[], (compiler.misc.type.req.class)
-T6680106.java:12:25: compiler.err.type.found.req: S[], (compiler.misc.type.req.class)
-T6680106.java:12:40: compiler.err.type.found.req: T[], (compiler.misc.type.req.class)
-T6680106.java:13:25: compiler.err.type.found.req: S[], (compiler.misc.type.req.class)
-T6680106.java:13:40: compiler.err.type.found.req: U[], (compiler.misc.type.req.class)
-T6680106.java:13:55: compiler.err.type.found.req: T[], (compiler.misc.type.req.class)
-T6680106.java:14:30: compiler.err.type.found.req: T[], (compiler.misc.type.req.class)
-T6680106.java:15:30: compiler.err.type.found.req: S[], (compiler.misc.type.req.class)
-T6680106.java:15:50: compiler.err.type.found.req: T[], (compiler.misc.type.req.class)
-T6680106.java:16:30: compiler.err.type.found.req: S[], (compiler.misc.type.req.class)
-T6680106.java:16:50: compiler.err.type.found.req: U[], (compiler.misc.type.req.class)
-T6680106.java:16:70: compiler.err.type.found.req: T[], (compiler.misc.type.req.class)
-12 errors
+T6680106.java:11:14: compiler.err.cyclic.inheritance: T
+T6680106.java:12:14: compiler.err.cyclic.inheritance: T
+T6680106.java:13:14: compiler.err.cyclic.inheritance: T
+T6680106.java:14:14: compiler.err.cyclic.inheritance: T
+T6680106.java:15:14: compiler.err.cyclic.inheritance: T
+T6680106.java:16:14: compiler.err.cyclic.inheritance: T
+6 errors
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/lambda/8024497/CrashUsingReturningThisRefLambdaFromDefaultMetTest.java	Tue Oct 08 14:59:46 2013 -0700
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 8024497
+ * @summary crash returning this-referencing lambda from default method
+ * @compile CrashUsingReturningThisRefLambdaFromDefaultMetTest.java
+ */
+
+interface SuperInterface {}
+
+interface CrashUsingReturningThisRefLambdaFromDefaultMetTest extends SuperInterface {
+    default Runnable getAction() {
+        return () -> {
+            SuperInterface.super.getClass();
+            this.getClass();
+            CrashUsingReturningThisRefLambdaFromDefaultMetTest.this.getClass();
+        };
+    }
+}
--- a/langtools/test/tools/javac/lambda/methodReference/BridgeMethod.java	Wed Jul 05 19:15:04 2017 +0200
+++ b/langtools/test/tools/javac/lambda/methodReference/BridgeMethod.java	Tue Oct 08 14:59:46 2013 -0700
@@ -108,9 +108,10 @@
         System.out.println("methods in SAM conversion of N:");
         for(Method m : methods) {
             System.out.println(m.toGenericString());
-            assertTrue(m.getName().equals("m"));
-            Class<?> returnType = m.getReturnType();
-            assertTrue(types.remove(returnType.getName()));
+            if (m.getName().equals("m")) {
+                Class<?> returnType = m.getReturnType();
+                assertTrue(types.remove(returnType.getName()));
+            }
         }
         assertTrue(types.size() == 1); //there's a bridge
     }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/processing/errors/TestBadProcessor.java	Tue Oct 08 14:59:46 2013 -0700
@@ -0,0 +1,119 @@
+/*
+ * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 8022163
+ * @summary javac exits with 0 status and no messages on error to construct an ann-procesor
+ */
+
+import java.io.*;
+
+public class TestBadProcessor {
+    public static void main(String... args) throws Exception {
+        new TestBadProcessor().run();
+    }
+
+    public static final String badAnnoProcSrc =
+        "import java.util.*;\n" +
+        "import javax.annotation.processing.*;\n" +
+        "import javax.lang.model.element.*;\n" +
+
+        "public class AnnoProc extends AbstractProcessor {\n" +
+        "    public AnnoProc() {\n" +
+        "        throw new Error();\n" +
+        "    }\n" +
+
+        "    public boolean process(Set<? extends TypeElement> elems, \n" +
+        "                        RoundEnvironment rEnv) {\n" +
+        "        return false;\n" +
+        "    }\n" +
+        "}\n";
+
+    public void run() throws Exception {
+        // setup
+        File srcDir = new File("src");
+        File classesDir = new File("classes");
+        classesDir.mkdirs();
+        File srcFile = writeFile(srcDir, "AnnoProc.java", badAnnoProcSrc);
+        compile("-d", classesDir.getPath(), srcFile.getPath());
+        writeFile(classesDir, "META-INF/services/javax.annotation.processing.Processor", "AnnoProc");
+
+        // run the primary compilation
+        int rc;
+        StringWriter sw = new StringWriter();
+        try (PrintWriter pw = new PrintWriter(sw)) {
+            String[] args = { "-processorpath", classesDir.getPath(), srcFile.getPath() };
+            rc = com.sun.tools.javac.Main.compile(args, pw);
+        }
+
+        // verify that it failed as expected, with the expected message
+        String out = sw.toString();
+        System.err.println(out);
+        String expect = "error: Bad service configuration file, " +
+                "or exception thrown while constructing Processor object: " +
+                "javax.annotation.processing.Processor: " +
+                "Provider AnnoProc could not be instantiated: java.lang.Error";
+        if (!out.trim().equals(expect)) {
+            System.err.println("expected: " + expect);
+            error("output not as expected");
+        }
+
+        if (rc == 0) {
+            error("unexpected exit code: " + rc + "; expected: not zero");
+        }
+
+        // summary
+        if (errors > 0)
+            throw new Exception(errors + " errors found");
+    }
+
+    void compile(String... args) throws Exception {
+        int rc;
+        StringWriter sw = new StringWriter();
+        try (PrintWriter pw = new PrintWriter(sw)) {
+            rc = com.sun.tools.javac.Main.compile(args, pw);
+        }
+        String out = sw.toString();
+        if (!out.isEmpty())
+            System.err.println(out);
+        if (rc != 0)
+            throw new Exception("compilation failed");
+    }
+
+    File writeFile(File dir, String path, String body) throws IOException {
+        File f = new File(dir, path);
+        f.getParentFile().mkdirs();
+        try (FileWriter out = new FileWriter(f)) {
+            out.write(body);
+        }
+        return f;
+    }
+
+    void error(String msg) {
+        System.err.println("Error: " + msg);
+        errors++;
+    }
+
+    int errors;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/processing/model/element/TestTypeElement.java	Tue Oct 08 14:59:46 2013 -0700
@@ -0,0 +1,63 @@
+/*
+ * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 8025118
+ * @summary Verify that TypeElement for interfaces does not have
+ *          Modifier.DEFAULT in getModifiers()
+ * @library /tools/javac/lib
+ * @build   JavacTestingAbstractProcessor TestTypeElement
+ * @compile -processor TestTypeElement -proc:only TestTypeElement.java
+ */
+
+import java.util.Set;
+import javax.annotation.processing.*;
+import javax.lang.model.element.*;
+import static javax.tools.Diagnostic.Kind.*;
+
+/**
+ * Verify that TypeElement for interfaces does not have Modifier.DEFAULT in getModifiers().
+ */
+public class TestTypeElement extends JavacTestingAbstractProcessor {
+    public boolean process(Set<? extends TypeElement> annotations,
+                           RoundEnvironment roundEnv) {
+        if (!roundEnv.processingOver()) {
+            for (Element element : roundEnv.getRootElements()) {
+                if (element.getKind().isClass() || element.getKind().isInterface()) {
+                    if (element.getModifiers().contains(Modifier.DEFAULT))
+                        messager.printMessage(ERROR, "Modifier.DEFAULT not expected on classes/interfaces");
+                }
+            }
+        }
+        return true;
+    }
+
+}
+
+/**
+ * Test interface to provide a default method.
+ */
+interface InterfaceWithDefaultMethod {
+    default void quux() {}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/processing/model/type/InheritedAP.java	Tue Oct 08 14:59:46 2013 -0700
@@ -0,0 +1,96 @@
+/*
+ * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 8024513
+ * @library /tools/javac/lib
+ * @build InheritedAP
+ * @compile -cp . -processor InheritedAP -proc:only InheritedAP.java
+ * @summary NPE in annotation processing
+ */
+import java.util.*;
+import javax.annotation.processing.*;
+import javax.lang.model.element.*;
+import javax.lang.model.type.*;
+import javax.lang.model.util.*;
+import java.lang.annotation.*;
+import static javax.lang.model.type.TypeKind.*;
+import static javax.lang.model.SourceVersion.*;
+import static javax.lang.model.util.ElementFilter.*;
+
+@SupportedAnnotationTypes("testclass")
+@SupportedSourceVersion(RELEASE_8)
+public class InheritedAP extends AbstractProcessor {
+    static Types types;
+    public void init(ProcessingEnvironment penv) {super.init(penv);}
+    public static Types getTypes() { return types; }
+
+    public boolean process(Set<? extends TypeElement> typeElementSet,RoundEnvironment renv) {
+        if ( renv.errorRaised()) { System.out.println("Error!"); return false; }
+        if ( typeElementSet.size() <=0 && typesIn(renv.getRootElements()).size() <= 0 ) {
+            return true;
+        }
+        types=processingEnv.getTypeUtils();
+        for (TypeElement typeElem: typesIn(renv.getRootElements())) {
+            if (typeElem.getAnnotation(testclass.class) != null) {
+                new ElementScanner( new SimpleTypeMirrorVisitor()).scan(typeElem, null);
+            }
+        }
+        return true ;
+    }
+}
+
+class SimpleTypeMirrorVisitor extends SimpleTypeVisitor6 <Void, Void> {
+    protected Void defaultAction(TypeMirror mirror, Void p ) {
+        try {
+            System.out.println( "InheritedAP.getTypes().directSupertypes( "+mirror.toString()+" );" );
+            InheritedAP.getTypes().directSupertypes(mirror);
+            System.out.println("PASS");
+        }catch(java.lang.IllegalArgumentException iae) {/*stuff*/ }
+        return p;
+    }
+}
+
+class ElementScanner <T extends SimpleTypeVisitor6<Void, Void> >
+                    extends ElementScanner6<Void, Void> {
+    SimpleTypeVisitor6<Void, Void> typeVisitor;
+
+    public ElementScanner(T typeVisitor) { this.typeVisitor=typeVisitor;}
+
+    @Override
+    public Void scan(Element e, Void p) {
+         if (e instanceof TypeElement ) {
+            TypeElement te = (TypeElement) e;
+            te.getSuperclass().accept(typeVisitor,p);
+        }
+        return p;
+    }
+
+}
+
+
+@interface testclass { }
+
+@testclass
+@interface iface { }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javap/BoundsTypeVariableTest.java	Tue Oct 08 14:59:46 2013 -0700
@@ -0,0 +1,95 @@
+/*
+ * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+ * @test
+ * @bug 8003537
+ * @summary javap should not use / in Bounds Type Variables
+ */
+
+import java.io.File;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.nio.charset.Charset;
+import java.nio.file.Files;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.regex.Pattern;
+import static java.nio.file.StandardOpenOption.*;
+
+public class BoundsTypeVariableTest {
+    public static void main(String... args) throws Exception {
+        new BoundsTypeVariableTest().run();
+    }
+
+    void run() throws Exception {
+        File srcDir = new File("src");
+        srcDir.mkdirs();
+        File classesDir = new File("classes");
+        classesDir.mkdirs();
+        final String expect = "public abstract <U extends java.lang.Object> U doit();";
+        List<String> contents = new ArrayList<>();
+        contents.add("abstract class X {");
+        contents.add(expect);
+        contents.add("}");
+
+        File f = writeFile(new File(srcDir, "X.java"), contents);
+        javac("-d", classesDir.getPath(), f.getPath());
+        String out = javap("-p", "-v", new File(classesDir, "X.class").getPath());
+        if (!out.contains(expect)) {
+            throw new Exception("expected pattern not found: " + expect);
+        }
+    }
+
+    File writeFile(File f, List<String> body) throws IOException {
+        Files.write(f.toPath(), body, Charset.defaultCharset(),
+                CREATE, TRUNCATE_EXISTING);
+        return f;
+    }
+
+    void javac(String... args) throws Exception {
+        StringWriter sw = new StringWriter();
+        PrintWriter pw = new PrintWriter(sw);
+        int rc = com.sun.tools.javac.Main.compile(args, pw);
+        pw.flush();
+        String out = sw.toString();
+        if (!out.isEmpty())
+            System.err.println(out);
+        if (rc != 0)
+            throw new Exception("compilation failed");
+    }
+
+    String javap(String... args) throws Exception {
+        StringWriter sw = new StringWriter();
+        PrintWriter pw = new PrintWriter(sw);
+        int rc = com.sun.tools.javap.Main.run(args, pw);
+        pw.flush();
+        String out = sw.toString();
+        if (!out.isEmpty())
+            System.err.println(out);
+        if (rc != 0)
+            throw new Exception("javap failed");
+        return out;
+    }
+}