changeset 1033:258e6654aba2 jdk7-b140

Merge
author lana
date Mon, 25 Apr 2011 15:45:49 -0700
parents 674dc2b21640 5ed971fce27c
children 8505c91a1f85 2637cf09460b
files src/share/classes/com/sun/source/tree/DisjunctiveTypeTree.java src/share/classes/javax/lang/model/type/DisjunctiveType.java
diffstat 140 files changed, 505 insertions(+), 313 deletions(-) [+]
line wrap: on
line diff
--- a/make/build.properties	Thu Apr 21 15:33:25 2011 -0700
+++ b/make/build.properties	Mon Apr 25 15:45:49 2011 -0700
@@ -71,9 +71,18 @@
 javac.lint.opts = -Xlint:all,-deprecation -Werror
 
 # options for the <javadoc> task for javac
-javadoc.jls3.url=http://java.sun.com/docs/books/jls/
-javadoc.jls3.cite=&lt;a href=&quot;${javadoc.jls3.url}&quot;&gt;The Java Language Specification, Third Edition&lt;/a&gt;
-javadoc.jls3.option=-tag "jls3:a:See &lt;cite&gt;${javadoc.jls3.cite}&lt;/cite&gt;:"
+#javadoc.jls3.url=http://java.sun.com/docs/books/jls/
+#javadoc.jls3.cite=&lt;a href=&quot;${javadoc.jls3.url}&quot;&gt;The Java Language Specification, Third Edition&lt;/a&gt;
+#javadoc.jls3.option=-tag "jls3:a:See &lt;cite&gt;${javadoc.jls3.cite}&lt;/cite&gt;:"
+
+
+javadoc.jls.cite=The Java&trade; Language Specification
+
+javadoc.jls.option=-tag "jls:a:See &lt;cite&gt;${javadoc.jls.cite}&lt;/cite&gt;:"
+
+
+
+
 
 # jtreg, used to run the JDK regression tests
 # See http://openjdk.java.net/jtreg/
--- a/make/build.xml	Thu Apr 21 15:33:25 2011 -0700
+++ b/make/build.xml	Mon Apr 25 15:45:49 2011 -0700
@@ -464,7 +464,7 @@
     </target>
 
     <target name="javadoc-javac" depends="build-javac,-def-javadoc-tool">
-        <javadoc-tool name="javac" includes="${javac.includes}" options="${javadoc.jls3.option}"/>
+        <javadoc-tool name="javac" includes="${javac.includes}" options="${javadoc.jls.option}"/>
     </target>
 
     <target name="jtreg-javac" depends="build-javac,build-javap,-def-jtreg">
--- a/src/share/classes/com/sun/javadoc/ClassDoc.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/javadoc/ClassDoc.java	Mon Apr 25 15:45:49 2011 -0700
@@ -311,8 +311,8 @@
 
     /**
      * Get the list of classes and interfaces declared as imported.
-     * These are called "single-type-import declarations" in the
-     * Java Language Specification.
+     * These are called "single-type-import declarations" in
+     * <cite>The Java&trade; Language Specification</cite>.
      *
      * @return an array of ClassDoc representing the imported classes.
      *
@@ -325,8 +325,8 @@
 
     /**
      * Get the list of packages declared as imported.
-     * These are called "type-import-on-demand declarations" in the
-     * Java Language Specification.
+     * These are called "type-import-on-demand declarations" in
+     * <cite>The Java&trade; Language Specification</cite>.
      *
      * @return an array of PackageDoc representing the imported packages.
      *
--- a/src/share/classes/com/sun/source/tree/AnnotationTree.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/source/tree/AnnotationTree.java	Mon Apr 25 15:45:49 2011 -0700
@@ -36,7 +36,7 @@
  *    {@code @}<em>annotationType</em> ( <em>arguments</em> )
  * </pre>
  *
- * @see "The Java Language Specification, 3rd ed, section 9.7"
+ * @jls section 9.7
  *
  * @author Peter von der Ah&eacute;
  * @author Jonathan Gibbons
--- a/src/share/classes/com/sun/source/tree/ArrayAccessTree.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/source/tree/ArrayAccessTree.java	Mon Apr 25 15:45:49 2011 -0700
@@ -33,7 +33,7 @@
  *   <em>expression</em> [ <em>index</em> ]
  * </pre>
  *
- * @see "The Java Language Specification, 3rd ed, section 15.13"
+ * @jls section 15.13
  *
  * @author Peter von der Ah&eacute;
  * @author Jonathan Gibbons
--- a/src/share/classes/com/sun/source/tree/ArrayTypeTree.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/source/tree/ArrayTypeTree.java	Mon Apr 25 15:45:49 2011 -0700
@@ -33,7 +33,7 @@
  *   <em>type</em> []
  * </pre>
  *
- * @see "The Java Language Specification, 3rd ed, section 10.1"
+ * @jls section 10.1
  *
  * @author Peter von der Ah&eacute;
  * @author Jonathan Gibbons
--- a/src/share/classes/com/sun/source/tree/AssertTree.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/source/tree/AssertTree.java	Mon Apr 25 15:45:49 2011 -0700
@@ -35,7 +35,7 @@
  *   assert <em>condition</em> : <em>detail</em> ;
  * </pre>
  *
- * @see "The Java Language Specification, 3rd ed, section 14.10"
+ * @jls section 14.10
  *
  * @author Peter von der Ah&eacute;
  * @author Jonathan Gibbons
--- a/src/share/classes/com/sun/source/tree/AssignmentTree.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/source/tree/AssignmentTree.java	Mon Apr 25 15:45:49 2011 -0700
@@ -33,7 +33,7 @@
  *   <em>variable</em> = <em>expression</em>
  * </pre>
  *
- * @see "The Java Language Specification, 3rd ed, section 15.26.1"
+ * @jls section 15.26.1
  *
  * @author Peter von der Ah&eacute;
  * @author Jonathan Gibbons
--- a/src/share/classes/com/sun/source/tree/BinaryTree.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/source/tree/BinaryTree.java	Mon Apr 25 15:45:49 2011 -0700
@@ -34,7 +34,7 @@
  *   <em>leftOperand</em> <em>operator</em> <em>rightOperand</em>
  * </pre>
  *
- * @see "The Java Language Specification, 3rd ed, sections 15.17 to 15.24"
+ * @jls sections 15.17 to 15.24
  *
  * @author Peter von der Ah&eacute;
  * @author Jonathan Gibbons
--- a/src/share/classes/com/sun/source/tree/BlockTree.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/source/tree/BlockTree.java	Mon Apr 25 15:45:49 2011 -0700
@@ -39,7 +39,7 @@
  *   static { <em>statements</em> }
  * </pre>
  *
- * @see "The Java Language Specification, 3rd ed, section 14.2"
+ * @jls section 14.2
  *
  * @author Peter von der Ah&eacute;
  * @author Jonathan Gibbons
--- a/src/share/classes/com/sun/source/tree/BreakTree.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/source/tree/BreakTree.java	Mon Apr 25 15:45:49 2011 -0700
@@ -37,7 +37,7 @@
  *   break <em>label</em> ;
  * </pre>
  *
- * @see "The Java Language Specification, 3rd ed, section 14.15"
+ * @jls section 14.15
  *
  * @author Peter von der Ah&eacute;
  * @author Jonathan Gibbons
--- a/src/share/classes/com/sun/source/tree/CaseTree.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/source/tree/CaseTree.java	Mon Apr 25 15:45:49 2011 -0700
@@ -39,7 +39,7 @@
  *       <em>statements</em>
  * </pre>
  *
- * @see "The Java Language Specification, 3rd ed, section 14.11"
+ * @jls section 14.11
  *
  * @author Peter von der Ah&eacute;
  * @author Jonathan Gibbons
--- a/src/share/classes/com/sun/source/tree/CatchTree.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/source/tree/CatchTree.java	Mon Apr 25 15:45:49 2011 -0700
@@ -34,7 +34,7 @@
  *       <em>block</em>
  * </pre>
  *
- * @see "The Java Language Specification, 3rd ed, section 14.20"
+ * @jls section 14.20
  *
  * @author Peter von der Ah&eacute;
  * @author Jonathan Gibbons
--- a/src/share/classes/com/sun/source/tree/ClassTree.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/source/tree/ClassTree.java	Mon Apr 25 15:45:49 2011 -0700
@@ -42,8 +42,7 @@
  *   }
  * </pre>
  *
- * @see "The Java Language Specification, 3rd ed,
- * sections 8.1, 8.9, 9.1, and 9.6"
+ * @jls sections 8.1, 8.9, 9.1, and 9.6
  *
  * @author Peter von der Ah&eacute;
  * @author Jonathan Gibbons
--- a/src/share/classes/com/sun/source/tree/CompilationUnitTree.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/source/tree/CompilationUnitTree.java	Mon Apr 25 15:45:49 2011 -0700
@@ -33,7 +33,7 @@
  * Represents the abstract syntax tree for compilation units (source
  * files) and package declarations (package-info.java).
  *
- * @see "The Java Language Specification, 3rd ed, sections 7.3, and 7.4"
+ * @jls sections 7.3, and 7.4
  *
  * @author Peter von der Ah&eacute;
  * @since 1.6
--- a/src/share/classes/com/sun/source/tree/CompoundAssignmentTree.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/source/tree/CompoundAssignmentTree.java	Mon Apr 25 15:45:49 2011 -0700
@@ -34,7 +34,7 @@
  *   <em>variable</em> <em>operator</em> <em>expression</em>
  * </pre>
  *
- * @see "The Java Language Specification, 3rd ed, section 15.26.2"
+ * @jls section 15.26.2
  *
  * @author Peter von der Ah&eacute;
  * @author Jonathan Gibbons
--- a/src/share/classes/com/sun/source/tree/ConditionalExpressionTree.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/source/tree/ConditionalExpressionTree.java	Mon Apr 25 15:45:49 2011 -0700
@@ -33,7 +33,7 @@
  *   <em>condition</em> ? <em>trueExpression</em> : <em>falseExpression</em>
  * </pre>
  *
- * @see "The Java Language Specification, 3rd ed, section 15.25"
+ * @jls section 15.25
  *
  * @author Peter von der Ah&eacute;
  * @author Jonathan Gibbons
--- a/src/share/classes/com/sun/source/tree/ContinueTree.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/source/tree/ContinueTree.java	Mon Apr 25 15:45:49 2011 -0700
@@ -36,7 +36,7 @@
  *   continue <em>label</em> ;
  * </pre>
  *
- * @see "The Java Language Specification, 3rd ed, section 14.16"
+ * @jls section 14.16
  *
  * @author Peter von der Ah&eacute;
  * @author Jonathan Gibbons
--- a/src/share/classes/com/sun/source/tree/DisjunctiveTypeTree.java	Thu Apr 21 15:33:25 2011 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-/*
- * Copyright (c) 2010, 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 com.sun.source.tree;
-
-import java.util.List;
-
-/**
- * A tree node for a disjunctive type expression in a multicatch var declaration.
- *
- *
- * @author Maurizio Cimadamore
- *
- * @since 1.7
- */
-public interface DisjunctiveTypeTree extends Tree {
-    List<? extends Tree> getTypeAlternatives();
-}
--- a/src/share/classes/com/sun/source/tree/DoWhileLoopTree.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/source/tree/DoWhileLoopTree.java	Mon Apr 25 15:45:49 2011 -0700
@@ -35,7 +35,7 @@
  *   while ( <em>expression</em> );
  * </pre>
  *
- * @see "The Java Language Specification, 3rd ed, section 14.13"
+ * @jls section 14.13
  *
  * @author Peter von der Ah&eacute;
  * @author Jonathan Gibbons
--- a/src/share/classes/com/sun/source/tree/EmptyStatementTree.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/source/tree/EmptyStatementTree.java	Mon Apr 25 15:45:49 2011 -0700
@@ -33,7 +33,7 @@
  *    ;
  * </pre>
  *
- * @see "The Java Language Specification, 3rd ed, section 14.6"
+ * @jls section 14.6
  *
  * @author Peter von der Ah&eacute;
  * @author Jonathan Gibbons
--- a/src/share/classes/com/sun/source/tree/EnhancedForLoopTree.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/source/tree/EnhancedForLoopTree.java	Mon Apr 25 15:45:49 2011 -0700
@@ -34,7 +34,7 @@
  *       <em>statement</em>
  * </pre>
  *
- * @see "The Java Language Specification, 3rd ed, section 14.14.2"
+ * @jls section 14.14.2
  *
  * @author Peter von der Ah&eacute;
  * @author Jonathan Gibbons
--- a/src/share/classes/com/sun/source/tree/ExpressionStatementTree.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/source/tree/ExpressionStatementTree.java	Mon Apr 25 15:45:49 2011 -0700
@@ -33,7 +33,7 @@
  *   <em>expression</em> ;
  * </pre>
  *
- * @see "The Java Language Specification, 3rd ed, section 14.8"
+ * @jls section 14.8
  *
  * @author Peter von der Ah&eacute;
  * @author Jonathan Gibbons
--- a/src/share/classes/com/sun/source/tree/ExpressionTree.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/source/tree/ExpressionTree.java	Mon Apr 25 15:45:49 2011 -0700
@@ -29,7 +29,7 @@
  * A tree node used as the base class for the different types of
  * expressions.
  *
- * @see "The Java Language Specification, 3rd ed, chapter 15"
+ * @jls chapter 15
  *
  * @author Peter von der Ah&eacute;
  * @author Jonathan Gibbons
--- a/src/share/classes/com/sun/source/tree/ForLoopTree.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/source/tree/ForLoopTree.java	Mon Apr 25 15:45:49 2011 -0700
@@ -36,7 +36,7 @@
  *       <em>statement</em>
  * </pre>
  *
- * @see "The Java Language Specification, 3rd ed, section 14.14.1"
+ * @jls section 14.14.1
  *
  * @author Peter von der Ah&eacute;
  * @author Jonathan Gibbons
--- a/src/share/classes/com/sun/source/tree/IdentifierTree.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/source/tree/IdentifierTree.java	Mon Apr 25 15:45:49 2011 -0700
@@ -35,7 +35,7 @@
  *   <em>name</em>
  * </pre>
  *
- * @see "The Java Language Specification, 3rd ed, section 6.5.6.1"
+ * @jls section 6.5.6.1
  *
  * @author Peter von der Ah&eacute;
  * @author Jonathan Gibbons
--- a/src/share/classes/com/sun/source/tree/IfTree.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/source/tree/IfTree.java	Mon Apr 25 15:45:49 2011 -0700
@@ -39,7 +39,7 @@
  *       <em>elseStatement</em>
  * </pre>
  *
- * @see "The Java Language Specification, 3rd ed, section 14.9"
+ * @jls section 14.9
  *
  * @author Peter von der Ah&eacute;
  * @author Jonathan Gibbons
--- a/src/share/classes/com/sun/source/tree/ImportTree.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/source/tree/ImportTree.java	Mon Apr 25 15:45:49 2011 -0700
@@ -35,7 +35,7 @@
  *   static import <em>qualifiedIdentifier</em> ;
  * </pre>
  *
- * @see "The Java Language Specification, 3rd ed, section 7.5"
+ * @jls section 7.5
  *
  * @author Peter von der Ah&eacute;
  * @author Jonathan Gibbons
--- a/src/share/classes/com/sun/source/tree/InstanceOfTree.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/source/tree/InstanceOfTree.java	Mon Apr 25 15:45:49 2011 -0700
@@ -33,7 +33,7 @@
  *   <em>expression</em> instanceof <em>type</em>
  * </pre>
  *
- * @see "The Java Language Specification, 3rd ed, section 15.20.2"
+ * @jls section 15.20.2
  *
  * @author Peter von der Ah&eacute;
  * @author Jonathan Gibbons
--- a/src/share/classes/com/sun/source/tree/LabeledStatementTree.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/source/tree/LabeledStatementTree.java	Mon Apr 25 15:45:49 2011 -0700
@@ -35,7 +35,7 @@
  *   <em>label</em> : <em>statement</em>
  * </pre>
  *
- * @see "The Java Language Specification, 3rd ed, section 14.7"
+ * @jls section 14.7
  *
  * @author Peter von der Ah&eacute;
  * @author Jonathan Gibbons
--- a/src/share/classes/com/sun/source/tree/LiteralTree.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/source/tree/LiteralTree.java	Mon Apr 25 15:45:49 2011 -0700
@@ -34,7 +34,7 @@
  *   <em>value</em>
  * </pre>
  *
- * @see "The Java Language Specification, 3rd ed, section 15.28"
+ * @jls section 15.28
  *
  * @author Peter von der Ah&eacute;
  * @author Jonathan Gibbons
--- a/src/share/classes/com/sun/source/tree/MemberSelectTree.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/source/tree/MemberSelectTree.java	Mon Apr 25 15:45:49 2011 -0700
@@ -35,8 +35,7 @@
  *   <em>expression</em> . <em>identifier</em>
  * </pre>
  *
- * @see "The Java Language Specification, 3rd ed, sections 6.5,
- * 15.11, and 15.12"
+ * @jls sections 6.5, 15.11,and 15.12
  *
  * @author Peter von der Ah&eacute;
  * @author Jonathan Gibbons
--- a/src/share/classes/com/sun/source/tree/MethodInvocationTree.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/source/tree/MethodInvocationTree.java	Mon Apr 25 15:45:49 2011 -0700
@@ -37,7 +37,7 @@
  *   this . <em>typeArguments</em> <em>identifier</em> ( <em>arguments</em> )
  * </pre>
  *
- * @see "The Java Language Specification, 3rd ed, section 15.12"
+ * @jls section 15.12
  *
  * @author Peter von der Ah&eacute;
  * @author Jonathan Gibbons
--- a/src/share/classes/com/sun/source/tree/MethodTree.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/source/tree/MethodTree.java	Mon Apr 25 15:45:49 2011 -0700
@@ -40,8 +40,7 @@
  *   <em>modifiers</em> <em>type</em> <em>name</em> () default <em>defaultValue</em>
  * </pre>
  *
- * @see "The Java Language Specification, 3rd ed, sections 8.4, 8.6, 8.7,
- * 9.4, and 9.6"
+ * @jls sections 8.4, 8.6, 8.7, 9.4, and 9.6
  *
  * @author Peter von der Ah&eacute;
  * @author Jonathan Gibbons
--- a/src/share/classes/com/sun/source/tree/ModifiersTree.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/source/tree/ModifiersTree.java	Mon Apr 25 15:45:49 2011 -0700
@@ -39,8 +39,7 @@
  *   <em>flags</em> <em>annotations</em>
  * </pre>
  *
- * @see "The Java Language Specification, 3rd ed, sections
- * 8.1.1, 8.3.1, 8.4.3, 8.5.1, 8.8.3, 9.1.1, and 9.7"
+ * @jls sections 8.1.1, 8.3.1, 8.4.3, 8.5.1, 8.8.3, 9.1.1, and 9.7
  *
  * @author Peter von der Ah&eacute;
  * @author Jonathan Gibbons
--- a/src/share/classes/com/sun/source/tree/NewArrayTree.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/source/tree/NewArrayTree.java	Mon Apr 25 15:45:49 2011 -0700
@@ -37,7 +37,7 @@
  *   new <em>type</em> <em>dimensions</em> [ ] <em>initializers</em>
  * </pre>
  *
- * @see "The Java Language Specification, 3rd ed, section 15.10"
+ * @jls section 15.10
  *
  * @author Peter von der Ah&eacute;
  * @author Jonathan Gibbons
--- a/src/share/classes/com/sun/source/tree/NewClassTree.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/source/tree/NewClassTree.java	Mon Apr 25 15:45:49 2011 -0700
@@ -42,7 +42,7 @@
  *   <em>enclosingExpression</em>.new <em>identifier</em> ( <em>arguments</em> )
  * </pre>
  *
- * @see "The Java Language Specification, 3rd ed, section 15.9"
+ * @jls section 15.9
  *
  * @author Peter von der Ah&eacute;
  * @author Jonathan Gibbons
--- a/src/share/classes/com/sun/source/tree/ParameterizedTypeTree.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/source/tree/ParameterizedTypeTree.java	Mon Apr 25 15:45:49 2011 -0700
@@ -35,7 +35,7 @@
  *   <em>type</em> &lt; <em>typeArguments</em> &gt;
  * </pre>
  *
- * @see "The Java Language Specification, 3rd ed, section 4.5.1"
+ * @jls section 4.5.1
  *
  * @author Peter von der Ah&eacute;
  * @author Jonathan Gibbons
--- a/src/share/classes/com/sun/source/tree/ParenthesizedTree.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/source/tree/ParenthesizedTree.java	Mon Apr 25 15:45:49 2011 -0700
@@ -34,7 +34,7 @@
  *   ( <em>expression</em> )
  * </pre>
  *
- * @see "The Java Language Specification, 3rd ed, section 15.8.5"
+ * @jls section 15.8.5
  *
  * @author Peter von der Ah&eacute;
  * @author Jonathan Gibbons
--- a/src/share/classes/com/sun/source/tree/PrimitiveTypeTree.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/source/tree/PrimitiveTypeTree.java	Mon Apr 25 15:45:49 2011 -0700
@@ -35,7 +35,7 @@
  *   <em>primitiveTypeKind</em>
  * </pre>
  *
- * @see "The Java Language Specification, 3rd ed, section 4.2"
+ * @jls section 4.2
  *
  * @author Peter von der Ah&eacute;
  * @author Jonathan Gibbons
--- a/src/share/classes/com/sun/source/tree/ReturnTree.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/source/tree/ReturnTree.java	Mon Apr 25 15:45:49 2011 -0700
@@ -34,7 +34,7 @@
  *   return <em>expression</em>;
  * </pre>
  *
- * @see "The Java Language Specification, 3rd ed, section 14.17"
+ * @jls section 14.17
  *
  * @author Peter von der Ah&eacute;
  * @author Jonathan Gibbons
--- a/src/share/classes/com/sun/source/tree/StatementTree.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/source/tree/StatementTree.java	Mon Apr 25 15:45:49 2011 -0700
@@ -29,7 +29,7 @@
  * A tree node used as the base class for the different kinds of
  * statements.
  *
- * @see "The Java Language Specification, 3rd ed, chapter 14"
+ * @jls chapter 14
  *
  * @author Peter von der Ah&eacute;
  * @author Jonathan Gibbons
--- a/src/share/classes/com/sun/source/tree/SwitchTree.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/source/tree/SwitchTree.java	Mon Apr 25 15:45:49 2011 -0700
@@ -37,7 +37,7 @@
  *   }
  * </pre>
  *
- * @see "The Java Language Specification, 3rd ed, section 14.11"
+ * @jls section 14.11
  *
  * @author Peter von der Ah&eacute;
  * @author Jonathan Gibbons
--- a/src/share/classes/com/sun/source/tree/SynchronizedTree.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/source/tree/SynchronizedTree.java	Mon Apr 25 15:45:49 2011 -0700
@@ -34,7 +34,7 @@
  *       </em>block</em>
  * </pre>
  *
- * @see "The Java Language Specification, 3rd ed, section 14.19"
+ * @jls section 14.19
  *
  * @author Peter von der Ah&eacute;
  * @author Jonathan Gibbons
--- a/src/share/classes/com/sun/source/tree/ThrowTree.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/source/tree/ThrowTree.java	Mon Apr 25 15:45:49 2011 -0700
@@ -33,7 +33,7 @@
  *   throw <em>expression</em>;
  * </pre>
  *
- * @see "The Java Language Specification, 3rd ed, section 14.18"
+ * @jls section 14.18
  *
  * @author Peter von der Ah&eacute;
  * @author Jonathan Gibbons
--- a/src/share/classes/com/sun/source/tree/Tree.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/source/tree/Tree.java	Mon Apr 25 15:45:49 2011 -0700
@@ -232,9 +232,9 @@
         PARAMETERIZED_TYPE(ParameterizedTypeTree.class),
 
         /**
-         * Used for instances of {@link DisjunctiveTypeTree}.
+         * Used for instances of {@link UnionTypeTree}.
          */
-        DISJUNCTIVE_TYPE(DisjunctiveTypeTree.class),
+        UNION_TYPE(UnionTypeTree.class),
 
         /**
          * Used for instances of {@link TypeCastTree}.
--- a/src/share/classes/com/sun/source/tree/TreeVisitor.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/source/tree/TreeVisitor.java	Mon Apr 25 15:45:49 2011 -0700
@@ -95,7 +95,7 @@
     R visitCompilationUnit(CompilationUnitTree node, P p);
     R visitTry(TryTree node, P p);
     R visitParameterizedType(ParameterizedTypeTree node, P p);
-    R visitDisjunctiveType(DisjunctiveTypeTree node, P p);
+    R visitUnionType(UnionTypeTree node, P p);
     R visitArrayType(ArrayTypeTree node, P p);
     R visitTypeCast(TypeCastTree node, P p);
     R visitPrimitiveType(PrimitiveTypeTree node, P p);
--- a/src/share/classes/com/sun/source/tree/TryTree.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/source/tree/TryTree.java	Mon Apr 25 15:45:49 2011 -0700
@@ -39,7 +39,7 @@
  *       <em>finallyBlock</em>
  * </pre>
  *
- * @see "The Java Language Specification, 3rd ed, section 14.20"
+ * @jls section 14.20
  *
  * @author Peter von der Ah&eacute;
  * @author Jonathan Gibbons
--- a/src/share/classes/com/sun/source/tree/TypeCastTree.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/source/tree/TypeCastTree.java	Mon Apr 25 15:45:49 2011 -0700
@@ -33,7 +33,7 @@
  *   ( <em>type</em> ) <em>expression</em>
  * </pre>
  *
- * @see "The Java Language Specification, 3rd ed, section 15.16"
+ * @jls section 15.16
  *
  * @author Peter von der Ah&eacute;
  * @author Jonathan Gibbons
--- a/src/share/classes/com/sun/source/tree/TypeParameterTree.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/source/tree/TypeParameterTree.java	Mon Apr 25 15:45:49 2011 -0700
@@ -38,7 +38,7 @@
  *   <em>name</em> extends <em>bounds</em>
  * </pre>
  *
- * @see "The Java Language Specification, 3rd ed, section 4.4"
+ * @jls section 4.4
  *
  * @author Peter von der Ah&eacute;
  * @author Jonathan Gibbons
--- a/src/share/classes/com/sun/source/tree/UnaryTree.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/source/tree/UnaryTree.java	Mon Apr 25 15:45:49 2011 -0700
@@ -36,7 +36,7 @@
  *   <em>expression</em> <em>operator</em>
  * </pre>
  *
- * @see "The Java Language Specification, 3rd ed, sections 15.14 and 15.15"
+ * @jls sections 15.14 and 15.15
  *
  * @author Peter von der Ah&eacute;
  * @author Jonathan Gibbons
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/share/classes/com/sun/source/tree/UnionTypeTree.java	Mon Apr 25 15:45:49 2011 -0700
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 2010, 2011 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 com.sun.source.tree;
+
+import java.util.List;
+
+/**
+ * A tree node for a union type expression in a multicatch var declaration.
+ *
+ * @author Maurizio Cimadamore
+ *
+ * @since 1.7
+ */
+public interface UnionTypeTree extends Tree {
+    List<? extends Tree> getTypeAlternatives();
+}
--- a/src/share/classes/com/sun/source/tree/VariableTree.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/source/tree/VariableTree.java	Mon Apr 25 15:45:49 2011 -0700
@@ -35,7 +35,7 @@
  *   <em>modifiers</em> <em>type</em> <em>name</em> <em>initializer</em> ;
  * </pre>
  *
- * @see "The Java Language Specification, 3rd ed, sections 8.3 and 14.4"
+ * @jls sections 8.3 and 14.4
  *
  * @author Peter von der Ah&eacute;
  * @author Jonathan Gibbons
--- a/src/share/classes/com/sun/source/tree/WhileLoopTree.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/source/tree/WhileLoopTree.java	Mon Apr 25 15:45:49 2011 -0700
@@ -35,7 +35,7 @@
  * </pre>
  *
  *
- * @see "The Java Language Specification, 3rd ed, section 14.12"
+ * @jls section 14.12
  *
  * @author Peter von der Ah&eacute;
  * @author Jonathan Gibbons
--- a/src/share/classes/com/sun/source/tree/WildcardTree.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/source/tree/WildcardTree.java	Mon Apr 25 15:45:49 2011 -0700
@@ -38,7 +38,7 @@
  *   ? super <em>bound</em>
  * </pre>
  *
- * @see "The Java Language Specification, 3rd ed, section 4.5.1"
+ * @jls section 4.5.1
  *
  * @author Peter von der Ah&eacute;
  * @author Jonathan Gibbons
--- a/src/share/classes/com/sun/source/util/SimpleTreeVisitor.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/source/util/SimpleTreeVisitor.java	Mon Apr 25 15:45:49 2011 -0700
@@ -228,7 +228,7 @@
         return defaultAction(node, p);
     }
 
-    public R visitDisjunctiveType(DisjunctiveTypeTree node, P p) {
+    public R visitUnionType(UnionTypeTree node, P p) {
         return defaultAction(node, p);
     }
 
--- a/src/share/classes/com/sun/source/util/TreeScanner.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/source/util/TreeScanner.java	Mon Apr 25 15:45:49 2011 -0700
@@ -355,7 +355,7 @@
         return r;
     }
 
-    public R visitDisjunctiveType(DisjunctiveTypeTree node, P p) {
+    public R visitUnionType(UnionTypeTree node, P p) {
         return scan(node.getTypeAlternatives(), p);
     }
 
--- a/src/share/classes/com/sun/tools/apt/mirror/util/DeclarationsImpl.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/tools/apt/mirror/util/DeclarationsImpl.java	Mon Apr 25 15:45:49 2011 -0700
@@ -67,7 +67,8 @@
 
     /**
      * {@inheritDoc}
-     * See JLS 2 sections 8.3 and 8.4.6.
+     * See sections 8.3 and 8.4.6 of
+     * <cite>The Java&trade; Language Specification</cite>
      */
     public boolean hides(MemberDeclaration sub, MemberDeclaration sup) {
         Symbol hider = ((DeclarationImpl) sub).sym;
@@ -107,7 +108,8 @@
 
     /**
      * {@inheritDoc}
-     * See JLS 2 section 8.4.6.1.
+     * See section 8.4.6.1 of
+     * <cite>The Java&trade; Language Specification</cite>
      */
     public boolean overrides(MethodDeclaration sub, MethodDeclaration sup) {
         MethodSymbol overrider = ((MethodDeclarationImpl) sub).sym;
--- a/src/share/classes/com/sun/tools/classfile/AccessFlags.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/tools/classfile/AccessFlags.java	Mon Apr 25 15:45:49 2011 -0700
@@ -30,7 +30,7 @@
 import java.util.Set;
 
 /**
- * See JVMS3, sections 4.2, 4.6, 4.7.
+ * See JVMS, sections 4.2, 4.6, 4.7.
  *
  *  <p><b>This is NOT part of any supported API.
  *  If you write code that depends on this, you do so at your own risk.
--- a/src/share/classes/com/sun/tools/classfile/Annotation.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/tools/classfile/Annotation.java	Mon Apr 25 15:45:49 2011 -0700
@@ -28,7 +28,7 @@
 import java.io.IOException;
 
 /**
- * See JVMS3, section 4.8.16.
+ * See JVMS, section 4.8.16.
  *
  *  <p><b>This is NOT part of any supported API.
  *  If you write code that depends on this, you do so at your own risk.
@@ -71,7 +71,7 @@
     public final element_value_pair element_value_pairs[];
 
     /**
-     * See JVMS3, section 4.8.16.1.
+     * See JVMS, section 4.8.16.1.
      */
     public static abstract class element_value {
         public static element_value read(ClassReader cr)
--- a/src/share/classes/com/sun/tools/classfile/AnnotationDefault_attribute.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/tools/classfile/AnnotationDefault_attribute.java	Mon Apr 25 15:45:49 2011 -0700
@@ -28,7 +28,7 @@
 import java.io.IOException;
 
 /**
- * See JVMS3, section 4.8.15.
+ * See JVMS, section 4.8.15.
  *
  *  <p><b>This is NOT part of any supported API.
  *  If you write code that depends on this, you do so at your own risk.
--- a/src/share/classes/com/sun/tools/classfile/BootstrapMethods_attribute.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/tools/classfile/BootstrapMethods_attribute.java	Mon Apr 25 15:45:49 2011 -0700
@@ -28,7 +28,7 @@
 import java.io.IOException;
 
 /**
- * See JVMS3 <TBD>
+ * See JVMS <TBD>
  * http://cr.openjdk.java.net/~jrose/pres/indy-javadoc-mlvm/
  *
  *  <p><b>This is NOT part of any supported API.
--- a/src/share/classes/com/sun/tools/classfile/ClassFile.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/tools/classfile/ClassFile.java	Mon Apr 25 15:45:49 2011 -0700
@@ -33,7 +33,7 @@
 import static com.sun.tools.classfile.AccessFlags.*;
 
 /**
- * See JVMS3, section 4.2.
+ * See JVMS, section 4.2.
  *
  *  <p><b>This is NOT part of any supported API.
  *  If you write code that depends on this, you do so at your own risk.
--- a/src/share/classes/com/sun/tools/classfile/Code_attribute.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/tools/classfile/Code_attribute.java	Mon Apr 25 15:45:49 2011 -0700
@@ -30,7 +30,7 @@
 import java.util.NoSuchElementException;
 
 /**
- * See JVMS3, section 4.8.3.
+ * See JVMS, section 4.8.3.
  *
  *  <p><b>This is NOT part of any supported API.
  *  If you write code that depends on this, you do so at your own risk.
--- a/src/share/classes/com/sun/tools/classfile/ConstantPool.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/tools/classfile/ConstantPool.java	Mon Apr 25 15:45:49 2011 -0700
@@ -31,7 +31,7 @@
 import java.util.Iterator;
 
 /**
- * See JVMS3, section 4.5.
+ * See JVMS, section 4.5.
  *
  *  <p><b>This is NOT part of any supported API.
  *  If you write code that depends on this, you do so at your own risk.
--- a/src/share/classes/com/sun/tools/classfile/ConstantValue_attribute.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/tools/classfile/ConstantValue_attribute.java	Mon Apr 25 15:45:49 2011 -0700
@@ -28,7 +28,7 @@
 import java.io.IOException;
 
 /**
- * See JVMS3, section 4.8.2.
+ * See JVMS, section 4.8.2.
  *
  *  <p><b>This is NOT part of any supported API.
  *  If you write code that depends on this, you do so at your own risk.
--- a/src/share/classes/com/sun/tools/classfile/Deprecated_attribute.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/tools/classfile/Deprecated_attribute.java	Mon Apr 25 15:45:49 2011 -0700
@@ -28,7 +28,7 @@
 import java.io.IOException;
 
 /**
- * See JVMS3, section 4.8.15.
+ * See JVMS, section 4.8.15.
  *
  *  <p><b>This is NOT part of any supported API.
  *  If you write code that depends on this, you do so at your own risk.
--- a/src/share/classes/com/sun/tools/classfile/Descriptor.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/tools/classfile/Descriptor.java	Mon Apr 25 15:45:49 2011 -0700
@@ -29,7 +29,7 @@
 import java.io.IOException;
 
 /**
- * See JVMS3, section 4.4.
+ * See JVMS, section 4.4.
  *
  *  <p><b>This is NOT part of any supported API.
  *  If you write code that depends on this, you do so at your own risk.
--- a/src/share/classes/com/sun/tools/classfile/EnclosingMethod_attribute.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/tools/classfile/EnclosingMethod_attribute.java	Mon Apr 25 15:45:49 2011 -0700
@@ -29,7 +29,7 @@
 import java.io.IOException;
 
 /**
- * See JVMS3, section 4.8.7.
+ * See JVMS, section 4.8.7.
  *
  *  <p><b>This is NOT part of any supported API.
  *  If you write code that depends on this, you do so at your own risk.
--- a/src/share/classes/com/sun/tools/classfile/Exceptions_attribute.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/tools/classfile/Exceptions_attribute.java	Mon Apr 25 15:45:49 2011 -0700
@@ -28,7 +28,7 @@
 import java.io.IOException;
 
 /**
- * See JVMS3, section 4.8.5.
+ * See JVMS, section 4.8.5.
  *
  *  <p><b>This is NOT part of any supported API.
  *  If you write code that depends on this, you do so at your own risk.
--- a/src/share/classes/com/sun/tools/classfile/InnerClasses_attribute.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/tools/classfile/InnerClasses_attribute.java	Mon Apr 25 15:45:49 2011 -0700
@@ -30,7 +30,7 @@
 import com.sun.tools.classfile.ConstantPool.*;
 
 /**
- * See JVMS3, section 4.8.6.
+ * See JVMS, section 4.8.6.
  *
  *  <p><b>This is NOT part of any supported API.
  *  If you write code that depends on this, you do so at your own risk.
--- a/src/share/classes/com/sun/tools/classfile/Instruction.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/tools/classfile/Instruction.java	Mon Apr 25 15:45:49 2011 -0700
@@ -26,7 +26,7 @@
 package com.sun.tools.classfile;
 
 /**
- * See JVMS3, chapter 6.
+ * See JVMS, chapter 6.
  *
  *  <p><b>This is NOT part of any supported API.
  *  If you write code that depends on this, you do so at your own risk.
--- a/src/share/classes/com/sun/tools/classfile/LineNumberTable_attribute.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/tools/classfile/LineNumberTable_attribute.java	Mon Apr 25 15:45:49 2011 -0700
@@ -28,7 +28,7 @@
 import java.io.IOException;
 
 /**
- * See JVMS3, section 4.8.12.
+ * See JVMS, section 4.8.12.
  *
  *  <p><b>This is NOT part of any supported API.
  *  If you write code that depends on this, you do so at your own risk.
--- a/src/share/classes/com/sun/tools/classfile/LocalVariableTable_attribute.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/tools/classfile/LocalVariableTable_attribute.java	Mon Apr 25 15:45:49 2011 -0700
@@ -28,7 +28,7 @@
 import java.io.IOException;
 
 /**
- * See JVMS3, section 4.8.13.
+ * See JVMS, section 4.8.13.
  *
  *  <p><b>This is NOT part of any supported API.
  *  If you write code that depends on this, you do so at your own risk.
--- a/src/share/classes/com/sun/tools/classfile/LocalVariableTypeTable_attribute.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/tools/classfile/LocalVariableTypeTable_attribute.java	Mon Apr 25 15:45:49 2011 -0700
@@ -28,7 +28,7 @@
 import java.io.IOException;
 
 /**
- * See JVMS3, section 4.8.14.
+ * See JVMS, section 4.8.14.
  *
  *  <p><b>This is NOT part of any supported API.
  *  If you write code that depends on this, you do so at your own risk.
--- a/src/share/classes/com/sun/tools/classfile/Opcode.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/tools/classfile/Opcode.java	Mon Apr 25 15:45:49 2011 -0700
@@ -29,7 +29,7 @@
 import static com.sun.tools.classfile.Opcode.Set.*;
 
 /**
- * See JVMS3, chapter 6.
+ * See JVMS, chapter 6.
  *
  * <p>In addition to providing all the standard opcodes defined in JVMS,
  * this class also provides legacy support for the PicoJava extensions.
--- a/src/share/classes/com/sun/tools/classfile/RuntimeAnnotations_attribute.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/tools/classfile/RuntimeAnnotations_attribute.java	Mon Apr 25 15:45:49 2011 -0700
@@ -28,7 +28,7 @@
 import java.io.IOException;
 
 /**
- * See JVMS3, section 4.8.16 and 4.8.17.
+ * See JVMS, section 4.8.16 and 4.8.17.
  *
  *  <p><b>This is NOT part of any supported API.
  *  If you write code that depends on this, you do so at your own risk.
--- a/src/share/classes/com/sun/tools/classfile/RuntimeInvisibleAnnotations_attribute.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/tools/classfile/RuntimeInvisibleAnnotations_attribute.java	Mon Apr 25 15:45:49 2011 -0700
@@ -28,7 +28,7 @@
 import java.io.IOException;
 
 /**
- * See JVMS3, section 4.8.17.
+ * See JVMS, section 4.8.17.
  *
  *  <p><b>This is NOT part of any supported API.
  *  If you write code that depends on this, you do so at your own risk.
--- a/src/share/classes/com/sun/tools/classfile/RuntimeInvisibleParameterAnnotations_attribute.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/tools/classfile/RuntimeInvisibleParameterAnnotations_attribute.java	Mon Apr 25 15:45:49 2011 -0700
@@ -28,7 +28,7 @@
 import java.io.IOException;
 
 /**
- * See JVMS3, section 4.8.18.
+ * See JVMS, section 4.8.18.
  *
  *  <p><b>This is NOT part of any supported API.
  *  If you write code that depends on this, you do so at your own risk.
--- a/src/share/classes/com/sun/tools/classfile/RuntimeParameterAnnotations_attribute.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/tools/classfile/RuntimeParameterAnnotations_attribute.java	Mon Apr 25 15:45:49 2011 -0700
@@ -28,7 +28,7 @@
 import java.io.IOException;
 
 /**
- * See JVMS3, section 4.8.18 and 4.8.19.
+ * See JVMS, section 4.8.18 and 4.8.19.
  *
  *  <p><b>This is NOT part of any supported API.
  *  If you write code that depends on this, you do so at your own risk.
--- a/src/share/classes/com/sun/tools/classfile/RuntimeVisibleAnnotations_attribute.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/tools/classfile/RuntimeVisibleAnnotations_attribute.java	Mon Apr 25 15:45:49 2011 -0700
@@ -28,7 +28,7 @@
 import java.io.IOException;
 
 /**
- * See JVMS3, section 4.8.16.
+ * See JVMS, section 4.8.16.
  *
  *  <p><b>This is NOT part of any supported API.
  *  If you write code that depends on this, you do so at your own risk.
--- a/src/share/classes/com/sun/tools/classfile/RuntimeVisibleParameterAnnotations_attribute.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/tools/classfile/RuntimeVisibleParameterAnnotations_attribute.java	Mon Apr 25 15:45:49 2011 -0700
@@ -28,7 +28,7 @@
 import java.io.IOException;
 
 /**
- * See JVMS3, section 4.8.18.
+ * See JVMS, section 4.8.18.
  *
  *  <p><b>This is NOT part of any supported API.
  *  If you write code that depends on this, you do so at your own risk.
--- a/src/share/classes/com/sun/tools/classfile/Signature.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/tools/classfile/Signature.java	Mon Apr 25 15:45:49 2011 -0700
@@ -30,7 +30,7 @@
 import com.sun.tools.classfile.Type.*;
 
 /**
- * See JVMS3 4.4.4.
+ * See JVMS 4.4.4.
  *
  *  <p><b>This is NOT part of any supported API.
  *  If you write code that depends on this, you do so at your own risk.
--- a/src/share/classes/com/sun/tools/classfile/Signature_attribute.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/tools/classfile/Signature_attribute.java	Mon Apr 25 15:45:49 2011 -0700
@@ -28,7 +28,7 @@
 import java.io.IOException;
 
 /**
- * See JVMS3, section 4.8.9.
+ * See JVMS, section 4.8.9.
  *
  *  <p><b>This is NOT part of any supported API.
  *  If you write code that depends on this, you do so at your own risk.
--- a/src/share/classes/com/sun/tools/classfile/SourceDebugExtension_attribute.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/tools/classfile/SourceDebugExtension_attribute.java	Mon Apr 25 15:45:49 2011 -0700
@@ -30,7 +30,7 @@
 import java.io.IOException;
 
 /**
- * See JVMS3, section 4.8.15.
+ * See JVMS, section 4.8.15.
  *
  *  <p><b>This is NOT part of any supported API.
  *  If you write code that depends on this, you do so at your own risk.
--- a/src/share/classes/com/sun/tools/classfile/SourceFile_attribute.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/tools/classfile/SourceFile_attribute.java	Mon Apr 25 15:45:49 2011 -0700
@@ -28,7 +28,7 @@
 import java.io.IOException;
 
 /**
- * See JVMS3, section 4.8.10.
+ * See JVMS, section 4.8.10.
  *
  *  <p><b>This is NOT part of any supported API.
  *  If you write code that depends on this, you do so at your own risk.
--- a/src/share/classes/com/sun/tools/classfile/StackMapTable_attribute.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/tools/classfile/StackMapTable_attribute.java	Mon Apr 25 15:45:49 2011 -0700
@@ -28,7 +28,7 @@
 import java.io.IOException;
 
 /**
- * See JVMS3, section 4.8.4.
+ * See JVMS, section 4.8.4.
  *
  *  <p><b>This is NOT part of any supported API.
  *  If you write code that depends on this, you do so at your own risk.
--- a/src/share/classes/com/sun/tools/classfile/Synthetic_attribute.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/tools/classfile/Synthetic_attribute.java	Mon Apr 25 15:45:49 2011 -0700
@@ -28,7 +28,7 @@
 import java.io.IOException;
 
 /**
- * See JVMS3, section 4.8.8.
+ * See JVMS, section 4.8.8.
  *
  *  <p><b>This is NOT part of any supported API.
  *  If you write code that depends on this, you do so at your own risk.
--- a/src/share/classes/com/sun/tools/classfile/package.html	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/tools/classfile/package.html	Mon Apr 25 15:45:49 2011 -0700
@@ -6,7 +6,7 @@
   </head>
   <body>
     A minimalist library to read and write class files into objects closely 
-    based on the corresponding definitions in the Java Virtual Machine 
-    Specification (JVMS).
+    based on the corresponding definitions in 
+    <cite>The Java&trade; Virtual Machine Specification</cite> (JVMS).
   </body>
 </html>
--- a/src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java	Mon Apr 25 15:45:49 2011 -0700
@@ -2523,8 +2523,9 @@
     }
 
     /**
-     * According to the Java Language Specifications, all the outer classes
-     * and static nested classes are core classes.
+     * According to
+     * <cite>The Java&trade; Language Specification</cite>,
+     * all the outer classes and static nested classes are core classes.
      */
     public boolean isCoreClass(ClassDoc cd) {
         return cd.containingClass() == null || cd.isStatic();
--- a/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/Util.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/Util.java	Mon Apr 25 15:45:49 2011 -0700
@@ -175,8 +175,9 @@
     }
 
     /**
-     * According to the Java Language Specifications, all the outer classes
-     * and static inner classes are core classes.
+     * According to
+     * <cite>The Java&trade; Language Specification</cite>,
+     * all the outer classes and static inner classes are core classes.
      */
     public static boolean isCoreClass(ClassDoc cd) {
         return cd.containingClass() == null || cd.isStatic();
--- a/src/share/classes/com/sun/tools/javac/code/Flags.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/tools/javac/code/Flags.java	Mon Apr 25 15:45:49 2011 -0700
@@ -231,9 +231,9 @@
     public static final long PROPRIETARY = 1L<<38;
 
     /**
-     * Flag that marks a disjunction var in a multi-catch clause
+     * Flag that marks a a multi-catch parameter
      */
-    public static final long DISJUNCTION = 1L<<39;
+    public static final long UNION = 1L<<39;
 
     /**
      * Flag that marks a signature-polymorphic invoke method.
--- a/src/share/classes/com/sun/tools/javac/code/Symbol.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/tools/javac/code/Symbol.java	Mon Apr 25 15:45:49 2011 -0700
@@ -1193,7 +1193,7 @@
         }
 
         private boolean isOverridableIn(TypeSymbol origin) {
-            // JLS3 8.4.6.1
+            // JLS 8.4.6.1
             switch ((int)(flags_field & Flags.AccessFlags)) {
             case Flags.PRIVATE:
                 return false;
--- a/src/share/classes/com/sun/tools/javac/code/Types.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/tools/javac/code/Types.java	Mon Apr 25 15:45:49 2011 -0700
@@ -1985,7 +1985,7 @@
      * signature</em> of the other.  This is <b>not</b> an equivalence
      * relation.
      *
-     * @see "The Java Language Specification, Third Ed. (8.4.2)."
+     * @jls section 8.4.2.
      * @see #overrideEquivalent(Type t, Type s)
      * @param t first signature (possibly raw).
      * @param s second signature (could be subjected to erasure).
@@ -2004,7 +2004,7 @@
      * equivalence</em>.  This is the natural extension of
      * isSubSignature to an equivalence relation.
      *
-     * @see "The Java Language Specification, Third Ed. (8.4.2)."
+     * @jls section 8.4.2.
      * @see #isSubSignature(Type t, Type s)
      * @param t a signature (possible raw, could be subjected to
      * erasure).
@@ -2309,7 +2309,7 @@
             if (elemtype == t.elemtype)
                 return t;
             else
-                return new ArrayType(upperBound(elemtype), t.tsym);
+                return new ArrayType(elemtype, t.tsym);
         }
 
         @Override
@@ -3049,8 +3049,7 @@
 
     /**
      * Return-Type-Substitutable.
-     * @see <a href="http://java.sun.com/docs/books/jls/">The Java
-     * Language Specification, Third Ed. (8.4.5)</a>
+     * @jls section 8.4.5
      */
     public boolean returnTypeSubstitutable(Type r1, Type r2) {
         if (hasSameArgs(r1, r2))
@@ -3130,7 +3129,7 @@
 
     // <editor-fold defaultstate="collapsed" desc="Capture conversion">
     /*
-     * JLS 3rd Ed. 5.1.10 Capture Conversion:
+     * JLS 5.1.10 Capture Conversion:
      *
      * Let G name a generic type declaration with n formal type
      * parameters A1 ... An with corresponding bounds U1 ... Un. There
@@ -3163,7 +3162,7 @@
      * Capture conversion is not applied recursively.
      */
     /**
-     * Capture conversion as specified by JLS 3rd Ed.
+     * Capture conversion as specified by the JLS.
      */
 
     public List<Type> capture(List<Type> ts) {
--- a/src/share/classes/com/sun/tools/javac/comp/Attr.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/tools/javac/comp/Attr.java	Mon Apr 25 15:45:49 2011 -0700
@@ -1112,7 +1112,7 @@
             Type ctype = attribStat(c.param, catchEnv);
             if (TreeInfo.isMultiCatch(c)) {
                 //multi-catch parameter is implicitly marked as final
-                c.param.sym.flags_field |= FINAL | DISJUNCTION;
+                c.param.sym.flags_field |= FINAL | UNION;
             }
             if (c.param.sym.kind == Kinds.VAR) {
                 c.param.sym.setData(ElementKind.EXCEPTION_PARAMETER);
@@ -2632,10 +2632,10 @@
          * @param tree    The tree making up the variable reference.
          * @param env     The current environment.
          * @param v       The variable's symbol.
-         * @see JLS 3rd Ed. (8.9 Enums)
+         * @jls  section 8.9 Enums
          */
         private void checkEnumInitializer(JCTree tree, Env<AttrContext> env, VarSymbol v) {
-            // JLS 3rd Ed.:
+            // JLS:
             //
             // "It is a compile-time error to reference a static field
             // of an enum type that is not a compile-time constant
@@ -2908,7 +2908,7 @@
         result = check(tree, owntype, TYP, pkind, pt);
     }
 
-    public void visitTypeDisjunction(JCTypeDisjunction tree) {
+    public void visitTypeUnion(JCTypeUnion tree) {
         ListBuffer<Type> multicatchTypes = ListBuffer.lb();
         for (JCExpression typeTree : tree.alternatives) {
             Type ctype = attribType(typeTree, env);
@@ -2916,7 +2916,7 @@
                           chk.checkClassType(typeTree.pos(), ctype),
                           syms.throwableType);
             if (!ctype.isErroneous()) {
-                //check that alternatives of a disjunctive type are pairwise
+                //check that alternatives of a union type are pairwise
                 //unrelated w.r.t. subtyping
                 if (chk.intersects(ctype,  multicatchTypes.toList())) {
                     for (Type t : multicatchTypes) {
--- a/src/share/classes/com/sun/tools/javac/comp/Check.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/tools/javac/comp/Check.java	Mon Apr 25 15:45:49 2011 -0700
@@ -2271,7 +2271,7 @@
      * that of any public or protected method declared in class Object
      * or in the interface annotation.Annotation."
      *
-     * @jls3 9.6 Annotation Types
+     * @jls 9.6 Annotation Types
      */
     void validateAnnotationMethod(DiagnosticPosition pos, MethodSymbol m) {
         for (Type sup = syms.annotationType; sup.tag == CLASS; sup = types.supertype(sup)) {
--- a/src/share/classes/com/sun/tools/javac/comp/Flow.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/tools/javac/comp/Flow.java	Mon Apr 25 15:45:49 2011 -0700
@@ -51,7 +51,7 @@
  *  unassignment analysis ensures that no final variable is assigned
  *  more than once.
  *
- *  <p>The second edition of the JLS has a number of problems in the
+ *  <p>The JLS has a number of problems in the
  *  specification of these flow analysis problems. This implementation
  *  attempts to address those issues.
  *
@@ -126,7 +126,7 @@
  *  don't have to worry about the return expression because this
  *  concept is only used for construcrors.
  *
- *  <p>There is no spec in JLS2 for when a variable is definitely
+ *  <p>There is no spec in the JLS for when a variable is definitely
  *  assigned at the end of a constructor, which is needed for final
  *  fields (8.3.1.2).  We implement the rule that V is DA at the end
  *  of the constructor iff it is DA and the end of the body of the
@@ -381,7 +381,7 @@
         if (sym.adr >= firstadr && trackable(sym)) {
             if ((sym.flags() & FINAL) != 0) {
                 if ((sym.flags() & PARAMETER) != 0) {
-                    if ((sym.flags() & DISJUNCTION) != 0) { //multi-catch parameter
+                    if ((sym.flags() & UNION) != 0) { //multi-catch parameter
                         log.error(pos, "multicatch.parameter.may.not.be.assigned",
                                   sym);
                     }
@@ -1003,7 +1003,7 @@
         thrown = List.nil();
         for (List<JCCatch> l = tree.catchers; l.nonEmpty(); l = l.tail) {
             List<JCExpression> subClauses = TreeInfo.isMultiCatch(l.head) ?
-                    ((JCTypeDisjunction)l.head.param.vartype).alternatives :
+                    ((JCTypeUnion)l.head.param.vartype).alternatives :
                     List.of(l.head.param.vartype);
             for (JCExpression ct : subClauses) {
                 caught = chk.incl(ct.type, caught);
@@ -1075,7 +1075,7 @@
             alive = true;
             JCVariableDecl param = l.head.param;
             List<JCExpression> subClauses = TreeInfo.isMultiCatch(l.head) ?
-                    ((JCTypeDisjunction)l.head.param.vartype).alternatives :
+                    ((JCTypeUnion)l.head.param.vartype).alternatives :
                     List.of(l.head.param.vartype);
             List<Type> ctypes = List.nil();
             List<Type> rethrownTypes = chk.diff(thrownInTry, caughtInTry);
--- a/src/share/classes/com/sun/tools/javac/comp/Resolve.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/tools/javac/comp/Resolve.java	Mon Apr 25 15:45:49 2011 -0700
@@ -346,7 +346,7 @@
         if (typeargtypes == null) typeargtypes = List.nil();
         if (mt.tag != FORALL && typeargtypes.nonEmpty()) {
             // This is not a polymorphic method, but typeargs are supplied
-            // which is fine, see JLS3 15.12.2.1
+            // which is fine, see JLS 15.12.2.1
         } else if (mt.tag == FORALL && typeargtypes.nonEmpty()) {
             ForAll pmt = (ForAll) mt;
             if (typeargtypes.length() != pmt.tvars.length())
@@ -770,12 +770,9 @@
                     return ambiguityError(m1, m2);
                 // both abstract, neither overridden; merge throws clause and result type
                 Symbol mostSpecific;
-                Type result2 = mt2.getReturnType();
-                if (mt2.tag == FORALL)
-                    result2 = types.subst(result2, ((ForAll)mt2).tvars, ((ForAll)mt1).tvars);
-                if (types.isSubtype(mt1.getReturnType(), result2))
+                if (types.returnTypeSubstitutable(mt1, mt2))
                     mostSpecific = m1;
-                else if (types.isSubtype(result2, mt1.getReturnType()))
+                else if (types.returnTypeSubstitutable(mt2, mt1))
                     mostSpecific = m2;
                 else {
                     // Theoretically, this can't happen, but it is possible
@@ -1772,7 +1769,7 @@
 
     /**
      * Resolve an appropriate implicit this instance for t's container.
-     * JLS2 8.8.5.1 and 15.9.2
+     * JLS 8.8.5.1 and 15.9.2
      */
     Type resolveImplicitThis(DiagnosticPosition pos, Env<AttrContext> env, Type t) {
         return resolveImplicitThis(pos, env, t, false);
--- a/src/share/classes/com/sun/tools/javac/jvm/Gen.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/tools/javac/jvm/Gen.java	Mon Apr 25 15:45:49 2011 -0700
@@ -283,7 +283,7 @@
         }
 
         // leave alone methods inherited from Object
-        // JLS2 13.1.
+        // JLS 13.1.
         if (sym.owner == syms.objectType.tsym)
             return sym;
 
@@ -1456,7 +1456,7 @@
                       List<Integer> gaps) {
             if (startpc != endpc) {
                 List<JCExpression> subClauses = TreeInfo.isMultiCatch(tree) ?
-                        ((JCTypeDisjunction)tree.param.vartype).alternatives :
+                        ((JCTypeUnion)tree.param.vartype).alternatives :
                         List.of(tree.param.vartype);
                 while (gaps.nonEmpty()) {
                     for (JCExpression subCatch : subClauses) {
--- a/src/share/classes/com/sun/tools/javac/parser/JavacParser.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/tools/javac/parser/JavacParser.java	Mon Apr 25 15:45:49 2011 -0700
@@ -1837,7 +1837,7 @@
         JCModifiers mods = optFinal(Flags.PARAMETER);
         List<JCExpression> catchTypes = catchTypes();
         JCExpression paramType = catchTypes.size() > 1 ?
-                toP(F.at(catchTypes.head.getStartPosition()).TypeDisjunction(catchTypes)) :
+                toP(F.at(catchTypes.head.getStartPosition()).TypeUnion(catchTypes)) :
                 catchTypes.head;
         JCVariableDecl formal = variableDeclaratorId(mods, paramType);
         accept(RPAREN);
--- a/src/share/classes/com/sun/tools/javac/tree/JCTree.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/tools/javac/tree/JCTree.java	Mon Apr 25 15:45:49 2011 -0700
@@ -236,13 +236,13 @@
      */
     public static final int TYPEAPPLY = TYPEARRAY + 1;
 
-    /** Disjunction types, of type TypeDisjunction
+    /** Union types, of type TypeUnion
      */
-    public static final int TYPEDISJUNCTION = TYPEAPPLY + 1;
+    public static final int TYPEUNION = TYPEAPPLY + 1;
 
     /** Formal type parameters, of type TypeParameter.
      */
-    public static final int TYPEPARAMETER = TYPEDISJUNCTION + 1;
+    public static final int TYPEPARAMETER = TYPEUNION + 1;
 
     /** Type argument.
      */
@@ -1881,30 +1881,30 @@
     }
 
     /**
-     * A disjunction type, T1 | T2 | ... Tn (used in multicatch statements)
+     * A union type, T1 | T2 | ... Tn (used in multicatch statements)
      */
-    public static class JCTypeDisjunction extends JCExpression implements DisjunctiveTypeTree {
+    public static class JCTypeUnion extends JCExpression implements UnionTypeTree {
 
         public List<JCExpression> alternatives;
 
-        protected JCTypeDisjunction(List<JCExpression> components) {
+        protected JCTypeUnion(List<JCExpression> components) {
             this.alternatives = components;
         }
         @Override
-        public void accept(Visitor v) { v.visitTypeDisjunction(this); }
+        public void accept(Visitor v) { v.visitTypeUnion(this); }
 
-        public Kind getKind() { return Kind.DISJUNCTIVE_TYPE; }
+        public Kind getKind() { return Kind.UNION_TYPE; }
 
         public List<JCExpression> getTypeAlternatives() {
             return alternatives;
         }
         @Override
         public <R,D> R accept(TreeVisitor<R,D> v, D d) {
-            return v.visitDisjunctiveType(this, d);
+            return v.visitUnionType(this, d);
         }
         @Override
         public int getTag() {
-            return TYPEDISJUNCTION;
+            return TYPEUNION;
         }
     }
 
@@ -2227,7 +2227,7 @@
         public void visitTypeIdent(JCPrimitiveTypeTree that) { visitTree(that); }
         public void visitTypeArray(JCArrayTypeTree that)     { visitTree(that); }
         public void visitTypeApply(JCTypeApply that)         { visitTree(that); }
-        public void visitTypeDisjunction(JCTypeDisjunction that)   { visitTree(that); }
+        public void visitTypeUnion(JCTypeUnion that)         { visitTree(that); }
         public void visitTypeParameter(JCTypeParameter that) { visitTree(that); }
         public void visitWildcard(JCWildcard that)           { visitTree(that); }
         public void visitTypeBoundKind(TypeBoundKind that)   { visitTree(that); }
--- a/src/share/classes/com/sun/tools/javac/tree/Pretty.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/tools/javac/tree/Pretty.java	Mon Apr 25 15:45:49 2011 -0700
@@ -1169,7 +1169,7 @@
         }
     }
 
-    public void visitTypeDisjunction(JCTypeDisjunction tree) {
+    public void visitTypeUnion(JCTypeUnion tree) {
         try {
             printExprs(tree.alternatives, " | ");
         } catch (IOException e) {
--- a/src/share/classes/com/sun/tools/javac/tree/TreeCopier.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/tools/javac/tree/TreeCopier.java	Mon Apr 25 15:45:49 2011 -0700
@@ -338,10 +338,10 @@
         return M.at(t.pos).TypeApply(clazz, arguments);
     }
 
-    public JCTree visitDisjunctiveType(DisjunctiveTypeTree node, P p) {
-        JCTypeDisjunction t = (JCTypeDisjunction) node;
+    public JCTree visitUnionType(UnionTypeTree node, P p) {
+        JCTypeUnion t = (JCTypeUnion) node;
         List<JCExpression> components = copy(t.alternatives, p);
-        return M.at(t.pos).TypeDisjunction(components);
+        return M.at(t.pos).TypeUnion(components);
     }
 
     public JCTree visitArrayType(ArrayTypeTree node, P p) {
--- a/src/share/classes/com/sun/tools/javac/tree/TreeInfo.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/tools/javac/tree/TreeInfo.java	Mon Apr 25 15:45:49 2011 -0700
@@ -119,7 +119,7 @@
     }
 
     public static boolean isMultiCatch(JCCatch catchClause) {
-        return catchClause.param.vartype.getTag() == JCTree.TYPEDISJUNCTION;
+        return catchClause.param.vartype.getTag() == JCTree.TYPEUNION;
     }
 
     /** Is statement an initializer for a synthetic field?
--- a/src/share/classes/com/sun/tools/javac/tree/TreeMaker.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/tools/javac/tree/TreeMaker.java	Mon Apr 25 15:45:49 2011 -0700
@@ -435,8 +435,8 @@
         return tree;
     }
 
-    public JCTypeDisjunction TypeDisjunction(List<JCExpression> components) {
-        JCTypeDisjunction tree = new JCTypeDisjunction(components);
+    public JCTypeUnion TypeUnion(List<JCExpression> components) {
+        JCTypeUnion tree = new JCTypeUnion(components);
         tree.pos = pos;
         return tree;
     }
--- a/src/share/classes/com/sun/tools/javac/tree/TreeScanner.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/tools/javac/tree/TreeScanner.java	Mon Apr 25 15:45:49 2011 -0700
@@ -272,7 +272,7 @@
         scan(tree.arguments);
     }
 
-    public void visitTypeDisjunction(JCTypeDisjunction tree) {
+    public void visitTypeUnion(JCTypeUnion tree) {
         scan(tree.alternatives);
     }
 
--- a/src/share/classes/com/sun/tools/javac/tree/TreeTranslator.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/com/sun/tools/javac/tree/TreeTranslator.java	Mon Apr 25 15:45:49 2011 -0700
@@ -363,7 +363,7 @@
         result = tree;
     }
 
-    public void visitTypeDisjunction(JCTypeDisjunction tree) {
+    public void visitTypeUnion(JCTypeUnion tree) {
         tree.alternatives = translate(tree.alternatives);
         result = tree;
     }
--- a/src/share/classes/javax/annotation/processing/Processor.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/javax/annotation/processing/Processor.java	Mon Apr 25 15:45:49 2011 -0700
@@ -225,12 +225,13 @@
      * </dl>
      * </blockquote>
      *
-     * where <i>TypeName</i> is as defined in the <i>Java Language Specification</i>.
+     * where <i>TypeName</i> is as defined in
+     * <cite>The Java&trade; Language Specification</cite>.
      *
      * @return the names of the annotation types supported by this processor
      * @see javax.annotation.processing.SupportedAnnotationTypes
-     * @jls3 3.8 Identifiers
-     * @jls3 6.5.5 Meaning of Type Names
+     * @jls 3.8 Identifiers
+     * @jls 6.5.5 Meaning of Type Names
      */
     Set<String> getSupportedAnnotationTypes();
 
--- a/src/share/classes/javax/lang/model/SourceVersion.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/javax/lang/model/SourceVersion.java	Mon Apr 25 15:45:49 2011 -0700
@@ -32,10 +32,9 @@
 /**
  * Source versions of the Java&trade; programming language.
  *
- * See <a
- * href="http://java.sun.com/docs/books/jls/">http://java.sun.com/docs/books/jls/</a>
- * for information on editions of <i>The Java&trade; Language
- * Specification</i>, including updates and clarifications.
+ * See the appropriate edition of
+ * <cite>The Java&trade; Language Specification</cite>
+ * for information about a particular source version.
  *
  * <p>Note that additional source version constants will be added to
  * model future releases of the language.
@@ -59,17 +58,16 @@
     /**
      * The original version.
      *
-     * The language described in the first edition of <i>The
-     * Java&trade; Language Specification</i>.
+     * The language described in
+     * <cite>The Java&trade; Language Specification, First Edition</cite>.
      */
     RELEASE_0,
 
     /**
      * The version recognized by the Java Platform 1.1.
      *
-     * The language is {@code RELEASE_0} <a
-     * href="http://java.sun.com/docs/books/jls/first_edition/html/1.1Update.html">augmented</a>
-     * with nested classes.
+     * The language is {@code RELEASE_0} augmented with nested classes as described in the 1.1 update to
+     * <cite>The Java&trade; Language Specification, First Edition</cite>.
      */
     RELEASE_1,
 
@@ -77,8 +75,9 @@
      * The version recognized by the Java 2 Platform, Standard Edition,
      * v 1.2.
      *
-     * The language described in <i>The Java&trade; Language
-     * Specification, Second Edition</i>, which includes the {@code
+     * The language described in
+     * <cite>The Java&trade; Language Specification,
+     * Second Edition</cite>, which includes the {@code
      * strictfp} modifier.
      */
     RELEASE_2,
@@ -103,8 +102,9 @@
      * The version recognized by the Java 2 Platform, Standard
      * Edition 5.0.
      *
-     * The language described in <i>The Java&trade; Language
-     * Specification, Third Edition</i>.  First release to support
+     * The language described in
+     * <cite>The Java&trade; Language Specification,
+     * Third Edition</cite>.  First release to support
      * generics, annotations, autoboxing, var-args, enhanced {@code
      * for} loop, and hexadecimal floating-point literals.
      */
@@ -210,7 +210,7 @@
      * @param name the string to check
      * @return {@code true} if this string is a
      * syntactically valid name, {@code false} otherwise.
-     * @jls3 6.2 Names and Identifiers
+     * @jls 6.2 Names and Identifiers
      */
     public static boolean isName(CharSequence name) {
         String id = name.toString();
--- a/src/share/classes/javax/lang/model/element/Element.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/javax/lang/model/element/Element.java	Mon Apr 25 15:45:49 2011 -0700
@@ -232,8 +232,8 @@
      *
      * @return the enclosed elements, or an empty list if none
      * @see Elements#getAllMembers
-     * @jls3 8.8.9 Default Constructor
-     * @jls3 8.9 Enums
+     * @jls 8.8.9 Default Constructor
+     * @jls 8.9 Enums
      */
     List<? extends Element> getEnclosedElements();
 
--- a/src/share/classes/javax/lang/model/element/Modifier.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/javax/lang/model/element/Modifier.java	Mon Apr 25 15:45:49 2011 -0700
@@ -46,7 +46,7 @@
 
 public enum Modifier {
 
-    // See JLS2 sections 8.1.1, 8.3.1, 8.4.3, 8.8.3, and 9.1.1.
+    // See JLS sections 8.1.1, 8.3.1, 8.4.3, 8.8.3, and 9.1.1.
     // java.lang.reflect.Modifier includes INTERFACE, but that's a VMism.
 
     /** The modifier {@code public} */          PUBLIC,
--- a/src/share/classes/javax/lang/model/element/PackageElement.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/javax/lang/model/element/PackageElement.java	Mon Apr 25 15:45:49 2011 -0700
@@ -43,7 +43,7 @@
      *
      * @return the fully qualified name of this package, or an
      * empty name if this is an unnamed package
-     * @jls3 6.7 Fully Qualified Names and Canonical Names
+     * @jls 6.7 Fully Qualified Names and Canonical Names
      */
     Name getQualifiedName();
 
@@ -63,7 +63,7 @@
      *
      * @return {@code true} is this is an unnamed package and {@code
      * false} otherwise
-     * @jls3 7.4.2 Unnamed Packages
+     * @jls 7.4.2 Unnamed Packages
      */
     boolean isUnnamed();
 
--- a/src/share/classes/javax/lang/model/element/TypeElement.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/javax/lang/model/element/TypeElement.java	Mon Apr 25 15:45:49 2011 -0700
@@ -101,7 +101,7 @@
      * an empty name if none
      *
      * @see Elements#getBinaryName
-     * @jls3 6.7 Fully Qualified Names and Canonical Names
+     * @jls 6.7 Fully Qualified Names and Canonical Names
      */
     Name getQualifiedName();
 
--- a/src/share/classes/javax/lang/model/element/VariableElement.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/javax/lang/model/element/VariableElement.java	Mon Apr 25 15:45:49 2011 -0700
@@ -59,8 +59,8 @@
      * otherwise
      *
      * @see Elements#getConstantExpression(Object)
-     * @jls3 15.28 Constant Expression
-     * @jls3 4.12.4 final Variables
+     * @jls 15.28 Constant Expression
+     * @jls 4.12.4 final Variables
      */
     Object getConstantValue();
 }
--- a/src/share/classes/javax/lang/model/type/DeclaredType.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/javax/lang/model/type/DeclaredType.java	Mon Apr 25 15:45:49 2011 -0700
@@ -79,8 +79,8 @@
      * enclosing instance.
      *
      * @return a type mirror for the enclosing type
-     * @jls3 8.1.3 Inner Classes and Enclosing Instances
-     * @jls3 15.9.2 Determining Enclosing Instances
+     * @jls 8.1.3 Inner Classes and Enclosing Instances
+     * @jls 15.9.2 Determining Enclosing Instances
      */
     TypeMirror getEnclosingType();
 
--- a/src/share/classes/javax/lang/model/type/DisjunctiveType.java	Thu Apr 21 15:33:25 2011 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-/*
- * Copyright (c) 2010, 2011, 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 javax.lang.model.type;
-
-import java.util.List;
-
-/**
- * Represents a disjunctive type.
- *
- * As of the {@link javax.lang.model.SourceVersion#RELEASE_7
- * RELEASE_7} source version, disjunctive types can appear as the type
- * of a multi-catch exception parameter.
- *
- * @since 1.7
- */
-public interface DisjunctiveType extends TypeMirror {
-
-    /**
-     * Return the alternatives comprising this disjunctive type.
-     *
-     * The alternatives are formally referred to as <i>disjuncts</i>.
-     *
-     * @return the alternatives comprising this disjunctive type.
-     */
-    List<? extends TypeMirror> getAlternatives();
-}
--- a/src/share/classes/javax/lang/model/type/TypeKind.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/javax/lang/model/type/TypeKind.java	Mon Apr 25 15:45:49 2011 -0700
@@ -140,11 +140,11 @@
     OTHER,
 
     /**
-      * A disjunctive type.
+      * A union type.
       *
       * @since 1.7
       */
-    DISJUNCTIVE;
+    UNION;
 
     /**
      * Returns {@code true} if this kind corresponds to a primitive
--- a/src/share/classes/javax/lang/model/type/TypeVariable.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/javax/lang/model/type/TypeVariable.java	Mon Apr 25 15:45:49 2011 -0700
@@ -38,8 +38,8 @@
  * type, method, or constructor.
  * A type variable may also be declared implicitly, as by
  * the capture conversion of a wildcard type argument
- * (see chapter 5 of <i>The Java Language Specification, Third
- * Edition</i>).
+ * (see chapter 5 of
+ * <cite>The Java&trade; Language Specification</cite>).
  *
  * @author Joseph D. Darcy
  * @author Scott Seligman
--- a/src/share/classes/javax/lang/model/type/TypeVisitor.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/javax/lang/model/type/TypeVisitor.java	Mon Apr 25 15:45:49 2011 -0700
@@ -164,12 +164,12 @@
     R visitUnknown(TypeMirror t, P p);
 
     /**
-     * Visits a disjunctive type.
+     * Visits a union type.
      *
      * @param t the type to visit
      * @param p a visitor-specified parameter
      * @return  a visitor-specified result
      * @since 1.7
      */
-    R visitDisjunctive(DisjunctiveType t, P p);
+    R visitUnion(UnionType t, P p);
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/share/classes/javax/lang/model/type/UnionType.java	Mon Apr 25 15:45:49 2011 -0700
@@ -0,0 +1,47 @@
+/*
+ * Copyright (c) 2010, 2011, 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 javax.lang.model.type;
+
+import java.util.List;
+
+/**
+ * Represents a union type.
+ *
+ * As of the {@link javax.lang.model.SourceVersion#RELEASE_7
+ * RELEASE_7} source version, union types can appear as the type
+ * of a multi-catch exception parameter.
+ *
+ * @since 1.7
+ */
+public interface UnionType extends TypeMirror {
+
+    /**
+     * Return the alternatives comprising this union type.
+     *
+     * @return the alternatives comprising this union type.
+     */
+    List<? extends TypeMirror> getAlternatives();
+}
--- a/src/share/classes/javax/lang/model/util/AbstractTypeVisitor6.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/javax/lang/model/util/AbstractTypeVisitor6.java	Mon Apr 25 15:45:49 2011 -0700
@@ -96,7 +96,7 @@
     }
 
     /**
-     * Visits a {@code DisjunctiveType} element by calling {@code
+     * Visits a {@code UnionType} element by calling {@code
      * visitUnknown}.
 
      * @param t  {@inheritDoc}
@@ -105,7 +105,7 @@
      *
      * @since 1.7
      */
-    public R visitDisjunctive(DisjunctiveType t, P p) {
+    public R visitUnion(UnionType t, P p) {
         return visitUnknown(t, p);
     }
 
--- a/src/share/classes/javax/lang/model/util/AbstractTypeVisitor7.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/javax/lang/model/util/AbstractTypeVisitor7.java	Mon Apr 25 15:45:49 2011 -0700
@@ -67,11 +67,11 @@
     }
 
     /**
-     * Visits a {@code DisjunctiveType} in a manner defined by a subclass.
+     * Visits a {@code UnionType} in a manner defined by a subclass.
      *
      * @param t  {@inheritDoc}
      * @param p  {@inheritDoc}
      * @return the result of the visit as defined by a subclass
      */
-    public abstract R visitDisjunctive(DisjunctiveType t, P p);
+    public abstract R visitUnion(UnionType t, P p);
 }
--- a/src/share/classes/javax/lang/model/util/Elements.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/javax/lang/model/util/Elements.java	Mon Apr 25 15:45:49 2011 -0700
@@ -95,7 +95,7 @@
      * @param e  the element being examined
      * @return the documentation comment of the element, or {@code null}
      *          if there is none
-     * @jls3 3.6 White Space
+     * @jls 3.6 White Space
      */
     String getDocComment(Element e);
 
@@ -114,7 +114,7 @@
      * @return the binary name
      *
      * @see TypeElement#getQualifiedName
-     * @jls3 13.1 The Form of a Binary
+     * @jls 13.1 The Form of a Binary
      */
     Name getBinaryName(TypeElement type);
 
@@ -210,8 +210,8 @@
      * @param type   the type of which the first method is a member
      * @return {@code true} if and only if the first method overrides
      *          the second
-     * @jls3 8.4.8 Inheritance, Overriding, and Hiding
-     * @jls3 9.4.1 Inheritance and Overriding
+     * @jls 8.4.8 Inheritance, Overriding, and Hiding
+     * @jls 9.4.1 Inheritance and Overriding
      */
     boolean overrides(ExecutableElement overrider, ExecutableElement overridden,
                       TypeElement type);
--- a/src/share/classes/javax/lang/model/util/SimpleTypeVisitor7.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/javax/lang/model/util/SimpleTypeVisitor7.java	Mon Apr 25 15:45:49 2011 -0700
@@ -91,7 +91,7 @@
     }
 
     /**
-     * This implementation visits a {@code DisjunctiveType} by calling
+     * This implementation visits a {@code UnionType} by calling
      * {@code defaultAction}.
      *
      * @param t  {@inheritDoc}
@@ -99,7 +99,7 @@
      * @return the result of {@code defaultAction}
      */
     @Override
-    public R visitDisjunctive(DisjunctiveType t, P p) {
+    public R visitUnion(UnionType t, P p) {
         return defaultAction(t, p);
     }
 }
--- a/src/share/classes/javax/lang/model/util/TypeKindVisitor7.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/javax/lang/model/util/TypeKindVisitor7.java	Mon Apr 25 15:45:49 2011 -0700
@@ -94,7 +94,7 @@
     }
 
     /**
-     * This implementation visits a {@code DisjunctiveType} by calling
+     * This implementation visits a {@code UnionType} by calling
      * {@code defaultAction}.
      *
      * @param t  {@inheritDoc}
@@ -102,7 +102,7 @@
      * @return the result of {@code defaultAction}
      */
     @Override
-    public R visitDisjunctive(DisjunctiveType t, P p) {
+    public R visitUnion(UnionType t, P p) {
         return defaultAction(t, p);
     }
 }
--- a/src/share/classes/javax/lang/model/util/Types.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/javax/lang/model/util/Types.java	Mon Apr 25 15:45:49 2011 -0700
@@ -81,7 +81,7 @@
      * @return {@code true} if and only if the first type is a subtype
      *          of the second
      * @throws IllegalArgumentException if given an executable or package type
-     * @jls3 4.10 Subtyping
+     * @jls 4.10 Subtyping
      */
     boolean isSubtype(TypeMirror t1, TypeMirror t2);
 
@@ -93,7 +93,7 @@
      * @return {@code true} if and only if the first type is assignable
      *          to the second
      * @throws IllegalArgumentException if given an executable or package type
-     * @jls3 5.2 Assignment Conversion
+     * @jls 5.2 Assignment Conversion
      */
     boolean isAssignable(TypeMirror t1, TypeMirror t2);
 
@@ -104,7 +104,7 @@
      * @param t2  the second type
      * @return {@code true} if and only if the first type contains the second
      * @throws IllegalArgumentException if given an executable or package type
-     * @jls3 4.5.1.1 Type Argument Containment and Equivalence
+     * @jls 4.5.1.1 Type Argument Containment and Equivalence
      */
     boolean contains(TypeMirror t1, TypeMirror t2);
 
@@ -116,7 +116,7 @@
      * @param m2  the second method
      * @return {@code true} if and only if the first signature is a
      *          subsignature of the second
-     * @jls3 8.4.2 Method Signature
+     * @jls 8.4.2 Method Signature
      */
     boolean isSubsignature(ExecutableType m1, ExecutableType m2);
 
@@ -136,7 +136,7 @@
      * @param t  the type to be erased
      * @return the erasure of the given type
      * @throws IllegalArgumentException if given a package type
-     * @jls3 4.6 Type Erasure
+     * @jls 4.6 Type Erasure
      */
     TypeMirror erasure(TypeMirror t);
 
@@ -146,7 +146,7 @@
      *
      * @param p  the primitive type to be converted
      * @return the class of a boxed value of type {@code p}
-     * @jls3 5.1.7 Boxing Conversion
+     * @jls 5.1.7 Boxing Conversion
      */
     TypeElement boxedClass(PrimitiveType p);
 
@@ -158,7 +158,7 @@
      * @return the type of an unboxed value of type {@code t}
      * @throws IllegalArgumentException if the given type has no
      *          unboxing conversion
-     * @jls3 5.1.8 Unboxing Conversion
+     * @jls 5.1.8 Unboxing Conversion
      */
     PrimitiveType unboxedType(TypeMirror t);
 
@@ -168,7 +168,7 @@
      * @param t  the type to be converted
      * @return the result of applying capture conversion
      * @throws IllegalArgumentException if given an executable or package type
-     * @jls3 5.1.10 Capture Conversion
+     * @jls 5.1.10 Capture Conversion
      */
     TypeMirror capture(TypeMirror t);
 
--- a/src/share/classes/javax/tools/JavaCompiler.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/javax/tools/JavaCompiler.java	Mon Apr 25 15:45:49 2011 -0700
@@ -58,9 +58,11 @@
  * standard file manager such as the one returned by {@linkplain
  * #getStandardFileManager getStandardFileManager}.
  *
- * <p>An instance implementing this interface must conform to the Java
- * Language Specification and generate class files conforming to the
- * Java Virtual Machine specification.  The versions of these
+ * <p>An instance implementing this interface must conform to
+ * <cite>The Java&trade; Language Specification</cite>
+ * and generate class files conforming to
+ * <cite>The Java&trade; Virtual Machine Specification</cite>.
+ * The versions of these
  * specifications are defined in the {@linkplain Tool} interface.
  *
  * Additionally, an instance of this interface supporting {@link
--- a/src/share/classes/javax/tools/JavaFileManager.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/javax/tools/JavaFileManager.java	Mon Apr 25 15:45:49 2011 -0700
@@ -49,17 +49,16 @@
  * names must be given in the Java Virtual Machine internal form of
  * fully qualified class and interface names.  For convenience '.'
  * and '/' are interchangeable.  The internal form is defined in
- * chapter four of the
- * <a href="http://java.sun.com/docs/books/vmspec/2nd-edition/jvms-maintenance.html">Java
- * Virtual Machine Specification</a>.
+ * chapter four of
+ * <cite>The Java&trade; Virtual Machine Specification</cite>.
 
  * <blockquote><p>
  *   <i>Discussion:</i> this means that the names
  *   "java/lang.package-info", "java/lang/package-info",
  *   "java.lang.package-info", are valid and equivalent.  Compare to
- *   binary name as defined in the
- *   <a href="http://java.sun.com/docs/books/jls/">Java Language
- *   Specification (JLS)</a> section 13.1 "The Form of a Binary".
+ *   binary name as defined in
+ *   <cite>The Java&trade; Language Specification</cite>,
+ *   section 13.1 "The Form of a Binary".
  * </p></blockquote>
  *
  * <p>The case of names is significant.  All names should be treated
@@ -173,7 +172,8 @@
 
     /**
      * Infers a binary name of a file object based on a location.  The
-     * binary name returned might not be a valid JLS binary name.
+     * binary name returned might not be a valid binary name according to
+     * <cite>The Java&trade; Language Specification</cite>.
      *
      * @param location a location
      * @param file a file object
--- a/src/share/classes/javax/tools/JavaFileObject.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/classes/javax/tools/JavaFileObject.java	Mon Apr 25 15:45:49 2011 -0700
@@ -99,9 +99,9 @@
     /**
      * Checks if this file object is compatible with the specified
      * simple name and kind.  A simple name is a single identifier
-     * (not qualified) as defined in the <a
-     * href="http://java.sun.com/docs/books/jls/">Java Language
-     * Specification</a> 3rd ed., section 6.2 "Names and Identifiers".
+     * (not qualified) as defined in
+     * <cite>The Java&trade; Language Specification</cite>,
+     * section 6.2 "Names and Identifiers".
      *
      * @param simpleName a simple name of a class
      * @param kind a kind
--- a/src/share/sample/javac/processing/src/CheckNamesProcessor.java	Thu Apr 21 15:33:25 2011 -0700
+++ b/src/share/sample/javac/processing/src/CheckNamesProcessor.java	Mon Apr 25 15:45:49 2011 -0700
@@ -152,7 +152,8 @@
      * Provide checks that an element and its enclosed elements follow
      * the usual naming conventions.
      *
-     * <p> Conventions from JLSv3 section 6.8:
+     * <p> Conventions from section 6.8 of
+     *     <cite>The Java&trade; Language Specification</cite>
      *
      * <ul>
      * <li> Classes and interfaces: camel case, first letter is uppercase
@@ -163,7 +164,8 @@
      * <li> non-final: camel case, initial lowercase
      * <li> constant: uppercase separated by underscores
      * </ul>
-     * <li> Packages: checks left as exercise for the reader, see JLSv3 section 7.7
+     * <li> Packages: checks left as exercise for the reader, see section 7.7 of
+     * <cite>The Java&trade; Language Specification</cite>.
      * </ul>
      */
     private static class NameChecker {
@@ -286,7 +288,7 @@
             public Void visitPackage(PackageElement e, Void p) {
                 /*
                  * Implementing the checks of package names is left
-                 * as an exercise for the reader, see JLSv3 section
+                 * as an exercise for the reader, see JLS section
                  * 7.7 for conventions.
                  */
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/tools/javac/generics/7034019/T7034019a.java	Mon Apr 25 15:45:49 2011 -0700
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2011, 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 7034019
+ * @summary ClassCastException in javac with conjunction types
+ *
+ * @compile T7034019a.java
+ */
+
+class T7034019a {
+    interface A {
+        abstract <T> void foo();
+    }
+
+    interface B {
+        abstract void foo();
+    }
+
+    static class C<T extends A & B> {
+        void test(T x) {
+            x.foo();
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/tools/javac/generics/7034019/T7034019b.java	Mon Apr 25 15:45:49 2011 -0700
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2011, 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 7034019
+ * @summary ClassCastException in javac with conjunction types
+ *
+ * @compile T7034019b.java
+ */
+
+class T7034019a {
+    interface A {
+        <T> void foo();
+    }
+
+    interface B {
+        void foo();
+    }
+
+    static abstract class E implements A,B {
+        void test() {
+            foo();
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/tools/javac/generics/7034019/T7034019c.java	Mon Apr 25 15:45:49 2011 -0700
@@ -0,0 +1,23 @@
+/*
+ * @test /nodynamiccopyright/
+ * @bug 7034019
+ * @summary ClassCastException in javac with conjunction types
+ *
+ * @compile/fail/ref=T7034019c.out -XDrawDiagnostics T7034019c.java
+ */
+
+class T7034019c {
+    interface A {
+        abstract <T extends Number> T foo();
+    }
+
+    interface B {
+        abstract <T> T foo();
+    }
+
+    static class C<T extends A & B> {
+        void test(T x) {
+            x.foo();
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/tools/javac/generics/7034019/T7034019c.out	Mon Apr 25 15:45:49 2011 -0700
@@ -0,0 +1,3 @@
+T7034019c.java:18:20: compiler.err.name.clash.same.erasure.no.override: <T>foo(), T7034019c.B, <T>foo(), T7034019c.A
+T7034019c.java:20:14: compiler.err.ref.ambiguous: foo, kindname.method, <T>foo(), T7034019c.B, kindname.method, <T>foo(), T7034019c.A
+2 errors
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/tools/javac/generics/7034019/T7034019d.java	Mon Apr 25 15:45:49 2011 -0700
@@ -0,0 +1,23 @@
+/*
+ * @test /nodynamiccopyright/
+ * @bug 7034019
+ * @summary ClassCastException in javac with conjunction types
+ *
+ * @compile/fail/ref=T7034019d.out -XDrawDiagnostics T7034019d.java
+ */
+
+class T7034019c {
+    interface A {
+        abstract <T extends Number> T foo();
+    }
+
+    interface B {
+        abstract <T> T foo();
+    }
+
+    static abstract class E implements A,B {
+        void test() {
+            foo();
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/tools/javac/generics/7034019/T7034019d.out	Mon Apr 25 15:45:49 2011 -0700
@@ -0,0 +1,3 @@
+T7034019d.java:18:21: compiler.err.name.clash.same.erasure.no.override: <T>foo(), T7034019c.B, <T>foo(), T7034019c.A
+T7034019d.java:20:13: compiler.err.ref.ambiguous: foo, kindname.method, <T>foo(), T7034019c.B, kindname.method, <T>foo(), T7034019c.A
+2 errors
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/tools/javac/generics/7034511/T7034511a.java	Mon Apr 25 15:45:49 2011 -0700
@@ -0,0 +1,21 @@
+/*
+ * @test /nodynamiccopyright/
+ * @bug     7034511
+ * @summary Loophole in typesafety
+ * @compile/fail/ref=T7034511a.out -XDrawDiagnostics T7034511a.java
+ */
+
+class T7034511a {
+
+    interface A<T> {
+        void foo(T x);
+    }
+
+    interface B<T> extends A<T[]> { }
+
+    static abstract class C implements B<Integer> {
+        <T extends B<?>> void test(T x, String[] ss) {
+            x.foo(ss);
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/tools/javac/generics/7034511/T7034511a.out	Mon Apr 25 15:45:49 2011 -0700
@@ -0,0 +1,2 @@
+T7034511a.java:18:14: compiler.err.cant.apply.symbol.1: kindname.method, foo, compiler.misc.type.captureof: 1, ?[], java.lang.String[], kindname.interface, T7034511a.A<T>, (compiler.misc.no.conforming.assignment.exists: java.lang.String[], compiler.misc.type.captureof: 1, ?[])
+1 error
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/tools/javac/generics/7034511/T7034511b.java	Mon Apr 25 15:45:49 2011 -0700
@@ -0,0 +1,16 @@
+/*
+ * @test /nodynamiccopyright/
+ * @bug     7034511
+ * @summary Loophole in typesafety
+ * @compile/fail/ref=T7034511b.out -XDrawDiagnostics T7034511b.java
+ */
+
+class T7034511b {
+    static class MyList<E> {
+        E toArray(E[] e) { return null; }
+    }
+
+    void test(MyList<?> ml, Object o[]) {
+        ml.toArray(o);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/tools/javac/generics/7034511/T7034511b.out	Mon Apr 25 15:45:49 2011 -0700
@@ -0,0 +1,2 @@
+T7034511b.java:14:11: compiler.err.cant.apply.symbol.1: kindname.method, toArray, compiler.misc.type.captureof: 1, ?[], java.lang.Object[], kindname.class, T7034511b.MyList<E>, (compiler.misc.no.conforming.assignment.exists: java.lang.Object[], compiler.misc.type.captureof: 1, ?[])
+1 error