changeset 936:c3dc67484a46

Merge
author briangoetz
date Thu, 10 Mar 2011 18:42:31 -0500
parents 4f78365a8044 1623ce0ec047
children e4d6738ea2da
files src/share/classes/com/sun/tools/classfile/ExtendedAnnotation.java src/share/classes/com/sun/tools/classfile/RuntimeInvisibleTypeAnnotations_attribute.java src/share/classes/com/sun/tools/classfile/RuntimeTypeAnnotations_attribute.java src/share/classes/com/sun/tools/classfile/RuntimeVisibleTypeAnnotations_attribute.java src/share/classes/com/sun/tools/javac/code/TypeAnnotations.java src/share/classes/com/sun/tools/javap/TypeAnnotationWriter.java test/tools/javac/TryWithResources/TwrInference.java test/tools/javac/TryWithResources/TwrIntersection.java test/tools/javac/TryWithResources/TwrIntersection02.java test/tools/javac/TryWithResources/TwrIntersection02.out test/tools/javac/diags/examples/EnumConstRequired.java test/tools/javac/diags/examples/TypeParameterOnPolymorphicSignature.java test/tools/javac/meth/InvokeDyn.java test/tools/javac/meth/InvokeDynTrans.java test/tools/javac/meth/InvokeDynTrans.out test/tools/javac/meth/InvokeMHTrans.java test/tools/javac/meth/InvokeMHTrans.out
diffstat 314 files changed, 9498 insertions(+), 7041 deletions(-) [+]
line wrap: on
line diff
--- a/.hgtags	Wed Feb 23 16:39:34 2011 -0500
+++ b/.hgtags	Thu Mar 10 18:42:31 2011 -0500
@@ -98,3 +98,11 @@
 1bf969e9792f977a8593496681539840a54fe644 jdk7-b121
 11e7b4c0476e4d6085d8d28c4aa2833d46714a2a jdk7-b122
 a3b5b531542a372f30e014b1543a619a15a90780 jdk7-b123
+4868a36f6fd8972505c466013813eeb28f0482ea jdk7-b124
+4b0560c72b529d4b952924b2da94d8436af79d05 jdk7-b125
+438a8ad60f7ae7aa897663148fd43fe85ef05e5b jdk7-b126
+1e6094c33187f6c3dca55ced3701ee1f9d73a77d jdk7-b127
+d7225b476a5d1aebffb8827e7c72ba2e1651f4e7 jdk7-b128
+1383d1ee8b5db13d5df9523d1760df17b9d228d4 jdk7-b129
+7a98db8cbfce77a619057aa4fdde69d2a06d4101 jdk7-b130
+67221b8643b478c4fceacc89240db876455aae76 jdk7-b131
--- a/LICENSE	Wed Feb 23 16:39:34 2011 -0500
+++ b/LICENSE	Thu Mar 10 18:42:31 2011 -0500
@@ -325,11 +325,11 @@
 
 "CLASSPATH" EXCEPTION TO THE GPL
 
-Certain source files distributed by Sun Microsystems, Inc.  are subject to
-the following clarification and special exception to the GPL, but only where
-Sun has expressly included in the particular source file's header the words
-"Sun designates this particular file as subject to the "Classpath" exception
-as provided by Sun in the LICENSE file that accompanied this code."
+Certain source files distributed by Oracle America and/or its affiliates are
+subject to the following clarification and special exception to the GPL, but
+only where Oracle has expressly included in the particular source file's header
+the words "Oracle designates this particular file as subject to the "Classpath"
+exception as provided by Oracle in the LICENSE file that accompanied this code."
 
     Linking this library statically or dynamically with other modules is making
     a combined work based on this library.  Thus, the terms and conditions of
--- a/make/Makefile	Wed Feb 23 16:39:34 2011 -0500
+++ b/make/Makefile	Thu Mar 10 18:42:31 2011 -0500
@@ -187,7 +187,7 @@
 clobber: clean
 
 # All ant targets of interest
-ANT_TARGETS = build clean sanity post-sanity diagnostics # for now
+ANT_TARGETS = build clean sanity post-sanity diagnostics build-all-tools  # for now
 
 # Create diagnostics log (careful, ant 1.8.0 -diagnostics always does an exit 1)
 $(OUTPUTDIR)/build/ant-diagnostics.log:
--- a/make/build.xml	Wed Feb 23 16:39:34 2011 -0500
+++ b/make/build.xml	Thu Mar 10 18:42:31 2011 -0500
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2007, 2009, Oracle and/or its affiliates. All rights reserved.
+ Copyright (c) 2007, 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
@@ -331,7 +331,7 @@
             executable="${dist.bin.dir}/javac"
             srcdir="test/tools/javac/diags"
             destdir="${build.dir}/diag-examples/classes"
-            includes="Example.java,FileManager.java,HTMLWriter.java,RunExamples.java"
+            includes="ArgTypeCompilerFactory.java,Example.java,FileManager.java,HTMLWriter.java,RunExamples.java"
             sourcepath=""
             classpath="${dist.lib.dir}/javac.jar"
             includeAntRuntime="no"
@@ -352,6 +352,45 @@
         </java>
     </target>
 
+    <!-- a patching facility to speed up incorporating the langtools' classfiles
+         into a jdk of your choice. Either target.java.home or patch.jdk can be
+         set on the command line; setting target.java.home has the advantage of
+         patching the jdk used for jtreg and other tests.
+    -->
+    <target name="patch" depends="build-all-classes">
+        <condition property="patch.jdk" value="${target.java.home}">
+            <available file="${target.java.home}" type="dir"/>
+        </condition>
+        <fail message="patch.jdk or target.java.home is not set, please set target.java.home, or patch.jdk for an alternate jdk image to patch">
+            <condition>
+                <not>
+                    <isset property="patch.jdk"/>
+                </not>
+            </condition>
+        </fail>
+        <property name="patch.tools.jar" location="${patch.jdk}/lib/tools.jar"/>
+        <property name="patch.rt.jar" location="${patch.jdk}/jre/lib/rt.jar"/>
+        <fail message="patch.jdk or target.java.home must point to a valid jdk image: missing tools.jar">
+            <condition>
+                <not>
+                    <available file="${patch.tools.jar}" type="file"/>
+                </not>
+            </condition>
+        </fail>
+        <fail message="patch.jdk or target.java.home must point to a valid jdk image: missing rt.jar">
+            <condition>
+                <not>
+                    <available file="${patch.rt.jar}" type="file"/>
+                </not>
+            </condition>
+        </fail>
+        <zip zipfile="${patch.tools.jar}" update="true">
+            <zipfileset dir="${build.classes.dir}" includes="com/**"/>
+        </zip>
+        <zip zipfile="${patch.rt.jar}" update="true">
+            <zipfileset dir="${build.classes.dir}" includes="javax/**"/>
+        </zip>
+    </target>
 
     <!--
     **** Debugging/diagnostic targets.
--- a/src/share/bin/launcher.sh-template	Wed Feb 23 16:39:34 2011 -0500
+++ b/src/share/bin/launcher.sh-template	Thu Mar 10 18:42:31 2011 -0500
@@ -26,6 +26,12 @@
 #
 
 mydir="`dirname $0`"
+case `uname -s` in
+    CYGWIN*)
+      mydir=`cygpath -m $mydir`
+      ;;
+esac
+
 mylib="`dirname $mydir`"/lib
 
 # By default, put the jar file and its dependencies on the bootclasspath.
--- a/src/share/classes/com/sun/runtime/ProxyHelper.java	Wed Feb 23 16:39:34 2011 -0500
+++ b/src/share/classes/com/sun/runtime/ProxyHelper.java	Thu Mar 10 18:42:31 2011 -0500
@@ -58,7 +58,7 @@
                     else {
                         args1 = args;
                     }
-                    return mh.invokeVarargs(args1);
+                    return mh.invokeWithArguments(args1);
                 }
             }
 
--- a/src/share/classes/com/sun/source/tree/MethodTree.java	Wed Feb 23 16:39:34 2011 -0500
+++ b/src/share/classes/com/sun/source/tree/MethodTree.java	Thu Mar 10 18:42:31 2011 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 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
@@ -53,7 +53,6 @@
     Tree getReturnType();
     List<? extends TypeParameterTree> getTypeParameters();
     List<? extends VariableTree> getParameters();
-//308    List<? extends AnnotationTree> getReceiverAnnotations();
     List<? extends ExpressionTree> getThrows();
     BlockTree getBody();
     Tree getDefaultValue(); // for annotation types
--- a/src/share/classes/com/sun/source/tree/Tree.java	Wed Feb 23 16:39:34 2011 -0500
+++ b/src/share/classes/com/sun/source/tree/Tree.java	Thu Mar 10 18:42:31 2011 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 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
@@ -46,8 +46,6 @@
      */
     public enum Kind {
 
-//308        ANNOTATED_TYPE(AnnotatedTypeTree.class),
-
         /**
          * Used for instances of {@link AnnotationTree}.
          */
--- a/src/share/classes/com/sun/source/tree/TreeVisitor.java	Wed Feb 23 16:39:34 2011 -0500
+++ b/src/share/classes/com/sun/source/tree/TreeVisitor.java	Thu Mar 10 18:42:31 2011 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 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
@@ -57,7 +57,6 @@
  * @since 1.6
  */
 public interface TreeVisitor<R,P> {
-//308    R visitAnnotatedType(AnnotatedTypeTree node, P p);
     R visitAnnotation(AnnotationTree node, P p);
     R visitMethodInvocation(MethodInvocationTree node, P p);
     R visitAssert(AssertTree node, P p);
--- a/src/share/classes/com/sun/source/tree/TypeParameterTree.java	Wed Feb 23 16:39:34 2011 -0500
+++ b/src/share/classes/com/sun/source/tree/TypeParameterTree.java	Thu Mar 10 18:42:31 2011 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 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
@@ -47,5 +47,4 @@
 public interface TypeParameterTree extends Tree {
     Name getName();
     List<? extends Tree> getBounds();
-//308    List<? extends AnnotationTree> getAnnotations();
 }
--- a/src/share/classes/com/sun/source/util/SimpleTreeVisitor.java	Wed Feb 23 16:39:34 2011 -0500
+++ b/src/share/classes/com/sun/source/util/SimpleTreeVisitor.java	Thu Mar 10 18:42:31 2011 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 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
@@ -260,10 +260,6 @@
         return defaultAction(node, p);
     }
 
-//308    public R visitAnnotatedType(AnnotatedTypeTree node, P p) {
-//308        return defaultAction(node, p);
-//308    }
-
     public R visitErroneous(ErroneousTree node, P p) {
         return defaultAction(node, p);
     }
--- a/src/share/classes/com/sun/source/util/TreeScanner.java	Wed Feb 23 16:39:34 2011 -0500
+++ b/src/share/classes/com/sun/source/util/TreeScanner.java	Thu Mar 10 18:42:31 2011 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 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
@@ -138,7 +138,6 @@
         r = scanAndReduce(node.getReturnType(), p, r);
         r = scanAndReduce(node.getTypeParameters(), p, r);
         r = scanAndReduce(node.getParameters(), p, r);
-//308        r = scanAndReduce(node.getReceiverAnnotations(), p, r);
         r = scanAndReduce(node.getThrows(), p, r);
         r = scanAndReduce(node.getBody(), p, r);
         r = scanAndReduce(node.getDefaultValue(), p, r);
@@ -379,7 +378,6 @@
 
     public R visitTypeParameter(TypeParameterTree node, P p) {
         R r = scan(node.getBounds(), p);
-//308        R r = scanAndReduce(node.getAnnotations(), p, r);
         return r;
     }
 
@@ -397,12 +395,6 @@
         return r;
     }
 
-//308   public R visitAnnotatedType(AnnotatedTypeTree node, P p) {
-//308       R r = scan(node.getAnnotations(), p);
-//308       r = scanAndReduce(node.getUnderlyingType(), p, r);
-//308       return r;
-//308   }
-
     public R visitOther(Tree node, P p) {
         return null;
     }
--- a/src/share/classes/com/sun/tools/apt/resources/apt_ja.properties	Wed Feb 23 16:39:34 2011 -0500
+++ b/src/share/classes/com/sun/tools/apt/resources/apt_ja.properties	Thu Mar 10 18:42:31 2011 -0500
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2006, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -23,34 +23,34 @@
 # questions.
 #
 
-apt.msg.usage.header=\u4f7f\u7528\u6cd5: {0} <apt \u304a\u3088\u3073 javac \u30aa\u30d7\u30b7\u30e7\u30f3> <\u30bd\u30fc\u30b9\u30d5\u30a1\u30a4\u30eb>\n\u6b21\u306e apt \u30aa\u30d7\u30b7\u30e7\u30f3\u304c\u3042\u308a\u307e\u3059:
+apt.msg.usage.header=\u4F7F\u7528\u65B9\u6CD5: {0} <apt and javac options> <source files>\n\u6B21\u306Eapt\u30AA\u30D7\u30B7\u30E7\u30F3\u304C\u3042\u308A\u307E\u3059:
 
-apt.msg.usage.footer=javac \u30aa\u30d7\u30b7\u30e7\u30f3\u306b\u3064\u3044\u3066\u306f\u3001javac -help \u3092\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+apt.msg.usage.footer=javac\u30AA\u30D7\u30B7\u30E7\u30F3\u306B\u3064\u3044\u3066\u306F\u3001javac -help\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\u3002
 
-apt.msg.usage.nonstandard.footer=\u3053\u308c\u3089\u306f\u975e\u6a19\u6e96\u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u3042\u308a\u4e88\u544a\u306a\u3057\u306b\u5909\u66f4\u3055\u308c\u308b\u3053\u3068\u304c\u3042\u308a\u307e\u3059\u3002\n\u8868\u793a\u5f62\u5f0f\u306f\u540c\u3058\u3067\u3059\u3002
+apt.msg.usage.nonstandard.footer=\u3053\u308C\u3089\u306F\u975E\u6A19\u6E96\u30AA\u30D7\u30B7\u30E7\u30F3\u3067\u3042\u308A\u3001\u8868\u793A\u5F62\u5F0F\u4E88\u544A\u306A\u3057\u306B\u5909\u66F4\u3055\u308C\u308B\n\u3053\u3068\u304C\u3042\u308A\u307E\u3059\u3002
 
-apt.msg.bug=\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067\u4f8b\u5916\u304c\u767a\u751f\u3057\u307e\u3057\u305f ({0})\u3002Bug Parade \u306b\u540c\u3058\u30d0\u30b0\u304c\u767b\u9332\u3055\u308c\u3066\u3044\u306a\u3044\u3053\u3068\u3092\u3054\u78ba\u8a8d\u306e\u4e0a\u3001Java Developer Connection (http://java.sun.com/webapps/bugreport) \u306b\u3066\u30d0\u30b0\u306e\u767b\u9332\u3092\u304a\u9858\u3044\u3044\u305f\u3057\u307e\u3059\u3002 \u30ec\u30dd\u30fc\u30c8\u306b\u306f\u3001\u305d\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u3068\u4e0b\u8a18\u306e\u8a3a\u65ad\u5185\u5bb9\u3092\u542b\u3081\u3066\u304f\u3060\u3055\u3044\u3002\u3054\u5354\u529b\u3042\u308a\u304c\u3068\u3046\u3054\u3056\u3044\u307e\u3059\u3002
+apt.msg.bug=\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u3067\u4F8B\u5916\u304C\u767A\u751F\u3057\u307E\u3057\u305F({0})\u3002Bug Parade\u306B\u540C\u3058\u30D0\u30B0\u304C\u767B\u9332\u3055\u308C\u3066\u3044\u306A\u3044\u3053\u3068\u3092\u3054\u78BA\u8A8D\u306E\u4E0A\u3001Java Developer Connection(http://java.sun.com/webapps/bugreport)\u3067\u30D0\u30B0\u306E\u767B\u9332\u3092\u304A\u9858\u3044\u3044\u305F\u3057\u307E\u3059\u3002\u30EC\u30DD\u30FC\u30C8\u306B\u306F\u3001\u305D\u306E\u30D7\u30ED\u30B0\u30E9\u30E0\u3068\u4E0B\u8A18\u306E\u8A3A\u65AD\u5185\u5BB9\u3092\u542B\u3081\u3066\u304F\u3060\u3055\u3044\u3002\u3054\u5354\u529B\u3042\u308A\u304C\u3068\u3046\u3054\u3056\u3044\u307E\u3059\u3002
 
 ## apt options
 
-apt.opt.A=\u6ce8\u91c8\u30d7\u30ed\u30bb\u30c3\u30b5\u306b\u6e21\u3055\u308c\u308b\u30aa\u30d7\u30b7\u30e7\u30f3
+apt.opt.A=\u6CE8\u91C8\u30D7\u30ED\u30BB\u30C3\u30B5\u306B\u6E21\u3055\u308C\u308B\u30AA\u30D7\u30B7\u30E7\u30F3
 apt.opt.arg.class=<class>
-apt.opt.arg.directory=\u30d7\u30ed\u30bb\u30c3\u30b5\u304a\u3088\u3073 javac \u304c\u751f\u6210\u3057\u305f\u30af\u30e9\u30b9\u30d5\u30a1\u30a4\u30eb\u3092\u7f6e\u304f\u4f4d\u7f6e\u3092\u6307\u5b9a\u3059\u308b
-apt.opt.classpath=\u30e6\u30fc\u30b6\u30af\u30e9\u30b9\u30d5\u30a1\u30a4\u30eb\u304a\u3088\u3073\u6ce8\u91c8\u30d7\u30ed\u30bb\u30c3\u30b5\u30d5\u30a1\u30af\u30c8\u30ea\u3092\u691c\u7d22\u3059\u308b\u4f4d\u7f6e\u3092\u6307\u5b9a\u3059\u308b
-apt.opt.d=\u30d7\u30ed\u30bb\u30c3\u30b5\u304a\u3088\u3073 javac \u304c\u751f\u6210\u3057\u305f\u30af\u30e9\u30b9\u30d5\u30a1\u30a4\u30eb\u3092\u7f6e\u304f\u4f4d\u7f6e\u3092\u6307\u5b9a\u3059\u308b
-apt.opt.factory=\u4f7f\u7528\u3059\u308b AnnotationProcessorFactory \u306e\u540d\u524d\u3002\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u691c\u51fa\u51e6\u7406\u3092\u30d0\u30a4\u30d1\u30b9
-apt.opt.factorypath=\u6ce8\u91c8\u30d7\u30ed\u30bb\u30c3\u30b5\u30d5\u30a1\u30af\u30c8\u30ea\u306e\u691c\u7d22\u5834\u6240\u3092\u6307\u5b9a\u3059\u308b
-apt.opt.s=\u30d7\u30ed\u30bb\u30c3\u30b5\u304c\u751f\u6210\u3057\u305f\u30bd\u30fc\u30b9\u30d5\u30a1\u30a4\u30eb\u3092\u7f6e\u304f\u4f4d\u7f6e\u3092\u6307\u5b9a\u3059\u308b
-apt.opt.help=\u6a19\u6e96\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u6982\u8981\u3092\u51fa\u529b\u3059\u308b\u3002\u8a73\u7d30\u30aa\u30d7\u30b7\u30e7\u30f3\u306b\u3064\u3044\u3066\u306f javac -help \u3092\u53c2\u7167
-apt.opt.print=\u6307\u5b9a\u3057\u305f\u578b\u306e\u30c6\u30ad\u30b9\u30c8\u8868\u793a\u3092\u51fa\u529b\u3059\u308b
-apt.opt.nocompile=\u30bd\u30fc\u30b9\u30d5\u30a1\u30a4\u30eb\u3092\u30af\u30e9\u30b9\u30d5\u30a1\u30a4\u30eb\u306b\u30b3\u30f3\u30d1\u30a4\u30eb\u3057\u306a\u3044
+apt.opt.arg.directory=\u30D7\u30ED\u30BB\u30C3\u30B5\u304A\u3088\u3073javac\u304C\u751F\u6210\u3057\u305F\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u7F6E\u304F\u4F4D\u7F6E\u3092\u6307\u5B9A\u3059\u308B
+apt.opt.classpath=\u30E6\u30FC\u30B6\u30FC\u30FB\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u304A\u3088\u3073\u6CE8\u91C8\u30D7\u30ED\u30BB\u30C3\u30B5\u30FB\u30D5\u30A1\u30AF\u30C8\u30EA\u3092\u691C\u7D22\u3059\u308B\u4F4D\u7F6E\u3092\u6307\u5B9A\u3059\u308B
+apt.opt.d=\u30D7\u30ED\u30BB\u30C3\u30B5\u304A\u3088\u3073javac\u304C\u751F\u6210\u3057\u305F\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u7F6E\u304F\u4F4D\u7F6E\u3092\u6307\u5B9A\u3059\u308B
+apt.opt.factory=\u4F7F\u7528\u3059\u308BAnnotationProcessorFactory\u306E\u540D\u524D\u3002\u30C7\u30D5\u30A9\u30EB\u30C8\u306E\u691C\u51FA\u51E6\u7406\u3092\u30D0\u30A4\u30D1\u30B9
+apt.opt.factorypath=\u6CE8\u91C8\u30D7\u30ED\u30BB\u30C3\u30B5\u30FB\u30D5\u30A1\u30AF\u30C8\u30EA\u306E\u691C\u7D22\u5834\u6240\u3092\u6307\u5B9A\u3059\u308B
+apt.opt.s=\u30D7\u30ED\u30BB\u30C3\u30B5\u304C\u751F\u6210\u3057\u305F\u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u7F6E\u304F\u4F4D\u7F6E\u3092\u6307\u5B9A\u3059\u308B
+apt.opt.help=\u6A19\u6E96\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u6982\u8981\u3092\u51FA\u529B\u3059\u308B\u3002\u8A73\u7D30\u30AA\u30D7\u30B7\u30E7\u30F3\u306B\u3064\u3044\u3066\u306Fjavac -help\u3092\u53C2\u7167
+apt.opt.print=\u6307\u5B9A\u3057\u305F\u578B\u306E\u30C6\u30AD\u30B9\u30C8\u8868\u793A\u3092\u51FA\u529B\u3059\u308B
+apt.opt.nocompile=\u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u306B\u30B3\u30F3\u30D1\u30A4\u30EB\u3057\u306A\u3044
 apt.opt.proc.flag=[key[=value]]
-apt.opt.version=\u30d0\u30fc\u30b8\u30e7\u30f3\u60c5\u5831
-apt.opt.XListAnnotationTypes=\u898b\u3064\u304b\u3063\u305f\u6ce8\u91c8\u578b\u3092\u30ea\u30b9\u30c8\u3059\u308b
-apt.opt.XListDeclarations=\u6307\u5b9a\u3055\u308c\u305f\u5ba3\u8a00\u304a\u3088\u3073\u30a4\u30f3\u30af\u30eb\u30fc\u30c9\u3055\u308c\u305f\u5ba3\u8a00\u3092\u30ea\u30b9\u30c8\u3059\u308b
-apt.opt.XPrintAptRounds=\u521d\u671f\u304a\u3088\u3073\u518d\u5e30 apt \u5f80\u5fa9\u306b\u3064\u3044\u3066\u306e\u60c5\u5831\u3092\u5370\u5237\u3059\u308b
-apt.opt.XPrintFactoryInfo=\u30d5\u30a1\u30af\u30c8\u30ea\u304c\u51e6\u7406\u3092\u4f9d\u983c\u3055\u308c\u308b\u6ce8\u91c8\u306b\u3064\u3044\u3066\u306e\u60c5\u5831\u3092\u5370\u5237\u3059\u308b
-apt.opt.XClassesAsDecls=\u30af\u30e9\u30b9\u3068\u30bd\u30fc\u30b9\u30d5\u30a1\u30a4\u30eb\u3092\u4e21\u65b9\u3068\u3082\u51e6\u7406\u3059\u308b\u5ba3\u8a00\u3068\u3057\u3066\u51e6\u7406
+apt.opt.version=\u30D0\u30FC\u30B8\u30E7\u30F3\u60C5\u5831
+apt.opt.XListAnnotationTypes=\u898B\u3064\u304B\u3063\u305F\u6CE8\u91C8\u578B\u3092\u30EA\u30B9\u30C8\u3059\u308B
+apt.opt.XListDeclarations=\u6307\u5B9A\u3055\u308C\u305F\u5BA3\u8A00\u304A\u3088\u3073\u30A4\u30F3\u30AF\u30EB\u30FC\u30C9\u3055\u308C\u305F\u5BA3\u8A00\u3092\u30EA\u30B9\u30C8\u3059\u308B
+apt.opt.XPrintAptRounds=\u521D\u671F\u304A\u3088\u3073\u518D\u5E30apt\u5F80\u5FA9\u306B\u3064\u3044\u3066\u306E\u60C5\u5831\u3092\u5370\u5237\u3059\u308B
+apt.opt.XPrintFactoryInfo=\u30D5\u30A1\u30AF\u30C8\u30EA\u304C\u51E6\u7406\u3092\u4F9D\u983C\u3055\u308C\u308B\u6CE8\u91C8\u306B\u3064\u3044\u3066\u306E\u60C5\u5831\u3092\u5370\u5237\u3059\u308B
+apt.opt.XClassesAsDecls=\u30AF\u30E9\u30B9\u3068\u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u4E21\u65B9\u3068\u3082\u51E6\u7406\u3059\u308B\u5BA3\u8A00\u3068\u3057\u3066\u51E6\u7406
 
 ##
 ## errors
@@ -59,17 +59,17 @@
 ## All errors which do not refer to a particular line in the source code are
 ## preceded by this string.
 
-apt.err.error=\u30a8\u30e9\u30fc: 
+apt.err.error=\u30A8\u30E9\u30FC:\u0020
 
-apt.err.unsupported.source.version=\u30bd\u30fc\u30b9\u30ea\u30ea\u30fc\u30b9 {0} \u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002\u30ea\u30ea\u30fc\u30b9 5 \u4ee5\u524d\u3092\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044
+apt.err.unsupported.source.version=\u30BD\u30FC\u30B9\u30FB\u30EA\u30EA\u30FC\u30B9{0}\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u30EA\u30EA\u30FC\u30B95\u4EE5\u524D\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044
 
-apt.err.unsupported.target.version=\u30bf\u30fc\u30b2\u30c3\u30c8\u30ea\u30ea\u30fc\u30b9 {0} \u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002\u30ea\u30ea\u30fc\u30b9 5 \u4ee5\u524d\u3092\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044
+apt.err.unsupported.target.version=\u30BF\u30FC\u30B2\u30C3\u30C8\u30FB\u30EA\u30EA\u30FC\u30B9{0}\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u30EA\u30EA\u30FC\u30B95\u4EE5\u524D\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044
 
-apt.err.BadDeclaration=\u6ce8\u91c8\u578b {0} \u7528\u306b\u4f5c\u6210\u3055\u308c\u305f\u7121\u52b9\u306a\u5ba3\u8a00\u3067\u3059\u3002
+apt.err.BadDeclaration=\u6CE8\u91C8\u578B{0}\u7528\u306B\u4F5C\u6210\u3055\u308C\u305F\u7121\u52B9\u306A\u5BA3\u8A00\u3067\u3059
 
-apt.err.CantFindClass={0} \u306e\u30af\u30e9\u30b9\u30d5\u30a1\u30a4\u30eb\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002
+apt.err.CantFindClass={0}\u306E\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093
 
-apt.err.DeclarationCreation=\u6ce8\u91c8\u578b {0} \u7528\u306b\u5ba3\u8a00\u3092\u4f5c\u6210\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002
+apt.err.DeclarationCreation=\u6CE8\u91C8\u578B{0}\u7528\u306B\u5BA3\u8A00\u3092\u4F5C\u6210\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F
 
 # Print an error from the Messager
 apt.err.Messager={0}
@@ -78,11 +78,11 @@
 ## miscellaneous strings
 ##
 
-apt.misc.Deprecation=\n\u8b66\u544a: apt \u30c4\u30fc\u30eb\u3068\u3053\u308c\u306b\u95a2\u9023\u3059\u308b API \u306f\u3001\u6b21\u306e JDK \u30e1\u30b8\u30e3\u30fc\u30ea\u30ea\u30fc\u30b9\u3067\n\u524a\u9664\u3055\u308c\u308b\u4e88\u5b9a\u3067\u3059\u3002\u3053\u308c\u3089\u306e\u6a5f\u80fd\u306f\u3001\njavac \u304a\u3088\u3073\u6a19\u6e96\u5316\u6ce8\u91c8\u51e6\u7406 API \n(javax.annotation.processing \u3068 javax.lang.model) \u306b\u7f6e\u304d\u63db\u3048\u3089\u308c\u307e\u3057\u305f\u3002javac \u306e\n\u6ce8\u91c8\u51e6\u7406\u6a5f\u80fd\u3078\u306e\u79fb\u884c\u3092\u304a\u52e7\u3081\u3057\u307e\u3059\u3002\u8a73\u7d30\u306f\u3001\njavac \u306e\u30de\u30cb\u30e5\u30a2\u30eb\u30da\u30fc\u30b8\u3092\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044\u3002\n
+apt.misc.Deprecation=\n\u8B66\u544A: apt\u30C4\u30FC\u30EB\u3068\u30C4\u30FC\u30EB\u306B\u95A2\u9023\u4ED8\u3051\u3089\u308C\u305FAPI\u306F\u3001\u6B21\u56DE\u306EJDK\n\u30E1\u30B8\u30E3\u30FC\u30FB\u30EA\u30EA\u30FC\u30B9\u3067\u524A\u9664\u3055\u308C\u308B\u4E88\u5B9A\u3067\u3059\u3002\u3053\u308C\u3089\u306E\u6A5F\u80FD\u306Fjavac\u304A\u3088\u3073\n\u6A19\u6E96\u5316\u3055\u308C\u305F\u6CE8\u91C8\u51E6\u7406API\u306Ejavax.annotation.processing\u304A\u3088\u3073javax.lang.model\n\u306B\u3088\u3063\u3066\u7F6E\u304D\u63DB\u3048\u3089\u308C\u307E\u3057\u305F\u3002\u30E6\u30FC\u30B6\u30FC\u306Fjavac\u306E\u6CE8\u91C8\u51E6\u7406\u6A5F\u80FD\u306B\n\u79FB\u884C\u3059\u308B\u3053\u3068\u3092\u304A\u85A6\u3081\u3057\u307E\u3059\u3002\n\u8A73\u7D30\u306F\u3001javac man\u30DA\u30FC\u30B8\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\u3002\n
 
-apt.misc.Problem=\u6ce8\u91c8\u306e\u51e6\u7406\u4e2d\u306b\u554f\u984c\u304c\u691c\u51fa\u3055\u308c\u307e\u3057\u305f\u3002\n\u8a73\u7d30\u306b\u3064\u3044\u3066\u306f\u3001\u4e0b\u8a18\u306e\u30b9\u30bf\u30c3\u30af\u30c8\u30ec\u30fc\u30b9\u3092\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+apt.misc.Problem=\u6CE8\u91C8\u51E6\u7406\u4E2D\u306B\u554F\u984C\u304C\u691C\u51FA\u3055\u308C\u307E\u3057\u305F\u3002\n\u8A73\u7D30\u306F\u3001\u4E0B\u8A18\u306E\u30B9\u30BF\u30C3\u30AF\u30FB\u30C8\u30EC\u30FC\u30B9\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\u3002
 
-apt.misc.SunMiscService=\u6ce8\u91c8\u30d7\u30ed\u30bb\u30c3\u30b5\u30d5\u30a1\u30af\u30c8\u30ea\u306e\u691c\u7d22\u30a8\u30e9\u30fc\u3067\u3059\u3002\nMETA-INF/services \u5185\u306e\u60c5\u5831\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+apt.misc.SunMiscService=\u6CE8\u91C8\u30D7\u30ED\u30BB\u30C3\u30B5\u30FB\u30D5\u30A1\u30AF\u30C8\u30EA\u306E\u691C\u7D22\u30A8\u30E9\u30FC\u3067\u3059\u3002\nMETA-INF/services\u5185\u306E\u60C5\u5831\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002
 
 # Print a notice from the Messager
 apt.note.Messager={0}
@@ -92,35 +92,35 @@
 ##
 
 ## All warning messages are preceded by the following string.
-apt.warn.warning=\u8b66\u544a: 
+apt.warn.warning=\u8B66\u544A:
 
-apt.warn.AnnotationsWithoutProcessors=\u30d7\u30ed\u30bb\u30c3\u30b5\u306a\u3057\u306e\u6ce8\u91c8\u578b\u3067\u3059: {0}
+apt.warn.AnnotationsWithoutProcessors=\u30D7\u30ED\u30BB\u30C3\u30B5\u306A\u3057\u306E\u6CE8\u91C8\u578B\u3067\u3059: {0}
 
-apt.warn.BadFactory=\u6ce8\u91c8\u30d7\u30ed\u30bb\u30c3\u30b5\u30d5\u30a1\u30af\u30c8\u30ea\u304c\u7121\u52b9\u3067\u3059: {0} 
+apt.warn.BadFactory=\u6CE8\u91C8\u30D7\u30ED\u30BB\u30C3\u30B5\u30FB\u30D5\u30A1\u30AF\u30C8\u30EA\u304C\u7121\u52B9\u3067\u3059: {0} 
 
-apt.warn.BadParentDirectory={0} \u306e\u3044\u304f\u3064\u304b\u306e\u89aa\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u4f5c\u6210\u306b\u5931\u6557\u3057\u307e\u3057\u305f 
+apt.warn.BadParentDirectory={0}\u306E\u3044\u304F\u3064\u304B\u306E\u89AA\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306E\u4F5C\u6210\u306B\u5931\u6557\u3057\u307E\u3057\u305F 
 
-apt.warn.FactoryCantInstantiate=\u30d5\u30a1\u30af\u30c8\u30ea ''{0}'' \u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u5316\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002
+apt.warn.FactoryCantInstantiate=\u30D5\u30A1\u30AF\u30C8\u30EA''{0}''\u306E\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u3092\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u5316\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002
 
-apt.warn.FactoryWrongType=\u6307\u5b9a\u3057\u305f\u30d5\u30a1\u30af\u30c8\u30ea ''{0}'' \u306f AnnotationProcessorFactory \u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002
+apt.warn.FactoryWrongType=\u6307\u5B9A\u3057\u305F\u30D5\u30A1\u30AF\u30C8\u30EA''{0}''\u306FAnnotationProcessorFactory\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002
 
-apt.warn.FactoryNotFound=\u6307\u5b9a\u3057\u305f AnnotationProcessorFactory ''{0}'' \u306f\u691c\u7d22\u30d1\u30b9\u3067\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002
+apt.warn.FactoryNotFound=\u6307\u5B9A\u3057\u305FAnnotationProcessorFactory ''{0}''\u306F\u691C\u7D22\u30D1\u30B9\u3067\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002
 
-apt.warn.FileReopening=''{0}'' \u3092\u8907\u6570\u56de\u4f5c\u6210\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u307e\u3059\u3002
+apt.warn.FileReopening=''{0}''\u3092\u8907\u6570\u56DE\u4F5C\u6210\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u307E\u3059
 
-apt.warn.IllegalFileName=\u7121\u52b9\u306a\u540d\u524d ''{0}'' \u306e\u30d5\u30a1\u30a4\u30eb\u306f\u4f5c\u6210\u3067\u304d\u307e\u305b\u3093\u3002
+apt.warn.IllegalFileName=\u7121\u52B9\u306A\u540D\u524D''{0}''\u306E\u30D5\u30A1\u30A4\u30EB\u306F\u4F5C\u6210\u3067\u304D\u307E\u305B\u3093\u3002
 
-apt.warn.MalformedSupportedString=\u30d5\u30a1\u30af\u30c8\u30ea\u304c\u8fd4\u3057\u305f\u6ce8\u91c8\u30b5\u30dd\u30fc\u30c8 ''{0}'' \u306e\u6587\u5b57\u5217\u304c\u4e0d\u6b63\u3067\u3059\u3002
+apt.warn.MalformedSupportedString=\u30D5\u30A1\u30AF\u30C8\u30EA\u304C\u8FD4\u3057\u305F\u6CE8\u91C8\u30B5\u30DD\u30FC\u30C8''{0}''\u306E\u6587\u5B57\u5217\u304C\u4E0D\u6B63\u3067\u3059\u3002
 
-apt.warn.NoNewFilesAfterRound=\u5f80\u5fa9\u306e\u7d42\u4e86\u5f8c\u306b\u30d5\u30a1\u30a4\u30eb ''{0}'' \u3092\u4f5c\u6210\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002
+apt.warn.NoNewFilesAfterRound=\u5F80\u5FA9\u306E\u7D42\u4E86\u5F8C\u306B\u30D5\u30A1\u30A4\u30EB''{0}''\u3092\u4F5C\u6210\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002
 
 # Print a warning from the Messager
 apt.warn.Messager={0}
 
-apt.warn.NoAnnotationProcessors=\u6ce8\u91c8\u30d7\u30ed\u30bb\u30c3\u30b5\u306f\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u304c\u3001\u6ce8\u91c8\u306f\u5b58\u5728\u3057\u307e\u3059\u3002
+apt.warn.NoAnnotationProcessors=\u6CE8\u91C8\u30D7\u30ED\u30BB\u30C3\u30B5\u306F\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u304C\u3001\u6CE8\u91C8\u306F\u5B58\u5728\u3057\u307E\u3059\u3002
 
-apt.warn.NullProcessor=\u30d5\u30a1\u30af\u30c8\u30ea {0} \u304c\u6ce8\u91c8\u30d7\u30ed\u30bb\u30c3\u30b5\u306b null \u3092\u8fd4\u3057\u307e\u3057\u305f\u3002
+apt.warn.NullProcessor=\u30D5\u30A1\u30AF\u30C8\u30EA{0}\u304C\u6CE8\u91C8\u30D7\u30ED\u30BB\u30C3\u30B5\u306Bnull\u3092\u8FD4\u3057\u307E\u3057\u305F\u3002
 
-apt.warn.CorrespondingClassFile=\u30bd\u30fc\u30b9\u30d5\u30a1\u30a4\u30eb ''{0}'' \u306b\u5bfe\u5fdc\u3059\u308b\u30af\u30e9\u30b9\u30d5\u30a1\u30a4\u30eb\u306f\u3059\u3067\u306b\u4f5c\u6210\u3055\u308c\u3066\u3044\u307e\u3059\u3002
+apt.warn.CorrespondingClassFile=\u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB''{0}''\u306B\u5BFE\u5FDC\u3059\u308B\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u306F\u3059\u3067\u306B\u4F5C\u6210\u3055\u308C\u3066\u3044\u307E\u3059\u3002
 
-apt.warn.CorrespondingSourceFile=\u30af\u30e9\u30b9\u30d5\u30a1\u30a4\u30eb ''{0}'' \u306b\u5bfe\u5fdc\u3059\u308b\u30bd\u30fc\u30b9\u30d5\u30a1\u30a4\u30eb\u306f\u3059\u3067\u306b\u4f5c\u6210\u3055\u308c\u3066\u3044\u307e\u3059\u3002
+apt.warn.CorrespondingSourceFile=\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB''{0}''\u306B\u5BFE\u5FDC\u3059\u308B\u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u306F\u3059\u3067\u306B\u4F5C\u6210\u3055\u308C\u3066\u3044\u307E\u3059\u3002
--- a/src/share/classes/com/sun/tools/apt/resources/apt_zh_CN.properties	Wed Feb 23 16:39:34 2011 -0500
+++ b/src/share/classes/com/sun/tools/apt/resources/apt_zh_CN.properties	Thu Mar 10 18:42:31 2011 -0500
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2004, 2006, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -23,34 +23,34 @@
 # questions.
 #
 
-apt.msg.usage.header=\u7528\u6cd5\uff1a{0} <apt \u548c javac \u9009\u9879> <\u6e90\u6587\u4ef6>\n\u5176\u4e2d\uff0capt \u9009\u9879\u5305\u62ec\uff1a
+apt.msg.usage.header=\u7528\u6CD5: {0} <apt and javac options> <source files>\n\u5176\u4E2D, apt \u9009\u9879\u5305\u62EC:
 
-apt.msg.usage.footer=\u6709\u5173 javac \u9009\u9879\u7684\u4fe1\u606f\uff0c\u8bf7\u53c2\u89c1 javac -help\u3002
+apt.msg.usage.footer=\u6709\u5173 javac \u9009\u9879\u7684\u4FE1\u606F, \u8BF7\u53C2\u9605 javac -help\u3002
 
-apt.msg.usage.nonstandard.footer=\u8fd9\u4e9b\u9009\u9879\u53ca\u5176\u8f93\u51fa\u683c\u5f0f\u90fd\u4e0d\u662f\u6807\u51c6\u7684\uff0c\n\u5982\u6709\u66f4\u6539\uff0c\u6055\u4e0d\u53e6\u884c\u901a\u77e5\u3002
+apt.msg.usage.nonstandard.footer=\u8FD9\u4E9B\u9009\u9879\u53CA\u5176\u8F93\u51FA\u683C\u5F0F\u90FD\u4E0D\u662F\u6807\u51C6\u7684, \n\u5982\u6709\u66F4\u6539, \u6055\u4E0D\u53E6\u884C\u901A\u77E5\u3002
 
-apt.msg.bug=apt ({0}) \u4e2d\u51fa\u73b0\u5f02\u5e38\u3002 \u5982\u679c\u5728 Bug Parade \u4e2d\u6ca1\u6709\u627e\u5230\u8be5\u9519\u8bef\uff0c\u8bf7\u5728 Java Developer Connection (http://java.sun.com/webapps/bugreport)  \u5bf9\u8be5\u9519\u8bef\u8fdb\u884c\u5f52\u6863\u3002 \u8bf7\u5728\u62a5\u544a\u4e2d\u9644\u4e0a\u60a8\u7684\u7a0b\u5e8f\u548c\u4ee5\u4e0b\u8bca\u65ad\u4fe1\u606f\u3002\u8c22\u8c22\u60a8\u7684\u5408\u4f5c\u3002
+apt.msg.bug=apt ({0}) \u4E2D\u51FA\u73B0\u5F02\u5E38\u9519\u8BEF\u3002 \u5982\u679C\u5728 Bug Parade \u4E2D\u6CA1\u6709\u627E\u5230\u8BE5\u9519\u8BEF, \u8BF7\u5728 Java Developer Connection (http://java.sun.com/webapps/bugreport) \u4E2D\u5EFA\u7ACB Bug\u3002\u8BF7\u5728\u62A5\u544A\u4E2D\u9644\u4E0A\u60A8\u7684\u7A0B\u5E8F\u548C\u4EE5\u4E0B\u8BCA\u65AD\u4FE1\u606F\u3002\u8C22\u8C22\u3002
 
 ## apt options
 
-apt.opt.A=\u4f20\u9012\u7ed9\u6ce8\u91ca\u5904\u7406\u5668\u7684\u9009\u9879
-apt.opt.arg.class=<\u7c7b>
-apt.opt.arg.directory=\u6307\u5b9a\u5b58\u653e\u5904\u7406\u5668\u548c javac \u751f\u6210\u7684\u7c7b\u6587\u4ef6\u7684\u4f4d\u7f6e
-apt.opt.classpath=\u6307\u5b9a\u67e5\u627e\u7528\u6237\u7c7b\u6587\u4ef6\u548c\u6ce8\u91ca\u5904\u7406\u5668\u5de5\u5382\u7684\u4f4d\u7f6e
-apt.opt.d=\u6307\u5b9a\u5b58\u653e\u5904\u7406\u5668\u548c javac \u751f\u6210\u7684\u7c7b\u6587\u4ef6\u7684\u4f4d\u7f6e
-apt.opt.factory=\u8981\u4f7f\u7528\u7684 AnnotationProcessorFactory \u7684\u540d\u79f0\uff1b\u7ed5\u8fc7\u9ed8\u8ba4\u7684\u641c\u7d22\u8fdb\u7a0b
-apt.opt.factorypath=\u6307\u5b9a\u67e5\u627e\u6ce8\u91ca\u5904\u7406\u5668\u5de5\u5382\u7684\u4f4d\u7f6e
-apt.opt.s=\u6307\u5b9a\u5b58\u653e\u5904\u7406\u5668\u751f\u6210\u7684\u6e90\u6587\u4ef6\u7684\u4f4d\u7f6e
-apt.opt.help=\u8f93\u51fa\u6807\u51c6\u9009\u9879\u7684\u63d0\u8981\uff1b\u4f7f\u7528 javac -help \u53ef\u4ee5\u5f97\u5230\u66f4\u591a\u9009\u9879
-apt.opt.print=\u8f93\u51fa\u6307\u5b9a\u7c7b\u578b\u7684\u6587\u672c\u8868\u793a
-apt.opt.nocompile=\u8bf7\u52ff\u5c06\u6e90\u6587\u4ef6\u7f16\u8bd1\u4e3a\u7c7b\u6587\u4ef6
-apt.opt.proc.flag=[\u5173\u952e\u5b57[=\u503c]]
-apt.opt.version=\u7248\u672c\u4fe1\u606f
-apt.opt.XListAnnotationTypes=\u5217\u51fa\u627e\u5230\u7684\u6ce8\u91ca\u7c7b\u578b
-apt.opt.XListDeclarations=\u5217\u51fa\u6307\u5b9a\u548c\u5305\u542b\u7684\u58f0\u660e
-apt.opt.XPrintAptRounds=\u8f93\u51fa\u6709\u5173\u521d\u59cb\u548c\u9012\u5f52 apt \u5faa\u73af\u7684\u4fe1\u606f
-apt.opt.XPrintFactoryInfo=\u8f93\u51fa\u6709\u5173\u8bf7\u6c42\u5de5\u5382\u5904\u7406\u54ea\u4e9b\u6ce8\u91ca\u7684\u4fe1\u606f
-apt.opt.XClassesAsDecls=\u5c06\u7c7b\u6587\u4ef6\u548c\u6e90\u6587\u4ef6\u90fd\u89c6\u4e3a\u8981\u5904\u7406\u7684\u58f0\u660e
+apt.opt.A=\u4F20\u9012\u7ED9\u6CE8\u91CA\u5904\u7406\u7A0B\u5E8F\u7684\u9009\u9879
+apt.opt.arg.class=<\u7C7B>
+apt.opt.arg.directory=\u6307\u5B9A\u653E\u7F6E\u5904\u7406\u7A0B\u5E8F\u548C javac \u751F\u6210\u7684\u7C7B\u6587\u4EF6\u7684\u4F4D\u7F6E
+apt.opt.classpath=\u6307\u5B9A\u67E5\u627E\u7528\u6237\u7C7B\u6587\u4EF6\u548C\u6CE8\u91CA\u5904\u7406\u7A0B\u5E8F\u5DE5\u5382\u7684\u4F4D\u7F6E
+apt.opt.d=\u6307\u5B9A\u653E\u7F6E\u5904\u7406\u7A0B\u5E8F\u548C javac \u751F\u6210\u7684\u7C7B\u6587\u4EF6\u7684\u4F4D\u7F6E
+apt.opt.factory=\u8981\u4F7F\u7528\u7684 AnnotationProcessorFactory \u7684\u540D\u79F0; \u7ED5\u8FC7\u9ED8\u8BA4\u7684\u641C\u7D22\u8FDB\u7A0B
+apt.opt.factorypath=\u6307\u5B9A\u67E5\u627E\u6CE8\u91CA\u5904\u7406\u7A0B\u5E8F\u5DE5\u5382\u7684\u4F4D\u7F6E
+apt.opt.s=\u6307\u5B9A\u653E\u7F6E\u5904\u7406\u7A0B\u5E8F\u751F\u6210\u7684\u6E90\u6587\u4EF6\u7684\u4F4D\u7F6E
+apt.opt.help=\u8F93\u51FA\u6807\u51C6\u9009\u9879\u7684\u63D0\u8981; \u4F7F\u7528 javac -help \u53EF\u4EE5\u5F97\u5230\u66F4\u591A\u9009\u9879
+apt.opt.print=\u8F93\u51FA\u6307\u5B9A\u7C7B\u578B\u7684\u6587\u672C\u8868\u793A
+apt.opt.nocompile=\u8BF7\u52FF\u5C06\u6E90\u6587\u4EF6\u7F16\u8BD1\u4E3A\u7C7B\u6587\u4EF6
+apt.opt.proc.flag=[\u5173\u952E\u5B57[=\u503C]]
+apt.opt.version=\u7248\u672C\u4FE1\u606F
+apt.opt.XListAnnotationTypes=\u5217\u51FA\u627E\u5230\u7684\u6CE8\u91CA\u7C7B\u578B
+apt.opt.XListDeclarations=\u5217\u51FA\u6307\u5B9A\u548C\u5305\u542B\u7684\u58F0\u660E
+apt.opt.XPrintAptRounds=\u8F93\u51FA\u6709\u5173\u521D\u59CB\u548C\u9012\u5F52 apt \u5FAA\u73AF\u7684\u4FE1\u606F
+apt.opt.XPrintFactoryInfo=\u8F93\u51FA\u6709\u5173\u8BF7\u6C42\u5DE5\u5382\u5904\u7406\u54EA\u4E9B\u6CE8\u91CA\u7684\u4FE1\u606F
+apt.opt.XClassesAsDecls=\u5C06\u7C7B\u6587\u4EF6\u548C\u6E90\u6587\u4EF6\u90FD\u89C6\u4E3A\u8981\u5904\u7406\u7684\u58F0\u660E
 
 ##
 ## errors
@@ -59,17 +59,17 @@
 ## All errors which do not refer to a particular line in the source code are
 ## preceded by this string.
 
-apt.err.error=\u9519\u8bef\uff1a 
+apt.err.error=\u9519\u8BEF:\u0020
 
-apt.err.unsupported.source.version=\u4e0d\u652f\u6301\u6e90\u7248\u672c {0}\uff1b\u8bf7\u4f7f\u7528\u7248\u672c 5 \u6216\u65e9\u671f\u7248\u672c
+apt.err.unsupported.source.version=\u4E0D\u652F\u6301\u6E90\u53D1\u884C\u7248 {0}; \u8BF7\u4F7F\u7528\u53D1\u884C\u7248 5 \u6216\u65E9\u671F\u53D1\u884C\u7248
 
-apt.err.unsupported.target.version=\u4e0d\u652f\u6301\u76ee\u6807\u7248\u672c {0}\uff1b\u8bf7\u4f7f\u7528\u7248\u672c 5 \u6216\u65e9\u671f\u7248\u672c
+apt.err.unsupported.target.version=\u4E0D\u652F\u6301\u76EE\u6807\u53D1\u884C\u7248 {0}; \u8BF7\u4F7F\u7528\u53D1\u884C\u7248 5 \u6216\u65E9\u671F\u53D1\u884C\u7248
 
-apt.err.BadDeclaration=\u4e3a\u6ce8\u91ca\u7c7b\u578b {0} \u521b\u5efa\u7684\u58f0\u660e\u51fa\u73b0\u9519\u8bef
+apt.err.BadDeclaration=\u4E3A\u6CE8\u91CA\u7C7B\u578B{0}\u521B\u5EFA\u7684\u58F0\u660E\u51FA\u73B0\u9519\u8BEF
 
-apt.err.CantFindClass=\u627e\u4e0d\u5230 {0} \u7684\u7c7b\u6587\u4ef6
+apt.err.CantFindClass=\u627E\u4E0D\u5230{0}\u7684\u7C7B\u6587\u4EF6
 
-apt.err.DeclarationCreation=\u65e0\u6cd5\u4e3a\u6ce8\u91ca\u7c7b\u578b {0} \u521b\u5efa\u58f0\u660e
+apt.err.DeclarationCreation=\u65E0\u6CD5\u4E3A\u6CE8\u91CA\u7C7B\u578B{0}\u521B\u5EFA\u58F0\u660E
 
 # Print an error from the Messager
 apt.err.Messager={0}
@@ -78,11 +78,11 @@
 ## miscellaneous strings
 ##
 
-apt.misc.Deprecation=\n\u8b66\u544a\uff1a\u5728\u4e0b\u4e00\u4e2a JDK \u4e3b\u8981\u7248\u672c\u4e2d\uff0c\napt \u5de5\u5177\u53ca\u5176\u5173\u8054\u7684 API \u5c06\u88ab\u5220\u9664\u3002\u5176\u4e2d\u7684\u529f\u80fd\u5df2\u88ab javac \u4ee5\u53ca\n\u6807\u51c6\u5316\u6ce8\u91ca\u5904\u7406 API \njavax.annotation.processing \u548c javax.lang.model \u53d6\u4ee3\u3002\u5efa\u8bae\u7528\u6237\n\u6539\u7528 javac \u7684\u6ce8\u91ca\u5904\u7406\u529f\u80fd\uff1b\n\u6709\u5173\u8be6\u7ec6\u4fe1\u606f\uff0c\u8bf7\u53c2\u89c1 javac \u624b\u518c\u9875\u3002\n
+apt.misc.Deprecation=\n\u8B66\u544A:\u0020\u5DF2\u8BA1\u5212\u5728\u4E0B\u4E00\u4E2A JDK \u4E3B\u53D1\u884C\u7248\u4E2D\n\u5220\u9664 apt \u5DE5\u5177\u53CA\u5176\u5173\u8054\u7684 API\u3002\u8FD9\u4E9B\u529F\u80FD\n\u5DF2\u88AB javac \u548C\u6807\u51C6\u6CE8\u91CA\u5904\u7406 API,\njavax.annotation.processing \u548C javax.lang.model \u53D6\u4EE3\u3002\u5EFA\u8BAE\u7528\u6237\n\u79FB\u690D\u5230 javac \u7684\u6CE8\u91CA\u5904\u7406\u529F\u80FD;\n\u6709\u5173\u8BE6\u7EC6\u4FE1\u606F, \u8BF7\u53C2\u9605 javac \u5E2E\u52A9\u9875\u3002\n
 
-apt.misc.Problem=\u6ce8\u91ca\u5904\u7406\u8fc7\u7a0b\u4e2d\u9047\u5230\u95ee\u9898\uff1b\n\u6709\u5173\u66f4\u591a\u4fe1\u606f\uff0c\u8bf7\u53c2\u89c1\u4e0b\u9762\u7684\u5806\u6808\u8ffd\u8e2a\u3002
+apt.misc.Problem=\u6CE8\u91CA\u5904\u7406\u8FC7\u7A0B\u4E2D\u9047\u5230\u95EE\u9898; \n\u6709\u5173\u8BE6\u7EC6\u4FE1\u606F, \u8BF7\u53C2\u9605\u4E0B\u9762\u7684\u5806\u6808\u8DDF\u8E2A\u3002
 
-apt.misc.SunMiscService=\u67e5\u627e\u6ce8\u91ca\u5904\u7406\u5668\u5de5\u5382\u65f6\u51fa\u9519\uff1b\n\u8bf7\u67e5\u770b META-INF/\u670d\u52a1\u4fe1\u606f\u3002
+apt.misc.SunMiscService=\u67E5\u627E\u6CE8\u91CA\u5904\u7406\u7A0B\u5E8F\u5DE5\u5382\u65F6\u51FA\u9519; \n\u8BF7\u67E5\u770B META-INF/\u670D\u52A1\u4FE1\u606F\u3002
 
 # Print a notice from the Messager
 apt.note.Messager={0}
@@ -92,35 +92,35 @@
 ##
 
 ## All warning messages are preceded by the following string.
-apt.warn.warning=\u8b66\u544a\uff1a 
+apt.warn.warning=\u8B66\u544A:\u0020
 
-apt.warn.AnnotationsWithoutProcessors=\u4e0d\u5e26\u5904\u7406\u5668\u7684\u6ce8\u91ca\u7c7b\u578b\uff1a {0}
+apt.warn.AnnotationsWithoutProcessors=\u4E0D\u5E26\u5904\u7406\u7A0B\u5E8F\u7684\u6CE8\u91CA\u7C7B\u578B: {0}
 
-apt.warn.BadFactory=\u6ce8\u91ca\u5904\u7406\u5668\u5de5\u5382\u51fa\u73b0\u9519\u8bef\uff1a {0} 
+apt.warn.BadFactory=\u6CE8\u91CA\u5904\u7406\u7A0B\u5E8F\u5DE5\u5382\u51FA\u73B0\u9519\u8BEF: {0} 
 
-apt.warn.BadParentDirectory=\u65e0\u6cd5\u521b\u5efa {0} \u7684\u67d0\u4e9b\u7236\u76ee\u5f55 
+apt.warn.BadParentDirectory=\u65E0\u6CD5\u521B\u5EFA{0}\u7684\u67D0\u4E9B\u7236\u76EE\u5F55 
 
-apt.warn.FactoryCantInstantiate=\u65e0\u6cd5\u5b9e\u4f8b\u5316\u5de5\u5382 "{0}" \u7684\u5b9e\u4f8b\u3002
+apt.warn.FactoryCantInstantiate=\u65E0\u6CD5\u5B9E\u4F8B\u5316\u5DE5\u5382 ''{0}'' \u7684\u5B9E\u4F8B\u3002
 
-apt.warn.FactoryWrongType=\u6307\u5b9a\u7684\u5de5\u5382 "{0}" \u4e0d\u662f AnnotationProcessorFactory\u3002
+apt.warn.FactoryWrongType=\u6307\u5B9A\u7684\u5DE5\u5382 ''{0}'' \u4E0D\u662F AnnotationProcessorFactory\u3002
 
-apt.warn.FactoryNotFound=\u5728\u641c\u7d22\u8def\u5f84\u4e2d\u627e\u4e0d\u5230\u6307\u5b9a\u7684 AnnotationProcessorFactory "{0}"\u3002
+apt.warn.FactoryNotFound=\u5728\u641C\u7D22\u8DEF\u5F84\u4E2D\u627E\u4E0D\u5230\u6307\u5B9A\u7684 AnnotationProcessorFactory ''{0}''\u3002
 
-apt.warn.FileReopening=\u5c1d\u8bd5\u591a\u6b21\u521b\u5efa "{0}"
+apt.warn.FileReopening=\u5C1D\u8BD5\u591A\u6B21\u521B\u5EFA ''{0}''
 
-apt.warn.IllegalFileName=\u65e0\u6cd5\u521b\u5efa\u5e26\u6709\u975e\u6cd5\u540d\u79f0 "{0}" \u7684\u6587\u4ef6\u3002
+apt.warn.IllegalFileName=\u65E0\u6CD5\u521B\u5EFA\u5E26\u6709\u975E\u6CD5\u540D\u79F0 ''{0}'' \u7684\u6587\u4EF6\u3002
 
-apt.warn.MalformedSupportedString=\u5de5\u5382\u8fd4\u56de\u4e0d\u89c4\u5219\u7684\u6ce8\u91ca\u652f\u6301\u5b57\u7b26\u4e32 "{0}"\u3002
+apt.warn.MalformedSupportedString=\u5DE5\u5382\u8FD4\u56DE\u683C\u5F0F\u9519\u8BEF\u7684\u6CE8\u91CA\u652F\u6301\u5B57\u7B26\u4E32 ''{0}''\u3002
 
-apt.warn.NoNewFilesAfterRound=\u5faa\u73af\u7ed3\u675f\u540e\u65e0\u6cd5\u521b\u5efa\u6587\u4ef6 "{0}"\u3002
+apt.warn.NoNewFilesAfterRound=\u5FAA\u73AF\u7ED3\u675F\u540E\u65E0\u6CD5\u521B\u5EFA\u6587\u4EF6 ''{0}''\u3002
 
 # Print a warning from the Messager
 apt.warn.Messager={0}
 
-apt.warn.NoAnnotationProcessors=\u672a\u627e\u5230\u6ce8\u91ca\u5904\u7406\u5668\uff0c\u4f46\u5b58\u5728\u6ce8\u91ca\u3002
+apt.warn.NoAnnotationProcessors=\u627E\u4E0D\u5230\u6CE8\u91CA\u5904\u7406\u7A0B\u5E8F, \u4F46\u5B58\u5728\u6CE8\u91CA\u3002
 
-apt.warn.NullProcessor=\u5bf9\u4e8e\u67d0\u4e2a\u6ce8\u91ca\u5904\u7406\u5668\uff0c\u5de5\u5382 {0} \u8fd4\u56de\u7684\u503c\u4e3a null\u3002
+apt.warn.NullProcessor=\u5BF9\u4E8E\u67D0\u4E2A\u6CE8\u91CA\u5904\u7406\u7A0B\u5E8F, \u5DE5\u5382{0}\u8FD4\u56DE\u7684\u503C\u4E3A\u7A7A\u503C\u3002
 
-apt.warn.CorrespondingClassFile=\u5df2\u521b\u5efa\u4e0e\u6e90\u6587\u4ef6 "{0}" \u76f8\u5bf9\u5e94\u7684\u7c7b\u6587\u4ef6\u3002
+apt.warn.CorrespondingClassFile=\u5DF2\u521B\u5EFA\u4E0E\u6E90\u6587\u4EF6 ''{0}'' \u76F8\u5BF9\u5E94\u7684\u7C7B\u6587\u4EF6\u3002
 
-apt.warn.CorrespondingSourceFile=\u5df2\u521b\u5efa\u4e0e\u7c7b\u6587\u4ef6 "{0}" \u76f8\u5bf9\u5e94\u7684\u6e90\u6587\u4ef6\u3002
+apt.warn.CorrespondingSourceFile=\u5DF2\u521B\u5EFA\u4E0E\u7C7B\u6587\u4EF6 ''{0}'' \u76F8\u5BF9\u5E94\u7684\u6E90\u6587\u4EF6\u3002
--- a/src/share/classes/com/sun/tools/classfile/Attribute.java	Wed Feb 23 16:39:34 2011 -0500
+++ b/src/share/classes/com/sun/tools/classfile/Attribute.java	Thu Mar 10 18:42:31 2011 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2007, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 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
@@ -39,6 +39,7 @@
 
 public abstract class Attribute {
     public static final String AnnotationDefault        = "AnnotationDefault";
+    public static final String BootstrapMethods         = "BootstrapMethods";
     public static final String CharacterRangeTable      = "CharacterRangeTable";
     public static final String Code                     = "Code";
     public static final String ConstantValue            = "ConstantValue";
@@ -55,8 +56,6 @@
     public static final String RuntimeInvisibleAnnotations = "RuntimeInvisibleAnnotations";
     public static final String RuntimeVisibleParameterAnnotations = "RuntimeVisibleParameterAnnotations";
     public static final String RuntimeInvisibleParameterAnnotations = "RuntimeInvisibleParameterAnnotations";
-    public static final String RuntimeVisibleTypeAnnotations = "RuntimeVisibleTypeAnnotations";
-    public static final String RuntimeInvisibleTypeAnnotations = "RuntimeInvisibleTypeAnnotations";
     public static final String Signature                = "Signature";
     public static final String SourceDebugExtension     = "SourceDebugExtension";
     public static final String SourceFile               = "SourceFile";
@@ -102,6 +101,7 @@
         protected void init() {
             standardAttributes = new HashMap<String,Class<? extends Attribute>>();
             standardAttributes.put(AnnotationDefault, AnnotationDefault_attribute.class);
+            standardAttributes.put(BootstrapMethods, BootstrapMethods_attribute.class);
             standardAttributes.put(CharacterRangeTable, CharacterRangeTable_attribute.class);
             standardAttributes.put(Code,              Code_attribute.class);
             standardAttributes.put(ConstantValue,     ConstantValue_attribute.class);
@@ -119,8 +119,6 @@
                 standardAttributes.put(RuntimeInvisibleParameterAnnotations, RuntimeInvisibleParameterAnnotations_attribute.class);
                 standardAttributes.put(RuntimeVisibleAnnotations, RuntimeVisibleAnnotations_attribute.class);
                 standardAttributes.put(RuntimeVisibleParameterAnnotations, RuntimeVisibleParameterAnnotations_attribute.class);
-                standardAttributes.put(RuntimeVisibleTypeAnnotations, RuntimeVisibleTypeAnnotations_attribute.class);
-                standardAttributes.put(RuntimeInvisibleTypeAnnotations, RuntimeInvisibleTypeAnnotations_attribute.class);
                 standardAttributes.put(Signature,     Signature_attribute.class);
                 standardAttributes.put(SourceID, SourceID_attribute.class);
                 standardAttributes.put(Defender, Defender_attribute.class);
@@ -161,6 +159,7 @@
 
 
     public interface Visitor<R,P> {
+        R visitBootstrapMethods(BootstrapMethods_attribute attr, P p);
         R visitDefault(DefaultAttribute attr, P p);
         R visitAnnotationDefault(AnnotationDefault_attribute attr, P p);
         R visitCharacterRangeTable(CharacterRangeTable_attribute attr, P p);
@@ -179,8 +178,6 @@
         R visitRuntimeInvisibleAnnotations(RuntimeInvisibleAnnotations_attribute attr, P p);
         R visitRuntimeVisibleParameterAnnotations(RuntimeVisibleParameterAnnotations_attribute attr, P p);
         R visitRuntimeInvisibleParameterAnnotations(RuntimeInvisibleParameterAnnotations_attribute attr, P p);
-        R visitRuntimeVisibleTypeAnnotations(RuntimeVisibleTypeAnnotations_attribute attr, P p);
-        R visitRuntimeInvisibleTypeAnnotations(RuntimeInvisibleTypeAnnotations_attribute attr, P p);
         R visitSignature(Signature_attribute attr, P p);
         R visitSourceDebugExtension(SourceDebugExtension_attribute attr, P p);
         R visitSourceFile(SourceFile_attribute attr, P p);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/share/classes/com/sun/tools/classfile/BootstrapMethods_attribute.java	Thu Mar 10 18:42:31 2011 -0500
@@ -0,0 +1,90 @@
+/*
+ * 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.  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.tools.classfile;
+
+import java.io.IOException;
+
+/**
+ * See JVMS3 <TBD>
+ * http://cr.openjdk.java.net/~jrose/pres/indy-javadoc-mlvm/
+ *
+ *  <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.
+ *  This code and its internal interfaces are subject to change or
+ *  deletion without notice.</b>
+ */
+public class BootstrapMethods_attribute extends Attribute {
+    public final BootstrapMethodSpecifier[] bootstrap_method_specifiers;
+
+    BootstrapMethods_attribute(ClassReader cr, int name_index, int length)
+            throws IOException, AttributeException {
+        super(name_index, length);
+        int bootstrap_method_count = cr.readUnsignedShort();
+        bootstrap_method_specifiers = new BootstrapMethodSpecifier[bootstrap_method_count];
+        for (int i = 0; i < bootstrap_method_specifiers.length; i++)
+            bootstrap_method_specifiers[i] = new BootstrapMethodSpecifier(cr);
+    }
+
+    public  BootstrapMethods_attribute(int name_index, BootstrapMethodSpecifier[] bootstrap_method_specifiers) {
+        super(name_index, length(bootstrap_method_specifiers));
+        this.bootstrap_method_specifiers = bootstrap_method_specifiers;
+    }
+
+    public static int length(BootstrapMethodSpecifier[] bootstrap_method_specifiers) {
+        int n = 2;
+        for (BootstrapMethodSpecifier b : bootstrap_method_specifiers)
+            n += b.length();
+        return n;
+    }
+
+    @Override
+    public <R, P> R accept(Visitor<R, P> visitor, P p) {
+        return visitor.visitBootstrapMethods(this, p);
+    }
+
+    public static class BootstrapMethodSpecifier {
+        public int bootstrap_method_ref;
+        public int[] bootstrap_arguments;
+
+        public BootstrapMethodSpecifier(int bootstrap_method_ref, int[] bootstrap_arguments) {
+            this.bootstrap_method_ref = bootstrap_method_ref;
+            this.bootstrap_arguments = bootstrap_arguments;
+        }
+        BootstrapMethodSpecifier(ClassReader cr) throws IOException {
+            bootstrap_method_ref = cr.readUnsignedShort();
+            int method_count = cr.readUnsignedShort();
+            bootstrap_arguments = new int[method_count];
+            for (int i = 0; i < bootstrap_arguments.length; i++) {
+                bootstrap_arguments[i] = cr.readUnsignedShort();
+            }
+        }
+
+        int length() {
+            // u2 (method_ref) + u2 (argc) + u2 * argc
+            return 2 + 2 + (bootstrap_arguments.length * 2);
+        }
+    }
+}
--- a/src/share/classes/com/sun/tools/classfile/ClassTranslator.java	Wed Feb 23 16:39:34 2011 -0500
+++ b/src/share/classes/com/sun/tools/classfile/ClassTranslator.java	Thu Mar 10 18:42:31 2011 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -31,12 +31,14 @@
 import com.sun.tools.classfile.ConstantPool.CONSTANT_Float_info;
 import com.sun.tools.classfile.ConstantPool.CONSTANT_Integer_info;
 import com.sun.tools.classfile.ConstantPool.CONSTANT_InterfaceMethodref_info;
+import com.sun.tools.classfile.ConstantPool.CONSTANT_InvokeDynamic_info;
 import com.sun.tools.classfile.ConstantPool.CONSTANT_Long_info;
+import com.sun.tools.classfile.ConstantPool.CONSTANT_MethodHandle_info;
+import com.sun.tools.classfile.ConstantPool.CONSTANT_MethodType_info;
 import com.sun.tools.classfile.ConstantPool.CONSTANT_Methodref_info;
 import com.sun.tools.classfile.ConstantPool.CONSTANT_NameAndType_info;
 import com.sun.tools.classfile.ConstantPool.CONSTANT_String_info;
 import com.sun.tools.classfile.ConstantPool.CONSTANT_Utf8_info;
-import com.sun.tools.classfile.ConstantPool.CONSTANT_MemberReference_info;
 import com.sun.tools.classfile.ConstantPool.CPInfo;
 import java.util.Map;
 
@@ -305,6 +307,20 @@
         return info;
     }
 
+    public CPInfo visitInvokeDynamic(CONSTANT_InvokeDynamic_info info, Map<Object, Object> translations) {
+        CONSTANT_InvokeDynamic_info info2 = (CONSTANT_InvokeDynamic_info) translations.get(info);
+        if (info2 == null) {
+            ConstantPool cp2 = translate(info.cp, translations);
+            if (cp2 == info.cp) {
+                info2 = info;
+            } else {
+                info2 = new CONSTANT_InvokeDynamic_info(cp2, info.bootstrap_method_attr_index, info.name_and_type_index);
+            }
+            translations.put(info, info2);
+        }
+        return info;
+    }
+
     public CPInfo visitLong(CONSTANT_Long_info info, Map<Object, Object> translations) {
         CONSTANT_Long_info info2 = (CONSTANT_Long_info) translations.get(info);
         if (info2 == null) {
@@ -327,19 +343,6 @@
         return info;
     }
 
-    public CPInfo visitMemberReference(CONSTANT_MemberReference_info info, Map<Object, Object> translations) {
-        CONSTANT_MemberReference_info info2 = (CONSTANT_MemberReference_info) translations.get(info);
-        if (info2 == null) {
-            ConstantPool cp2 = translate(info.cp, translations);
-            if (cp2 == info.cp)
-                info2 = info;
-            else
-                info2 = new CONSTANT_MemberReference_info(cp2, info.refKind, info.refIdx);
-            translations.put(info, info2);
-        }
-        return info;
-    }
-
     public CPInfo visitMethodref(CONSTANT_Methodref_info info, Map<Object, Object> translations) {
         CONSTANT_Methodref_info info2 = (CONSTANT_Methodref_info) translations.get(info);
         if (info2 == null) {
@@ -353,6 +356,34 @@
         return info;
     }
 
+    public CPInfo visitMethodHandle(CONSTANT_MethodHandle_info info, Map<Object, Object> translations) {
+        CONSTANT_MethodHandle_info info2 = (CONSTANT_MethodHandle_info) translations.get(info);
+        if (info2 == null) {
+            ConstantPool cp2 = translate(info.cp, translations);
+            if (cp2 == info.cp) {
+                info2 = info;
+            } else {
+                info2 = new CONSTANT_MethodHandle_info(cp2, info.reference_kind, info.reference_index);
+            }
+            translations.put(info, info2);
+        }
+        return info;
+    }
+
+    public CPInfo visitMethodType(CONSTANT_MethodType_info info, Map<Object, Object> translations) {
+        CONSTANT_MethodType_info info2 = (CONSTANT_MethodType_info) translations.get(info);
+        if (info2 == null) {
+            ConstantPool cp2 = translate(info.cp, translations);
+            if (cp2 == info.cp) {
+                info2 = info;
+            } else {
+                info2 = new CONSTANT_MethodType_info(cp2, info.descriptor_index);
+            }
+            translations.put(info, info2);
+        }
+        return info;
+    }
+
     public CPInfo visitString(CONSTANT_String_info info, Map<Object, Object> translations) {
         CONSTANT_String_info info2 = (CONSTANT_String_info) translations.get(info);
         if (info2 == null) {
--- a/src/share/classes/com/sun/tools/classfile/ClassWriter.java	Wed Feb 23 16:39:34 2011 -0500
+++ b/src/share/classes/com/sun/tools/classfile/ClassWriter.java	Thu Mar 10 18:42:31 2011 -0500
@@ -1,6 +1,6 @@
 
 /*
- * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -267,6 +267,12 @@
             return 1;
         }
 
+        public Integer visitInvokeDynamic(CONSTANT_InvokeDynamic_info info, ClassOutputStream out) {
+            out.writeShort(info.bootstrap_method_attr_index);
+            out.writeShort(info.name_and_type_index);
+            return 1;
+        }
+
         public Integer visitLong(CONSTANT_Long_info info, ClassOutputStream out) {
             out.writeLong(info.value);
             return 2;
@@ -278,6 +284,17 @@
             return 1;
         }
 
+        public Integer visitMethodHandle(CONSTANT_MethodHandle_info info, ClassOutputStream out) {
+            out.writeByte(info.reference_kind.tag);
+            out.writeShort(info.reference_index);
+            return 1;
+        }
+
+        public Integer visitMethodType(CONSTANT_MethodType_info info, ClassOutputStream out) {
+            out.writeShort(info.descriptor_index);
+            return 1;
+        }
+
         public Integer visitMethodref(CONSTANT_Methodref_info info, ClassOutputStream out) {
             return writeRef(info, out);
         }
@@ -292,12 +309,6 @@
             return 1;
         }
 
-        public Integer visitMemberReference(CONSTANT_MemberReference_info info, ClassOutputStream out) {
-            out.writeByte(info.refKind);
-            out.writeShort(info.refIdx);
-            return 1;
-        }
-
         protected Integer writeRef(CPRefInfo info, ClassOutputStream out) {
             out.writeShort(info.class_index);
             out.writeShort(info.name_and_type_index);
@@ -338,6 +349,19 @@
             return null;
         }
 
+        public Void visitBootstrapMethods(BootstrapMethods_attribute attr, ClassOutputStream out) {
+            out.writeShort(attr.bootstrap_method_specifiers.length);
+            for (BootstrapMethods_attribute.BootstrapMethodSpecifier bsm : attr.bootstrap_method_specifiers) {
+                out.writeShort(bsm.bootstrap_method_ref);
+                int bsm_args_count = bsm.bootstrap_arguments.length;
+                out.writeShort(bsm_args_count);
+                for (int i : bsm.bootstrap_arguments) {
+                    out.writeShort(i);
+                }
+            }
+            return null;
+        }
+
         public Void visitCharacterRangeTable(CharacterRangeTable_attribute attr, ClassOutputStream out) {
             out.writeShort(attr.character_range_table.length);
             for (CharacterRangeTable_attribute.Entry e: attr.character_range_table)
@@ -471,16 +495,6 @@
             return null;
         }
 
-        public Void visitRuntimeVisibleTypeAnnotations(RuntimeVisibleTypeAnnotations_attribute attr, ClassOutputStream out) {
-            annotationWriter.write(attr.annotations, out);
-            return null;
-        }
-
-        public Void visitRuntimeInvisibleTypeAnnotations(RuntimeInvisibleTypeAnnotations_attribute attr, ClassOutputStream out) {
-            annotationWriter.write(attr.annotations, out);
-            return null;
-        }
-
         public Void visitRuntimeVisibleParameterAnnotations(RuntimeVisibleParameterAnnotations_attribute attr, ClassOutputStream out) {
             out.writeByte(attr.parameter_annotations.length);
             for (Annotation[] annos: attr.parameter_annotations)
@@ -640,12 +654,6 @@
                 write(anno, out);
         }
 
-        public void write(ExtendedAnnotation[] annos, ClassOutputStream out) {
-            out.writeShort(annos.length);
-            for (ExtendedAnnotation anno: annos)
-                write(anno, out);
-        }
-
         public void write(Annotation anno, ClassOutputStream out) {
             out.writeShort(anno.type_index);
             out.writeShort(anno.element_value_pairs.length);
@@ -653,11 +661,6 @@
                 write(p, out);
         }
 
-        public void write(ExtendedAnnotation anno, ClassOutputStream out) {
-            write(anno.annotation, out);
-            write(anno.position, out);
-        }
-
         public void write(element_value_pair pair, ClassOutputStream out) {
             out.writeShort(pair.element_name_index);
             write(pair.value, out);
@@ -696,95 +699,5 @@
             return null;
         }
 
-        private void write(ExtendedAnnotation.Position p, ClassOutputStream out) {
-            out.writeByte(p.type.targetTypeValue());
-            switch (p.type) {
-            // type case
-            case TYPECAST:
-            case TYPECAST_GENERIC_OR_ARRAY:
-            // object creation
-            case INSTANCEOF:
-            case INSTANCEOF_GENERIC_OR_ARRAY:
-            // new expression
-            case NEW:
-            case NEW_GENERIC_OR_ARRAY:
-            case NEW_TYPE_ARGUMENT:
-            case NEW_TYPE_ARGUMENT_GENERIC_OR_ARRAY:
-                out.writeShort(p.offset);
-                break;
-             // local variable
-            case LOCAL_VARIABLE:
-            case LOCAL_VARIABLE_GENERIC_OR_ARRAY:
-                int table_length = p.lvarOffset.length;
-                out.writeShort(table_length);
-                for (int i = 0; i < table_length; ++i) {
-                    out.writeShort(1);  // for table length
-                    out.writeShort(p.lvarOffset[i]);
-                    out.writeShort(p.lvarLength[i]);
-                    out.writeShort(p.lvarIndex[i]);
-                }
-                break;
-             // method receiver
-            case METHOD_RECEIVER:
-                // Do nothing
-                break;
-            // type parameters
-            case CLASS_TYPE_PARAMETER:
-            case METHOD_TYPE_PARAMETER:
-                out.writeByte(p.parameter_index);
-                break;
-            // type parameters bounds
-            case CLASS_TYPE_PARAMETER_BOUND:
-            case CLASS_TYPE_PARAMETER_BOUND_GENERIC_OR_ARRAY:
-            case METHOD_TYPE_PARAMETER_BOUND:
-            case METHOD_TYPE_PARAMETER_BOUND_GENERIC_OR_ARRAY:
-                out.writeByte(p.parameter_index);
-                out.writeByte(p.bound_index);
-                break;
-             // wildcards
-            case WILDCARD_BOUND:
-            case WILDCARD_BOUND_GENERIC_OR_ARRAY:
-                write(p.wildcard_position, out);
-                break;
-            // Class extends and implements clauses
-            case CLASS_EXTENDS:
-            case CLASS_EXTENDS_GENERIC_OR_ARRAY:
-                out.writeByte(p.type_index);
-                break;
-            // throws
-            case THROWS:
-                out.writeByte(p.type_index);
-                break;
-            case CLASS_LITERAL:
-            case CLASS_LITERAL_GENERIC_OR_ARRAY:
-                out.writeShort(p.offset);
-                break;
-            // method parameter: not specified
-            case METHOD_PARAMETER_GENERIC_OR_ARRAY:
-                out.writeByte(p.parameter_index);
-                break;
-            // method type argument: wasn't specified
-            case METHOD_TYPE_ARGUMENT:
-            case METHOD_TYPE_ARGUMENT_GENERIC_OR_ARRAY:
-                out.writeShort(p.offset);
-                out.writeByte(p.type_index);
-                break;
-            // We don't need to worry abut these
-            case METHOD_RETURN_GENERIC_OR_ARRAY:
-            case FIELD_GENERIC_OR_ARRAY:
-                break;
-            case UNKNOWN:
-                break;
-            default:
-                throw new AssertionError("unknown type: " + p);
-            }
-
-            // Append location data for generics/arrays.
-            if (p.type.hasLocation()) {
-                out.writeShort(p.location.size());
-                for (int i : p.location)
-                    out.writeByte((byte)i);
-            }
-        }
     }
 }
--- a/src/share/classes/com/sun/tools/classfile/ConstantPool.java	Wed Feb 23 16:39:34 2011 -0500
+++ b/src/share/classes/com/sun/tools/classfile/ConstantPool.java	Thu Mar 10 18:42:31 2011 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2007, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 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
@@ -114,7 +114,54 @@
     public static final int CONSTANT_Methodref = 10;
     public static final int CONSTANT_InterfaceMethodref = 11;
     public static final int CONSTANT_NameAndType = 12;
-    public static final int CONSTANT_MemberReference = 15;
+    public static final int CONSTANT_MethodHandle = 15;
+    public static final int CONSTANT_MethodType = 16;
+    public static final int CONSTANT_InvokeDynamic = 18;
+
+    public static enum RefKind {
+        REF_getField(1, "getfield"),
+        REF_getStatic(2, "getstatic"),
+        REF_putField(3, "putfield"),
+        REF_putStatic(4, "putstatic"),
+        REF_invokeVirtual(5, "invokevirtual"),
+        REF_invokeStatic(6, "invokestatic"),
+        REF_invokeSpecial(7, "invokespecial"),
+        REF_newInvokeSpecial(8, "newinvokespecial"),
+        REF_invokeInterface(9, "invokeinterface");
+
+        public final int tag;
+        public final String name;
+
+        RefKind(int tag, String name) {
+            this.tag = tag;
+            this.name = name;
+        }
+
+        static RefKind getRefkind(int tag) {
+            switch(tag) {
+                case 1:
+                    return REF_getField;
+                case 2:
+                    return REF_getStatic;
+                case 3:
+                    return REF_putField;
+                case 4:
+                    return REF_putStatic;
+                case 5:
+                    return REF_invokeVirtual;
+                case 6:
+                    return REF_invokeStatic;
+                case 7:
+                    return REF_invokeSpecial;
+                case 8:
+                    return REF_newInvokeSpecial;
+                case 9:
+                    return REF_invokeInterface;
+                default:
+                    return null;
+            }
+        }
+    }
 
     ConstantPool(ClassReader cr) throws IOException, InvalidEntry {
         int count = cr.readUnsignedShort();
@@ -147,11 +194,23 @@
                 pool[i] = new CONSTANT_InterfaceMethodref_info(this, cr);
                 break;
 
+            case CONSTANT_InvokeDynamic:
+                pool[i] = new CONSTANT_InvokeDynamic_info(this, cr);
+                break;
+
             case CONSTANT_Long:
                 pool[i] = new CONSTANT_Long_info(cr);
                 i++;
                 break;
 
+            case CONSTANT_MethodHandle:
+                pool[i] = new CONSTANT_MethodHandle_info(this, cr);
+                break;
+
+            case CONSTANT_MethodType:
+                pool[i] = new CONSTANT_MethodType_info(this, cr);
+                break;
+
             case CONSTANT_Methodref:
                 pool[i] = new CONSTANT_Methodref_info(this, cr);
                 break;
@@ -168,10 +227,6 @@
                 pool[i] = new CONSTANT_Utf8_info(cr);
                 break;
 
-            case CONSTANT_MemberReference:
-                pool[i] = new CONSTANT_MemberReference_info(this, cr);
-                break;
-
             default:
                 throw new InvalidEntry(i, tag);
             }
@@ -284,12 +339,14 @@
         R visitFloat(CONSTANT_Float_info info, P p);
         R visitInteger(CONSTANT_Integer_info info, P p);
         R visitInterfaceMethodref(CONSTANT_InterfaceMethodref_info info, P p);
+        R visitInvokeDynamic(CONSTANT_InvokeDynamic_info info, P p);
         R visitLong(CONSTANT_Long_info info, P p);
         R visitNameAndType(CONSTANT_NameAndType_info info, P p);
         R visitMethodref(CONSTANT_Methodref_info info, P p);
+        R visitMethodHandle(CONSTANT_MethodHandle_info info, P p);
+        R visitMethodType(CONSTANT_MethodType_info info, P p);
         R visitString(CONSTANT_String_info info, P p);
         R visitUtf8(CONSTANT_Utf8_info info, P p);
-        R visitMemberReference(CONSTANT_MemberReference_info info, P p);
     }
 
     public static abstract class CPInfo {
@@ -554,6 +611,44 @@
         }
     }
 
+    public static class CONSTANT_InvokeDynamic_info extends CPInfo {
+        CONSTANT_InvokeDynamic_info(ConstantPool cp, ClassReader cr) throws IOException {
+            super(cp);
+            bootstrap_method_attr_index = cr.readUnsignedShort();
+            name_and_type_index = cr.readUnsignedShort();
+        }
+
+        public CONSTANT_InvokeDynamic_info(ConstantPool cp, int bootstrap_method_index, int name_and_type_index) {
+            super(cp);
+            this.bootstrap_method_attr_index = bootstrap_method_index;
+            this.name_and_type_index = name_and_type_index;
+        }
+
+        public int getTag() {
+            return CONSTANT_InvokeDynamic;
+        }
+
+        public int byteLength() {
+            return 5;
+        }
+
+        @Override
+        public String toString() {
+            return "CONSTANT_InvokeDynamic_info[bootstrap_method_index: " + bootstrap_method_attr_index + ", name_and_type_index: " + name_and_type_index + "]";
+        }
+
+        public <R, D> R accept(Visitor<R, D> visitor, D data) {
+            return visitor.visitInvokeDynamic(this, data);
+        }
+
+        public CONSTANT_NameAndType_info getNameAndTypeInfo() throws ConstantPoolException {
+            return cp.getNameAndTypeInfo(name_and_type_index);
+        }
+
+        public final int bootstrap_method_attr_index;
+        public final int name_and_type_index;
+    }
+
     public static class CONSTANT_Long_info extends CPInfo {
         CONSTANT_Long_info(ClassReader cr) throws IOException {
             value = cr.readLong();
@@ -588,6 +683,87 @@
         public final long value;
     }
 
+    public static class CONSTANT_MethodHandle_info extends CPInfo {
+        CONSTANT_MethodHandle_info(ConstantPool cp, ClassReader cr) throws IOException {
+            super(cp);
+            reference_kind =  RefKind.getRefkind(cr.readUnsignedByte());
+            reference_index = cr.readUnsignedShort();
+        }
+
+        public CONSTANT_MethodHandle_info(ConstantPool cp, RefKind ref_kind, int member_index) {
+            super(cp);
+            this.reference_kind = ref_kind;
+            this.reference_index = member_index;
+        }
+
+        public int getTag() {
+            return CONSTANT_MethodHandle;
+        }
+
+        public int byteLength() {
+            return 4;
+        }
+
+        @Override
+        public String toString() {
+            return "CONSTANT_MethodHandle_info[ref_kind: " + reference_kind + ", member_index: " + reference_index + "]";
+        }
+
+        public <R, D> R accept(Visitor<R, D> visitor, D data) {
+            return visitor.visitMethodHandle(this, data);
+        }
+
+        public CPRefInfo getCPRefInfo() throws ConstantPoolException {
+            int expected = CONSTANT_Methodref;
+            int actual = cp.get(reference_index).getTag();
+            // allow these tag types also:
+            switch (actual) {
+                case CONSTANT_Fieldref:
+                case CONSTANT_InterfaceMethodref:
+                    expected = actual;
+            }
+            return (CPRefInfo) cp.get(reference_index, expected);
+        }
+
+        public final RefKind reference_kind;
+        public final int reference_index;
+    }
+
+    public static class CONSTANT_MethodType_info extends CPInfo {
+        CONSTANT_MethodType_info(ConstantPool cp, ClassReader cr) throws IOException {
+            super(cp);
+            descriptor_index = cr.readUnsignedShort();
+        }
+
+        public CONSTANT_MethodType_info(ConstantPool cp, int signature_index) {
+            super(cp);
+            this.descriptor_index = signature_index;
+        }
+
+        public int getTag() {
+            return CONSTANT_MethodType;
+        }
+
+        public int byteLength() {
+            return 3;
+        }
+
+        @Override
+        public String toString() {
+            return "CONSTANT_MethodType_info[signature_index: " + descriptor_index + "]";
+        }
+
+        public <R, D> R accept(Visitor<R, D> visitor, D data) {
+            return visitor.visitMethodType(this, data);
+        }
+
+        public String getType() throws ConstantPoolException {
+            return cp.getUTF8Value(descriptor_index);
+        }
+
+        public final int descriptor_index;
+    }
+
     public static class CONSTANT_Methodref_info extends CPRefInfo {
         CONSTANT_Methodref_info(ConstantPool cp, ClassReader cr) throws IOException {
             super(cp, cr, CONSTANT_Methodref);
@@ -735,70 +911,4 @@
         public final String value;
     }
 
-    public static class CONSTANT_MemberReference_info extends CPInfo {
-
-        enum ReferenceKind {
-            REF_getField(1),
-            REF_getStatic(2),
-            REF_putField(3),
-            REF_putStatic(4),
-            REF_invokeVirtual(5),
-            REF_invokeStatic(6),
-            REF_invokeSpecial(7),
-            REF_newInvokeSpecial(8),
-            REF_invokeInterface(9);
-
-            int refCode;
-
-            ReferenceKind(int refCode) {
-                this.refCode = refCode;
-            }
-        }
-
-        CONSTANT_MemberReference_info(ConstantPool cp, ClassReader cr) throws IOException {
-            super(cp);
-            refKind = cr.readUnsignedByte();
-            refIdx = cr.readUnsignedShort();
-        }
-
-        public CONSTANT_MemberReference_info(ConstantPool cp, int refKind, int refIdx) {
-            super(cp);
-            this.refKind = refKind;
-            this.refIdx = refIdx;
-        }
-
-        public int getTag() {
-            return CONSTANT_MemberReference;
-        }
-
-        public int byteLength() {
-            return 4;
-        }
-
-        public ReferenceKind getReferenceKind() throws ConstantPoolException {
-            for (ReferenceKind rk : ReferenceKind.values()) {
-                if (rk.refCode == refKind) {
-                    return rk;
-                }
-            }
-            assert false;
-            return null;
-        }
-
-        public CPInfo getType() throws ConstantPoolException {
-            return cp.get(refIdx);
-        }
-
-        public <R, D> R accept(Visitor<R, D> visitor, D data) {
-            return visitor.visitMemberReference(this, data);
-        }
-
-        @Override
-        public String toString() {
-            return "CONSTANT_MemberReference_info[ref_kind: " + refKind + ", ref_index: " + refIdx + "]";
-        }
-
-        public final int refKind;
-        public final int refIdx;
-    }
 }
--- a/src/share/classes/com/sun/tools/classfile/Dependencies.java	Wed Feb 23 16:39:34 2011 -0500
+++ b/src/share/classes/com/sun/tools/classfile/Dependencies.java	Thu Mar 10 18:42:31 2011 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 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
@@ -643,13 +643,16 @@
                 return visitRef(info, p);
             }
 
-            public Void visitMemberReference(CONSTANT_MemberReference_info info, Void p) {
-                try {
-                    new Signature(info.refIdx).getType(constant_pool).accept(this, null);
-                    return null;
-                } catch (ConstantPoolException e) {
-                    throw new ClassFileError(e);
-                }
+            public Void visitMethodHandle(CONSTANT_MethodHandle_info info, Void p) {
+                return null;
+            }
+
+            public Void visitMethodType(CONSTANT_MethodType_info info, Void p) {
+                return null;
+            }
+
+            public Void visitInvokeDynamic(CONSTANT_InvokeDynamic_info info, Void p) {
+                return null;
             }
 
             public Void visitString(CONSTANT_String_info info, Void p) {
--- a/src/share/classes/com/sun/tools/classfile/ExtendedAnnotation.java	Wed Feb 23 16:39:34 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,612 +0,0 @@
-/*
- * Copyright (c) 2009, 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.tools.classfile;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.EnumSet;
-import java.util.List;
-import java.util.Set;
-
-import static com.sun.tools.classfile.ExtendedAnnotation.TargetAttribute.*;
-
-/**
- * See JSR 308 specification, section 4.1
- *
- *  <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.
- *  This code and its internal interfaces are subject to change or
- *  deletion without notice.</b>
- */
-public class ExtendedAnnotation {
-    ExtendedAnnotation(ClassReader cr) throws IOException, Annotation.InvalidAnnotation {
-        annotation = new Annotation(cr);
-        position = read_position(cr);
-    }
-
-    public ExtendedAnnotation(ConstantPool constant_pool,
-            Annotation annotation, Position position) {
-        this.annotation = annotation;
-        this.position = position;
-    }
-
-    public int length() {
-        int n = annotation.length();
-        n += position_length(position);
-        return n;
-    }
-
-    public final Annotation annotation;
-    public final Position position;
-
-    private static Position read_position(ClassReader cr) throws IOException, Annotation.InvalidAnnotation {
-        // Copied from ClassReader
-        int tag = (byte)cr.readUnsignedByte();  // cast to introduce signedness
-        if (!TargetType.isValidTargetTypeValue(tag))
-            throw new Annotation.InvalidAnnotation("invalid type annotation target type value: " + tag);
-
-        TargetType type = TargetType.fromTargetTypeValue(tag);
-
-        Position position = new Position();
-        position.type = type;
-
-        switch (type) {
-        // type case
-        case TYPECAST:
-        case TYPECAST_GENERIC_OR_ARRAY:
-        // object creation
-        case INSTANCEOF:
-        case INSTANCEOF_GENERIC_OR_ARRAY:
-        // new expression
-        case NEW:
-        case NEW_GENERIC_OR_ARRAY:
-            position.offset = cr.readUnsignedShort();
-            break;
-         // local variable
-        case LOCAL_VARIABLE:
-        case LOCAL_VARIABLE_GENERIC_OR_ARRAY:
-            int table_length = cr.readUnsignedShort();
-            position.lvarOffset = new int[table_length];
-            position.lvarLength = new int[table_length];
-            position.lvarIndex = new int[table_length];
-            for (int i = 0; i < table_length; ++i) {
-                position.lvarOffset[i] = cr.readUnsignedShort();
-                position.lvarLength[i] = cr.readUnsignedShort();
-                position.lvarIndex[i] = cr.readUnsignedShort();
-            }
-            break;
-         // method receiver
-        case METHOD_RECEIVER:
-            // Do nothing
-            break;
-        // type parameters
-        case CLASS_TYPE_PARAMETER:
-        case METHOD_TYPE_PARAMETER:
-            position.parameter_index = cr.readUnsignedByte();
-            break;
-        // type parameter bounds
-        case CLASS_TYPE_PARAMETER_BOUND:
-        case CLASS_TYPE_PARAMETER_BOUND_GENERIC_OR_ARRAY:
-        case METHOD_TYPE_PARAMETER_BOUND:
-        case METHOD_TYPE_PARAMETER_BOUND_GENERIC_OR_ARRAY:
-            position.parameter_index = cr.readUnsignedByte();
-            position.bound_index = cr.readUnsignedByte();
-            break;
-         // wildcards
-        case WILDCARD_BOUND:
-        case WILDCARD_BOUND_GENERIC_OR_ARRAY:
-            position.wildcard_position = read_position(cr);
-            break;
-         // Class extends and implements clauses
-        case CLASS_EXTENDS:
-        case CLASS_EXTENDS_GENERIC_OR_ARRAY:
-            int in = cr.readUnsignedShort();
-            if (in == 0xFFFF)
-                in = -1;
-            position.type_index = in;
-            break;
-        // throws
-        case THROWS:
-            position.type_index = cr.readUnsignedShort();
-            break;
-        case CLASS_LITERAL:
-        case CLASS_LITERAL_GENERIC_OR_ARRAY:
-            position.offset = cr.readUnsignedShort();
-            break;
-        // method parameter: not specified
-        case METHOD_PARAMETER_GENERIC_OR_ARRAY:
-            position.parameter_index = cr.readUnsignedByte();
-            break;
-        // method type argument: wasn't specified
-        case NEW_TYPE_ARGUMENT:
-        case NEW_TYPE_ARGUMENT_GENERIC_OR_ARRAY:
-        case METHOD_TYPE_ARGUMENT:
-        case METHOD_TYPE_ARGUMENT_GENERIC_OR_ARRAY:
-            position.offset = cr.readUnsignedShort();
-            position.type_index = cr.readUnsignedByte();
-            break;
-        // We don't need to worry abut these
-        case METHOD_RETURN_GENERIC_OR_ARRAY:
-        case FIELD_GENERIC_OR_ARRAY:
-            break;
-        case UNKNOWN:
-            break;
-        default:
-            throw new AssertionError("Cannot be here");
-        }
-
-        if (type.hasLocation()) {
-            int len = cr.readUnsignedShort();
-            List<Integer> loc = new ArrayList<Integer>(len);
-            for (int i = 0; i < len; i++)
-                loc.add(cr.readUnsignedByte());
-            position.location = loc;
-        }
-        return position;
-    }
-
-    private static int position_length(Position pos) {
-        int n = 0;
-        n += 1; // target_type
-        switch (pos.type) {
-        // type case
-        case TYPECAST:
-        case TYPECAST_GENERIC_OR_ARRAY:
-        // object creation
-        case INSTANCEOF:
-        case INSTANCEOF_GENERIC_OR_ARRAY:
-        // new expression
-        case NEW:
-        case NEW_GENERIC_OR_ARRAY:
-            n += 2;
-            break;
-         // local variable
-        case LOCAL_VARIABLE:
-        case LOCAL_VARIABLE_GENERIC_OR_ARRAY:
-            n += 2; // table_length;
-            int table_length = pos.lvarOffset.length;
-            n += 2 * table_length; // offset
-            n += 2 * table_length; // length;
-            n += 2 * table_length; // index
-            break;
-         // method receiver
-        case METHOD_RECEIVER:
-            // Do nothing
-            break;
-        // type parameters
-        case CLASS_TYPE_PARAMETER:
-        case METHOD_TYPE_PARAMETER:
-            n += 1; // parameter_index;
-            break;
-        // type parameter bounds
-        case CLASS_TYPE_PARAMETER_BOUND:
-        case CLASS_TYPE_PARAMETER_BOUND_GENERIC_OR_ARRAY:
-        case METHOD_TYPE_PARAMETER_BOUND:
-        case METHOD_TYPE_PARAMETER_BOUND_GENERIC_OR_ARRAY:
-            n += 1; // parameter_index
-            n += 1; // bound_index
-            break;
-        case WILDCARD_BOUND:
-        case WILDCARD_BOUND_GENERIC_OR_ARRAY:
-            n += position_length(pos.wildcard_position);
-            break;
-         // Class extends and implements clauses
-        case CLASS_EXTENDS:
-        case CLASS_EXTENDS_GENERIC_OR_ARRAY:
-            n += 2; // type_index
-            break;
-        // throws
-        case THROWS:
-            n += 2; // type_index
-            break;
-        case CLASS_LITERAL:
-        case CLASS_LITERAL_GENERIC_OR_ARRAY:
-            n += 1; // offset
-            break;
-        // method parameter: not specified
-        case METHOD_PARAMETER_GENERIC_OR_ARRAY:
-            n += 1; // parameter_index
-            break;
-        // method type argument: wasn't specified
-        case NEW_TYPE_ARGUMENT:
-        case NEW_TYPE_ARGUMENT_GENERIC_OR_ARRAY:
-        case METHOD_TYPE_ARGUMENT:
-        case METHOD_TYPE_ARGUMENT_GENERIC_OR_ARRAY:
-            n += 2; // offset
-            n += 1; // type index
-            break;
-        // We don't need to worry abut these
-        case METHOD_RETURN_GENERIC_OR_ARRAY:
-        case FIELD_GENERIC_OR_ARRAY:
-            break;
-        case UNKNOWN:
-            break;
-        default:
-        }
-
-        if (pos.type.hasLocation()) {
-            n += 2; // length
-            n += 1 * pos.location.size(); // actual array size
-        }
-
-        return n;
-    }
-
-    // Code duplicated from com.sun.tools.javac.code.TypeAnnotations.Position
-    public static class Position {
-
-        public TargetType type = TargetType.UNKNOWN;
-
-        // For generic/array types.
-        public List<Integer> location = new ArrayList<Integer>();
-
-        // For typecasts, type tests, new (and locals, as start_pc).
-        public int offset = -1;
-
-        // For locals.
-        public int[] lvarOffset = null;
-        public int[] lvarLength = null;
-        public int[] lvarIndex = null;
-
-        // For type parameter bound
-        public int bound_index = Integer.MIN_VALUE;
-
-        // For type parameter and method parameter
-        public int parameter_index = Integer.MIN_VALUE;
-
-        // For class extends, implements, and throws classes
-        public int type_index = Integer.MIN_VALUE;
-
-        // For wildcards
-        public Position wildcard_position = null;
-
-        @Override
-        public String toString() {
-            StringBuilder sb = new StringBuilder();
-            sb.append('[');
-            sb.append(type);
-
-            switch (type) {
-            // type case
-            case TYPECAST:
-            case TYPECAST_GENERIC_OR_ARRAY:
-            // object creation
-            case INSTANCEOF:
-            case INSTANCEOF_GENERIC_OR_ARRAY:
-            // new expression
-            case NEW:
-            case NEW_GENERIC_OR_ARRAY:
-            case NEW_TYPE_ARGUMENT:
-            case NEW_TYPE_ARGUMENT_GENERIC_OR_ARRAY:
-                sb.append(", offset = ");
-                sb.append(offset);
-                break;
-             // local variable
-            case LOCAL_VARIABLE:
-            case LOCAL_VARIABLE_GENERIC_OR_ARRAY:
-                sb.append(", {");
-                for (int i = 0; i < lvarOffset.length; ++i) {
-                    if (i != 0) sb.append("; ");
-                    sb.append(", start_pc = ");
-                    sb.append(lvarOffset[i]);
-                    sb.append(", length = ");
-                    sb.append(lvarLength[i]);
-                    sb.append(", index = ");
-                    sb.append(lvarIndex[i]);
-                }
-                sb.append("}");
-                break;
-             // method receiver
-            case METHOD_RECEIVER:
-                // Do nothing
-                break;
-            // type parameters
-            case CLASS_TYPE_PARAMETER:
-            case METHOD_TYPE_PARAMETER:
-                sb.append(", param_index = ");
-                sb.append(parameter_index);
-                break;
-            // type parameters bound
-            case CLASS_TYPE_PARAMETER_BOUND:
-            case CLASS_TYPE_PARAMETER_BOUND_GENERIC_OR_ARRAY:
-            case METHOD_TYPE_PARAMETER_BOUND:
-            case METHOD_TYPE_PARAMETER_BOUND_GENERIC_OR_ARRAY:
-                sb.append(", param_index = ");
-                sb.append(parameter_index);
-                sb.append(", bound_index = ");
-                sb.append(bound_index);
-                break;
-             // wildcard
-            case WILDCARD_BOUND:
-            case WILDCARD_BOUND_GENERIC_OR_ARRAY:
-                sb.append(", wild_card = ");
-                sb.append(wildcard_position);
-                break;
-             // Class extends and implements clauses
-            case CLASS_EXTENDS:
-            case CLASS_EXTENDS_GENERIC_OR_ARRAY:
-                sb.append(", type_index = ");
-                sb.append(type_index);
-                break;
-            // throws
-            case THROWS:
-                sb.append(", type_index = ");
-                sb.append(type_index);
-                break;
-            case CLASS_LITERAL:
-            case CLASS_LITERAL_GENERIC_OR_ARRAY:
-                sb.append(", offset = ");
-                sb.append(offset);
-                break;
-            // method parameter: not specified
-            case METHOD_PARAMETER_GENERIC_OR_ARRAY:
-                sb.append(", param_index = ");
-                sb.append(parameter_index);
-                break;
-            // method type argument: wasn't specified
-            case METHOD_TYPE_ARGUMENT:
-            case METHOD_TYPE_ARGUMENT_GENERIC_OR_ARRAY:
-                sb.append(", offset = ");
-                sb.append(offset);
-                sb.append(", type_index = ");
-                sb.append(type_index);
-                break;
-            // We don't need to worry abut these
-            case METHOD_RETURN_GENERIC_OR_ARRAY:
-            case FIELD_GENERIC_OR_ARRAY:
-                break;
-            case UNKNOWN:
-                break;
-            default:
-                throw new AssertionError("unknown type: " + type);
-            }
-
-            // Append location data for generics/arrays.
-            if (type.hasLocation()) {
-                sb.append(", location = (");
-                sb.append(location);
-                sb.append(")");
-            }
-
-            sb.append(']');
-            return sb.toString();
-        }
-    }
-
-    // Code duplicated from com.sun.tools.javac.comp.TargetType
-    public enum TargetType {
-
-        /** For annotations on typecasts. */
-        TYPECAST(0x00),
-
-        /** For annotations on a type argument or nested array of a typecast. */
-        TYPECAST_GENERIC_OR_ARRAY(0x01, HasLocation),
-
-        /** For annotations on type tests. */
-        INSTANCEOF(0x02),
-
-        /** For annotations on a type argument or nested array of a type test. */
-        INSTANCEOF_GENERIC_OR_ARRAY(0x03, HasLocation),
-
-        /** For annotations on object creation expressions. */
-        NEW(0x04),
-
-        /**
-         * For annotations on a type argument or nested array of an object creation
-         * expression.
-         */
-        NEW_GENERIC_OR_ARRAY(0x05, HasLocation),
-
-
-        /** For annotations on the method receiver. */
-        METHOD_RECEIVER(0x06),
-
-        // invalid location
-        // METHOD_RECEIVER_GENERIC_OR_ARRAY(0x07, HasLocation),
-
-        /** For annotations on local variables. */
-        LOCAL_VARIABLE(0x08),
-
-        /** For annotations on a type argument or nested array of a local. */
-        LOCAL_VARIABLE_GENERIC_OR_ARRAY(0x09, HasLocation),
-
-        // already handled by regular annotations
-        // METHOD_RETURN(0x0A),
-
-        /**
-         * For annotations on a type argument or nested array of a method return
-         * type.
-         */
-        METHOD_RETURN_GENERIC_OR_ARRAY(0x0B, HasLocation),
-
-        // already handled by regular annotations
-        // METHOD_PARAMETER(0x0C),
-
-        /** For annotations on a type argument or nested array of a method parameter. */
-        METHOD_PARAMETER_GENERIC_OR_ARRAY(0x0D, HasLocation),
-
-        // already handled by regular annotations
-        // FIELD(0x0E),
-
-        /** For annotations on a type argument or nested array of a field. */
-        FIELD_GENERIC_OR_ARRAY(0x0F, HasLocation),
-
-        /** For annotations on a bound of a type parameter of a class. */
-        CLASS_TYPE_PARAMETER_BOUND(0x10, HasBound, HasParameter),
-
-        /**
-         * For annotations on a type argument or nested array of a bound of a type
-         * parameter of a class.
-         */
-        CLASS_TYPE_PARAMETER_BOUND_GENERIC_OR_ARRAY(0x11, HasBound, HasLocation, HasParameter),
-
-        /** For annotations on a bound of a type parameter of a method. */
-        METHOD_TYPE_PARAMETER_BOUND(0x12, HasBound, HasParameter),
-
-        /**
-         * For annotations on a type argument or nested array of a bound of a type
-         * parameter of a method.
-         */
-        METHOD_TYPE_PARAMETER_BOUND_GENERIC_OR_ARRAY(0x13, HasBound, HasLocation, HasParameter),
-
-        /** For annotations on the type of an "extends" or "implements" clause. */
-        CLASS_EXTENDS(0x14),
-
-        /** For annotations on the inner type of an "extends" or "implements" clause. */
-        CLASS_EXTENDS_GENERIC_OR_ARRAY(0x15, HasLocation),
-
-        /** For annotations on a throws clause in a method declaration. */
-        THROWS(0x16),
-
-        // invalid location
-        // THROWS_GENERIC_OR_ARRAY(0x17, HasLocation),
-
-        /** For annotations in type arguments of object creation expressions. */
-        NEW_TYPE_ARGUMENT(0x18),
-        NEW_TYPE_ARGUMENT_GENERIC_OR_ARRAY(0x19, HasLocation),
-
-        METHOD_TYPE_ARGUMENT(0x1A),
-        METHOD_TYPE_ARGUMENT_GENERIC_OR_ARRAY(0x1B, HasLocation),
-
-        WILDCARD_BOUND(0x1C, HasBound),
-        WILDCARD_BOUND_GENERIC_OR_ARRAY(0x1D, HasBound, HasLocation),
-
-        CLASS_LITERAL(0x1E),
-        CLASS_LITERAL_GENERIC_OR_ARRAY(0x1F, HasLocation),
-
-        METHOD_TYPE_PARAMETER(0x20, HasParameter),
-
-        // invalid location
-        // METHOD_TYPE_PARAMETER_GENERIC_OR_ARRAY(0x21, HasLocation, HasParameter),
-
-        CLASS_TYPE_PARAMETER(0x22, HasParameter),
-
-        // invalid location
-        // CLASS_TYPE_PARAMETER_GENERIC_OR_ARRAY(0x23, HasLocation, HasParameter),
-
-        /** For annotations with an unknown target. */
-        UNKNOWN(-1);
-
-        static final int MAXIMUM_TARGET_TYPE_VALUE = 0x22;
-
-        private final int targetTypeValue;
-        private Set<TargetAttribute> flags;
-
-        TargetType(int targetTypeValue, TargetAttribute... attrs) {
-            if (targetTypeValue < Byte.MIN_VALUE
-                || targetTypeValue > Byte.MAX_VALUE)
-                throw new AssertionError("attribute type value needs to be a byte: " + targetTypeValue);
-            this.targetTypeValue = (byte)targetTypeValue;
-            this.flags = EnumSet.noneOf(TargetAttribute.class);
-            for (TargetAttribute attr : attrs)
-                this.flags.add(attr);
-        }
-
-        /**
-         * Returns whether or not this TargetType represents an annotation whose
-         * target is an inner type of a generic or array type.
-         *
-         * @return true if this TargetType represents an annotation on an inner
-         *         type, false otherwise
-         */
-        public boolean hasLocation() {
-            return flags.contains(HasLocation);
-        }
-
-        public TargetType getGenericComplement() {
-            if (hasLocation())
-                return this;
-            else
-                return fromTargetTypeValue(targetTypeValue() + 1);
-        }
-
-        /**
-         * Returns whether or not this TargetType represents an annotation whose
-         * target has a parameter index.
-         *
-         * @return true if this TargetType has a parameter index,
-         *         false otherwise
-         */
-        public boolean hasParameter() {
-            return flags.contains(HasParameter);
-        }
-
-        /**
-         * Returns whether or not this TargetType represents an annotation whose
-         * target is a type parameter bound.
-         *
-         * @return true if this TargetType represents an type parameter bound
-         *         annotation, false otherwise
-         */
-        public boolean hasBound() {
-            return flags.contains(HasBound);
-        }
-
-        public int targetTypeValue() {
-            return this.targetTypeValue;
-        }
-
-        private static TargetType[] targets = null;
-
-        private static TargetType[] buildTargets() {
-            TargetType[] targets = new TargetType[MAXIMUM_TARGET_TYPE_VALUE + 1];
-            TargetType[] alltargets = values();
-            for (TargetType target : alltargets)
-                if (target.targetTypeValue >= 0)
-                    targets[target.targetTypeValue] = target;
-            for (int i = 0; i <= MAXIMUM_TARGET_TYPE_VALUE; ++i)
-                if (targets[i] == null)
-                    targets[i] = UNKNOWN;
-            return targets;
-        }
-
-        public static boolean isValidTargetTypeValue(int tag) {
-            if (targets == null)
-                targets = buildTargets();
-
-            if (((byte)tag) == ((byte)UNKNOWN.targetTypeValue))
-                return true;
-
-            return (tag >= 0 && tag < targets.length);
-        }
-
-        public static TargetType fromTargetTypeValue(int tag) {
-            if (targets == null)
-                targets = buildTargets();
-
-            if (((byte)tag) == ((byte)UNKNOWN.targetTypeValue))
-                return UNKNOWN;
-
-            if (tag < 0 || tag >= targets.length)
-                throw new IllegalArgumentException("Unknown TargetType: " + tag);
-            return targets[tag];
-        }
-    }
-
-    static enum TargetAttribute {
-        HasLocation, HasParameter, HasBound;
-    }
-}
--- a/src/share/classes/com/sun/tools/classfile/RuntimeInvisibleTypeAnnotations_attribute.java	Wed Feb 23 16:39:34 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-/*
- * Copyright (c) 2007, 2008, 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.tools.classfile;
-
-import java.io.IOException;
-
-/**
- * See JSR 308 specification, section 4.1
- *
- *  <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.
- *  This code and its internal interfaces are subject to change or
- *  deletion without notice.</b>
- */
-public class RuntimeInvisibleTypeAnnotations_attribute extends RuntimeTypeAnnotations_attribute {
-    RuntimeInvisibleTypeAnnotations_attribute(ClassReader cr, int name_index, int length)
-            throws IOException, Annotation.InvalidAnnotation {
-        super(cr, name_index, length);
-    }
-
-    public RuntimeInvisibleTypeAnnotations_attribute(ConstantPool cp, ExtendedAnnotation[] annotations)
-            throws ConstantPoolException {
-        this(cp.getUTF8Index(Attribute.RuntimeInvisibleTypeAnnotations), annotations);
-    }
-
-    public RuntimeInvisibleTypeAnnotations_attribute(int name_index, ExtendedAnnotation[] annotations) {
-        super(name_index, annotations);
-    }
-
-    public <R, P> R accept(Visitor<R, P> visitor, P p) {
-        return visitor.visitRuntimeInvisibleTypeAnnotations(this, p);
-    }
-}
--- a/src/share/classes/com/sun/tools/classfile/RuntimeTypeAnnotations_attribute.java	Wed Feb 23 16:39:34 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-/*
- * Copyright (c) 2007, 2008, 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.tools.classfile;
-
-import java.io.IOException;
-
-/**
- * See JSR 308 specification, section 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.
- *  This code and its internal interfaces are subject to change or
- *  deletion without notice.</b>
- */
-public abstract class RuntimeTypeAnnotations_attribute extends Attribute {
-    protected RuntimeTypeAnnotations_attribute(ClassReader cr, int name_index, int length)
-            throws IOException, Annotation.InvalidAnnotation {
-        super(name_index, length);
-        int num_annotations = cr.readUnsignedShort();
-        annotations = new ExtendedAnnotation[num_annotations];
-        for (int i = 0; i < annotations.length; i++)
-            annotations[i] = new ExtendedAnnotation(cr);
-    }
-
-    protected RuntimeTypeAnnotations_attribute(int name_index, ExtendedAnnotation[] annotations) {
-        super(name_index, length(annotations));
-        this.annotations = annotations;
-    }
-
-    private static int length(ExtendedAnnotation[] annos) {
-        int n = 2;
-        for (ExtendedAnnotation anno: annos)
-            n += anno.length();
-        return n;
-    }
-
-    public final ExtendedAnnotation[] annotations;
-}
--- a/src/share/classes/com/sun/tools/classfile/RuntimeVisibleTypeAnnotations_attribute.java	Wed Feb 23 16:39:34 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-/*
- * Copyright (c) 2007, 2008, 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.tools.classfile;
-
-import java.io.IOException;
-
-/**
- * See JSR 308 specification, section 4.1
- *
- *  <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.
- *  This code and its internal interfaces are subject to change or
- *  deletion without notice.</b>
- */
-public class RuntimeVisibleTypeAnnotations_attribute extends RuntimeTypeAnnotations_attribute {
-    RuntimeVisibleTypeAnnotations_attribute(ClassReader cr, int name_index, int length)
-            throws IOException, Annotation.InvalidAnnotation {
-        super(cr, name_index, length);
-    }
-
-    public RuntimeVisibleTypeAnnotations_attribute(ConstantPool cp, ExtendedAnnotation[] annotations)
-            throws ConstantPoolException {
-        this(cp.getUTF8Index(Attribute.RuntimeVisibleTypeAnnotations), annotations);
-    }
-
-    public RuntimeVisibleTypeAnnotations_attribute(int name_index, ExtendedAnnotation[] annotations) {
-        super(name_index, annotations);
-    }
-
-    public <R, P> R accept(Visitor<R, P> visitor, P p) {
-        return visitor.visitRuntimeVisibleTypeAnnotations(this, p);
-    }
-}
--- a/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlTree.java	Wed Feb 23 16:39:34 2011 -0500
+++ b/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlTree.java	Thu Mar 10 18:42:31 2011 -0500
@@ -755,22 +755,30 @@
         if (!isInline() && !endsWithNewLine(contentBuilder))
             contentBuilder.append(DocletConstants.NL);
         String tagString = htmlTag.toString();
-        contentBuilder.append("<" + tagString);
+        contentBuilder.append("<");
+        contentBuilder.append(tagString);
         Iterator<HtmlAttr> iterator = attrs.keySet().iterator();
         HtmlAttr key;
         String value = "";
         while (iterator.hasNext()) {
             key = iterator.next();
             value = attrs.get(key);
-            contentBuilder.append(" " + key.toString());
-            if (!value.isEmpty())
-                contentBuilder.append("=\"" + value + "\"");
+            contentBuilder.append(" ");
+            contentBuilder.append(key.toString());
+            if (!value.isEmpty()) {
+                contentBuilder.append("=\"");
+                contentBuilder.append(value);
+                contentBuilder.append("\"");
+            }
         }
         contentBuilder.append(">");
         for (Content c : content)
             c.write(contentBuilder);
-        if (htmlTag.endTagRequired())
-            contentBuilder.append("</" + tagString + ">");
+        if (htmlTag.endTagRequired()) {
+            contentBuilder.append("</");
+            contentBuilder.append(tagString);
+            contentBuilder.append(">");
+        }
         if (!isInline())
             contentBuilder.append(DocletConstants.NL);
     }
--- a/src/share/classes/com/sun/tools/doclets/formats/html/resources/standard_ja.properties	Wed Feb 23 16:39:34 2011 -0500
+++ b/src/share/classes/com/sun/tools/doclets/formats/html/resources/standard_ja.properties	Thu Mar 10 18:42:31 2011 -0500
@@ -1,224 +1,225 @@
-doclet.build_version=\u6a19\u6e96 Doclet \u30d0\u30fc\u30b8\u30e7\u30f3 {0}
-doclet.Contents=\u30b3\u30f3\u30c6\u30f3\u30c4
+doclet.build_version=\u6A19\u6E96Doclet\u30D0\u30FC\u30B8\u30E7\u30F3{0}
+doclet.Contents=\u30B3\u30F3\u30C6\u30F3\u30C4
 doclet.Overview=\u6982\u8981
-doclet.Window_Overview=\u6982\u8981\u30ea\u30b9\u30c8
+doclet.Window_Overview=\u6982\u8981\u30EA\u30B9\u30C8
 doclet.Window_Overview_Summary=\u6982\u8981
-doclet.Package=\u30d1\u30c3\u30b1\u30fc\u30b8
-doclet.All_Packages=\u3059\u3079\u3066\u306e\u30d1\u30c3\u30b1\u30fc\u30b8
-doclet.Tree=\u968e\u5c64\u30c4\u30ea\u30fc
-doclet.Class_Hierarchy=\u30af\u30e9\u30b9\u968e\u5c64
-doclet.Window_Class_Hierarchy=\u30af\u30e9\u30b9\u968e\u5c64
-doclet.Interface_Hierarchy=\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u968e\u5c64
-doclet.Enum_Hierarchy=\u5217\u6319\u578b\u968e\u5c64
-doclet.Annotation_Type_Hierarchy=\u6ce8\u91c8\u578b\u968e\u5c64
-doclet.Prev=\u524d
-doclet.Next=\u6b21
-doclet.Prev_Class=\u524d\u306e\u30af\u30e9\u30b9
-doclet.Next_Class=\u6b21\u306e\u30af\u30e9\u30b9
-doclet.Prev_Package=\u524d\u306e\u30d1\u30c3\u30b1\u30fc\u30b8
-doclet.Next_Package=\u6b21\u306e\u30d1\u30c3\u30b1\u30fc\u30b8
-doclet.Prev_Letter=\u524d\u306e\u6587\u5b57
-doclet.Next_Letter=\u6b21\u306e\u6587\u5b57
-doclet.Show_Lists=\u30ea\u30b9\u30c8\u306e\u8868\u793a
-doclet.Hide_Lists=\u30ea\u30b9\u30c8\u306e\u975e\u8868\u793a
-doclet.Href_Class_Title={0} \u5185\u306e\u30af\u30e9\u30b9
-doclet.Href_Interface_Title={0} \u5185\u306e\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9
-doclet.Href_Annotation_Title={0} \u5185\u306e\u6ce8\u91c8
-doclet.Href_Enum_Title={0} \u5185\u306e\u5217\u6319\u578b
-doclet.Href_Type_Param_Title={0} \u5185\u306e\u578b\u30d1\u30e9\u30e1\u30fc\u30bf
-doclet.Href_Class_Or_Interface_Title={0} \u5185\u306e\u30af\u30e9\u30b9\u307e\u305f\u306f\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9
-doclet.Summary=\u6982\u8981:
-doclet.Detail=\u8a73\u7d30:
-doclet.navNested=\u5165\u308c\u5b50
-doclet.navAnnotationTypeOptionalMember=\u30aa\u30d7\u30b7\u30e7\u30f3
-doclet.navAnnotationTypeRequiredMember=\u5fc5\u9808
-doclet.navAnnotationTypeMember=\u8981\u7d20
-doclet.navField=\u30d5\u30a3\u30fc\u30eb\u30c9
-doclet.navEnum=\u5217\u6319\u578b\u5b9a\u6570
-doclet.navConstructor=\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf
-doclet.navMethod=\u30e1\u30bd\u30c3\u30c9
-doclet.navFactoryMethod=\u30d5\u30a1\u30af\u30c8\u30ea
-doclet.Index=\u7d22\u5f15
-doclet.Window_Single_Index=\u7d22\u5f15
-doclet.Window_Split_Index={0} \u306e\u7d22\u5f15
-doclet.Help=\u30d8\u30eb\u30d7
-doclet.Skip_navigation_links=\u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3\u30ea\u30f3\u30af\u3092\u30b9\u30ad\u30c3\u30d7
-doclet.None=\u306a\u3057
-doclet.CLASSES=\u30af\u30e9\u30b9
-doclet.MEMBERS=\u30e1\u30f3\u30d0
-doclet.NONE=\u306a\u3057
-doclet.Factory_Method_Detail=static \u30d5\u30a1\u30af\u30c8\u30ea\u30e1\u30bd\u30c3\u30c9\u306e\u8a73\u7d30
-doclet.navDeprecated=\u975e\u63a8\u5968 API
-doclet.Deprecated_List=\u975e\u63a8\u5968 API \u306e\u30ea\u30b9\u30c8
-doclet.Window_Deprecated_List=\u975e\u63a8\u5968 API \u306e\u30ea\u30b9\u30c8
-doclet.Note_0_is_deprecated=\u6ce8: {0} \u306f\u63a8\u5968\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002
-doclet.Overrides=\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9:
-doclet.in_class=\u30af\u30e9\u30b9 {1} \u5185\u306e {0}
-doclet.0_Fields_and_Methods=&quot;{0}&quot; \u30d5\u30a3\u30fc\u30eb\u30c9\u3068\u30e1\u30bd\u30c3\u30c9
-doclet.Index_of_Fields_and_Methods=\u30d5\u30a3\u30fc\u30eb\u30c9\u3068\u30e1\u30bd\u30c3\u30c9\u306e\u7d22\u5f15
-doclet.Static_variable_in={0} \u306e static \u5909\u6570
-doclet.Variable_in={0} \u306e\u5909\u6570
-doclet.Constructor_for={0} \u306e\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf
-doclet.Static_method_in={0} \u306e static \u30e1\u30bd\u30c3\u30c9
-doclet.Method_in={0} \u306e\u30e1\u30bd\u30c3\u30c9
-doclet.throws=\u30b9\u30ed\u30fc
-doclet.package=\u30d1\u30c3\u30b1\u30fc\u30b8
-doclet.MalformedURL=\u4e0d\u6b63\u306a URL: {0}
-doclet.File_error=\u30d5\u30a1\u30a4\u30eb\u8aad\u307f\u8fbc\u307f\u30a8\u30e9\u30fc: {0}
-doclet.URL_error=URL \u53d6\u308a\u51fa\u3057\u30a8\u30e9\u30fc: {0}
-doclet.No_Package_Comment_File=\u30d1\u30c3\u30b1\u30fc\u30b8 {0} \u306e  Package.Comment \u30d5\u30a1\u30a4\u30eb\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002
-doclet.No_Source_For_Class=\u30af\u30e9\u30b9 {0} \u306e\u30bd\u30fc\u30b9\u60c5\u5831\u304c\u4f7f\u7528\u3067\u304d\u307e\u305b\u3093\u3002
-doclet.see.class_or_package_not_found=\u30bf\u30b0 {0}: \u53c2\u7167\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093: {1}
-doclet.see.malformed_tag={0} \u30bf\u30b0: \u4e0d\u6b63\u306a {1} \u30bf\u30b0
-doclet.Inherited_API_Summary=\u7d99\u627f\u3055\u308c\u305f API \u306e\u6982\u8981
-doclet.Deprecated_API=\u63a8\u5968\u3055\u308c\u3066\u3044\u306a\u3044 API
-doclet.Deprecated_Classes=\u63a8\u5968\u3055\u308c\u3066\u3044\u306a\u3044\u30af\u30e9\u30b9
-doclet.Deprecated_Enums=\u63a8\u5968\u3055\u308c\u3066\u3044\u306a\u3044\u5217\u6319\u578b
-doclet.Deprecated_Interfaces=\u63a8\u5968\u3055\u308c\u3066\u3044\u306a\u3044\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9
-doclet.Deprecated_Exceptions=\u63a8\u5968\u3055\u308c\u3066\u3044\u306a\u3044\u4f8b\u5916
-doclet.Deprecated_Annotation_Types=\u63a8\u5968\u3055\u308c\u3066\u3044\u306a\u3044\u6ce8\u91c8\u578b
-doclet.Deprecated_Errors=\u63a8\u5968\u3055\u308c\u3066\u3044\u306a\u3044\u30a8\u30e9\u30fc
-doclet.Deprecated_Fields=\u63a8\u5968\u3055\u308c\u3066\u3044\u306a\u3044\u30d5\u30a3\u30fc\u30eb\u30c9
-doclet.Deprecated_Constructors=\u63a8\u5968\u3055\u308c\u3066\u3044\u306a\u3044\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf
-doclet.Deprecated_Methods=\u63a8\u5968\u3055\u308c\u3066\u3044\u306a\u3044\u30e1\u30bd\u30c3\u30c9
-doclet.Deprecated_Enum_Constants=\u63a8\u5968\u3055\u308c\u3066\u3044\u306a\u3044\u5217\u6319\u578b\u5b9a\u6570
-doclet.Deprecated_Annotation_Type_Members=\u63a8\u5968\u3055\u308c\u3066\u3044\u306a\u3044\u6ce8\u91c8\u578b\u306e\u8981\u7d20
-doclet.deprecated_classes=\u63a8\u5968\u3055\u308c\u3066\u3044\u306a\u3044\u30af\u30e9\u30b9
-doclet.deprecated_enums=\u63a8\u5968\u3055\u308c\u3066\u3044\u306a\u3044\u5217\u6319\u578b
-doclet.deprecated_interfaces=\u63a8\u5968\u3055\u308c\u3066\u3044\u306a\u3044\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9
-doclet.deprecated_exceptions=\u63a8\u5968\u3055\u308c\u3066\u3044\u306a\u3044\u4f8b\u5916
-doclet.deprecated_annotation_types=\u63a8\u5968\u3055\u308c\u3066\u3044\u306a\u3044\u6ce8\u91c8\u578b
-doclet.deprecated_errors=\u63a8\u5968\u3055\u308c\u3066\u3044\u306a\u3044\u30a8\u30e9\u30fc
-doclet.deprecated_fields=\u63a8\u5968\u3055\u308c\u3066\u3044\u306a\u3044\u30d5\u30a3\u30fc\u30eb\u30c9
-doclet.deprecated_constructors=\u63a8\u5968\u3055\u308c\u3066\u3044\u306a\u3044\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf
-doclet.deprecated_methods=\u63a8\u5968\u3055\u308c\u3066\u3044\u306a\u3044\u30e1\u30bd\u30c3\u30c9
-doclet.deprecated_enum_constants=\u63a8\u5968\u3055\u308c\u3066\u3044\u306a\u3044\u5217\u6319\u578b\u5b9a\u6570
-doclet.deprecated_annotation_type_members=\u63a8\u5968\u3055\u308c\u3066\u3044\u306a\u3044\u6ce8\u91c8\u578b\u306e\u8981\u7d20
-doclet.Frame_Output=\u30d5\u30ec\u30fc\u30e0\u51fa\u529b
-doclet.Docs_generated_by_Javadoc=\u3053\u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306f javadoc \u3067\u751f\u6210\u3055\u308c\u3066\u3044\u307e\u3059\u3002
-doclet.Generated_Docs_Untitled=\u751f\u6210\u3055\u308c\u305f\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8 (\u30bf\u30a4\u30c8\u30eb\u306a\u3057)
-doclet.Blank=\u30d6\u30e9\u30f3\u30af
-doclet.Other_Packages=\u305d\u306e\u4ed6\u306e\u30d1\u30c3\u30b1\u30fc\u30b8
-doclet.Package_Description=\u30d1\u30c3\u30b1\u30fc\u30b8 {0} \u306e\u8aac\u660e
-doclet.Description=\u8aac\u660e
-doclet.Specified_By=\u5b9a\u7fa9:
-doclet.in_interface=\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9 {1} \u5185\u306e {0}
-doclet.Subclasses=\u76f4\u7cfb\u306e\u65e2\u77e5\u306e\u30b5\u30d6\u30af\u30e9\u30b9:
-doclet.Subinterfaces=\u65e2\u77e5\u306e\u30b5\u30d6\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u306e\u4e00\u89a7:
-doclet.Implementing_Classes=\u65e2\u77e5\u306e\u5b9f\u88c5\u30af\u30e9\u30b9\u306e\u4e00\u89a7:
-doclet.also=\u540c\u69d8\u306b
-doclet.Option=\u30aa\u30d7\u30b7\u30e7\u30f3
-doclet.Or=\u307e\u305f\u306f
-doclet.Frames=\u30d5\u30ec\u30fc\u30e0\u3042\u308a
-doclet.FRAMES=\u30d5\u30ec\u30fc\u30e0\u3042\u308a
-doclet.NO_FRAMES=\u30d5\u30ec\u30fc\u30e0\u306a\u3057
-doclet.Package_Hierarchies=\u30d1\u30c3\u30b1\u30fc\u30b8\u968e\u5c64:
-doclet.Hierarchy_For_Package=\u30d1\u30c3\u30b1\u30fc\u30b8 {0} \u306e\u968e\u5c64
-doclet.Source_Code=\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9:
-doclet.Hierarchy_For_All_Packages=\u3059\u3079\u3066\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u968e\u5c64
-doclet.Cannot_handle_no_packages=\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u51e6\u7406\u3067\u304d\u307e\u305b\u3093\u3002
-doclet.Frame_Alert=\u30d5\u30ec\u30fc\u30e0\u95a2\u9023\u306e\u8b66\u544a
-doclet.Overview-Member-Frame=\u6982\u8981\u30e1\u30f3\u30d0\u30d5\u30ec\u30fc\u30e0
-doclet.Frame_Warning_Message=\u3053\u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306f\u30d5\u30ec\u30fc\u30e0\u6a5f\u80fd\u3092\u4f7f\u3063\u3066\u8868\u793a\u3059\u308b\u3088\u3046\u306b\u4f5c\u3089\u308c\u3066\u3044\u307e\u3059\u3002\u30d5\u30ec\u30fc\u30e0\u3092\u8868\u793a\u3067\u304d\u306a\u3044 Web \u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u306e\u5834\u5408\u306b\u3053\u306e\u30e1\u30c3\u30bb\u30fc\u30b8\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002
-doclet.Non_Frame_Version=\u30d5\u30ec\u30fc\u30e0\u306a\u3057\u306e\u30d0\u30fc\u30b8\u30e7\u30f3
-doclet.Frame_Version=\u30d5\u30ec\u30fc\u30e0\u3042\u308a\u306e\u30d0\u30fc\u30b8\u30e7\u30f3
-doclet.Link_To=\u30ea\u30f3\u30af\u5148
-doclet.Following_From_Class=\u30af\u30e9\u30b9 {0} \u304b\u3089\u30b3\u30d4\u30fc\u3055\u308c\u305f\u30bf\u30b0:
-doclet.Following_From_Interface=\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9 {0} \u304b\u3089\u30b3\u30d4\u30fc\u3055\u308c\u305f\u30bf\u30b0:
-doclet.Description_From_Interface=\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9 {0} \u306e\u8a18\u8ff0:
-doclet.Description_From_Class=\u30af\u30e9\u30b9 {0} \u306e\u8a18\u8ff0:
-doclet.Standard_doclet_invoked=\u6a19\u6e96\u306e doclet \u304c\u8d77\u52d5\u3055\u308c\u307e\u3057\u305f...
-doclet.No_Non_Deprecated_Classes_To_Document=\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u5316\u3059\u308b\u975e\u63a8\u5968\u4ee5\u5916\u306e\u30af\u30e9\u30b9\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002
-doclet.Interfaces_Italic=\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9 (\u30a4\u30bf\u30ea\u30c3\u30af)
-doclet.Enclosing_Class=\u542b\u307e\u308c\u3066\u3044\u308b\u30af\u30e9\u30b9:
-doclet.Enclosing_Interface=\u542b\u307e\u308c\u3066\u3044\u308b\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9:
-doclet.Help_title=API \u30d8\u30eb\u30d7
-doclet.Window_Help_title=API \u30d8\u30eb\u30d7
-doclet.Help_line_1=API \u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u69cb\u6210
-doclet.Help_line_2=\u3053\u306e API (Application Programming Interface) \u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306b\u306f\u3001\u6b21\u306b\u8aac\u660e\u3059\u308b\u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3\u30d0\u30fc\u306b\u3042\u308b\u9805\u76ee\u306b\u5bfe\u5fdc\u3059\u308b\u30da\u30fc\u30b8\u304c\u542b\u307e\u308c\u307e\u3059\u3002
-doclet.Help_line_3={0} \u30da\u30fc\u30b8\u306f API \u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u30d5\u30ed\u30f3\u30c8\u30da\u30fc\u30b8\u3067\u3001\u5404\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u6982\u8981\u3092\u542b\u3080\u5168\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u4e00\u89a7\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002\u4e00\u9023\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u6982\u8981\u8aac\u660e\u3082\u8868\u793a\u3055\u308c\u307e\u3059\u3002
-doclet.Help_line_4=\u5404\u30d1\u30c3\u30b1\u30fc\u30b8\u306f\u3001\u305d\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u30af\u30e9\u30b9\u3068\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u3078\u306e\u30ea\u30f3\u30af\u3092\u542b\u3080\u30da\u30fc\u30b8\u3092\u6301\u3061\u307e\u3059\u3002\u3053\u306e\u30da\u30fc\u30b8\u306f 4 \u3064\u306e\u30ab\u30c6\u30b4\u30ea\u3067\u69cb\u6210\u3055\u308c\u307e\u3059:
-doclet.Help_line_5=\u30af\u30e9\u30b9\u307e\u305f\u306f\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9
-doclet.Help_line_6=\u5404\u30af\u30e9\u30b9\u3001\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u3001\u5165\u308c\u5b50\u30af\u30e9\u30b9\u3001\u304a\u3088\u3073\u5165\u308c\u5b50\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u306f\u500b\u5225\u306e\u30da\u30fc\u30b8\u3092\u6301\u3061\u307e\u3059\u3002\u5404\u30da\u30fc\u30b8\u306b\u306f\u6b21\u306e\u3088\u3046\u306b\u3001\u30af\u30e9\u30b9\u307e\u305f\u306f\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u306e\u8aac\u660e\u3068\u3001\u6982\u8981\u30c6\u30fc\u30d6\u30eb\u3001\u304a\u3088\u3073\u30e1\u30f3\u30d0\u306e\u8a73\u7d30\u8aac\u660e\u304c\u542b\u307e\u308c\u307e\u3059:
-doclet.Help_line_7=\u30af\u30e9\u30b9\u968e\u5c64\u8868\u793a
-doclet.Help_line_8=\u76f4\u7cfb\u306e\u30b5\u30d6\u30af\u30e9\u30b9
-doclet.Help_line_9=\u65e2\u77e5\u306e\u30b5\u30d6\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u306e\u4e00\u89a7
-doclet.Help_line_10=\u65e2\u77e5\u306e\u5b9f\u88c5\u30af\u30e9\u30b9\u306e\u4e00\u89a7
-doclet.Help_line_11=\u30af\u30e9\u30b9\u307e\u305f\u306f\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u306e\u5ba3\u8a00
-doclet.Help_line_12=\u30af\u30e9\u30b9\u307e\u305f\u306f\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u306e\u8a18\u8ff0
-doclet.Help_line_13=\u5404\u6982\u8981\u30a8\u30f3\u30c8\u30ea\u306b\u306f\u3001\u305d\u306e\u9805\u76ee\u306e\u8a73\u7d30\u306a\u8a18\u8ff0\u306e\u4e2d\u304b\u3089 1 \u884c\u76ee\u306e\u6587\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002\u8a73\u7d30\u306a\u8a18\u8ff0\u306f\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u306b\u73fe\u308f\u308c\u308b\u9806\u306b\u4e26\u3079\u3089\u308c\u307e\u3059\u304c\u3001\u6982\u8981\u30a8\u30f3\u30c8\u30ea\u306f\u30a2\u30eb\u30d5\u30a1\u30d9\u30c3\u30c8\u9806\u306b\u4e26\u3079\u3089\u308c\u307e\u3059\u3002\u3053\u308c\u306b\u3088\u3063\u3066\u3001\u30d7\u30ed\u30b0\u30e9\u30de\u304c\u8a2d\u5b9a\u3057\u305f\u8ad6\u7406\u7684\u306a\u30b0\u30eb\u30fc\u30d7\u5206\u3051\u304c\u4fdd\u6301\u3055\u308c\u307e\u3059\u3002
-doclet.Help_line_14=\u4f7f\u7528
-doclet.Help_line_15=\u5404\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u5316\u3055\u308c\u305f\u30d1\u30c3\u30b1\u30fc\u30b8\u3001\u30af\u30e9\u30b9\u3001\u304a\u3088\u3073\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u306f\u305d\u308c\u305e\u308c [\u4f7f\u7528] \u30da\u30fc\u30b8\u3092\u6301\u3063\u3066\u3044\u307e\u3059\u3002\u3053\u306e\u30da\u30fc\u30b8\u306b\u306f\u3001\u3069\u306e\u3088\u3046\u306a\u30d1\u30c3\u30b1\u30fc\u30b8\u3001\u30af\u30e9\u30b9\u3001\u30e1\u30bd\u30c3\u30c9\u3001\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u3001\u304a\u3088\u3073\u30d5\u30a3\u30fc\u30eb\u30c9\u304c\u3001\u7279\u5b9a\u306e\u30af\u30e9\u30b9\u307e\u305f\u306f\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u4e00\u90e8\u3092\u4f7f\u7528\u3057\u3066\u3044\u308b\u304b\u304c\u8a18\u8ff0\u3055\u308c\u3066\u3044\u307e\u3059\u3002\u305f\u3068\u3048\u3070\u3001\u30af\u30e9\u30b9 A \u307e\u305f\u306f\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9 A \u306e\u5834\u5408\u3001\u305d\u306e [\u4f7f\u7528] \u30da\u30fc\u30b8\u306b\u306f\u3001A \u306e\u30b5\u30d6\u30af\u30e9\u30b9\u3001A \u3068\u3057\u3066\u5ba3\u8a00\u3055\u308c\u308b\u30d5\u30a3\u30fc\u30eb\u30c9\u3001A \u3092\u8fd4\u3059\u30e1\u30bd\u30c3\u30c9\u3001\u304a\u3088\u3073\u3001\u578b A \u3092\u6301\u3064\u30e1\u30bd\u30c3\u30c9\u3068\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u304c\u542b\u307e\u308c\u307e\u3059\u3002\u3053\u306e\u30da\u30fc\u30b8\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u306b\u306f\u3001\u307e\u305a\u305d\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u3001\u30af\u30e9\u30b9\u3001\u307e\u305f\u306f\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u306b\u79fb\u52d5\u3057\u3001\u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3\u30d0\u30fc\u306e [\u4f7f\u7528] \u30ea\u30f3\u30af\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-doclet.Help_line_16=\u968e\u5c64\u30c4\u30ea\u30fc (\u30af\u30e9\u30b9\u968e\u5c64)
-doclet.Help_line_17_with_tree_link=\u3059\u3079\u3066\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u306b\u306f {0} \u30da\u30fc\u30b8\u304c\u3042\u308a\u3001\u3055\u3089\u306b\u5404\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u968e\u5c64\u304c\u3042\u308a\u307e\u3059\u3002\u5404\u968e\u5c64\u30da\u30fc\u30b8\u306f\u3001\u30af\u30e9\u30b9\u306e\u30ea\u30b9\u30c8\u3068\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u306e\u30ea\u30b9\u30c8\u3092\u542b\u307f\u307e\u3059\u3002\u30af\u30e9\u30b9\u306f <code>java.lang.Object</code> \u3092\u958b\u59cb\u70b9\u3068\u3059\u308b\u7d99\u627f\u69cb\u9020\u3067\u7de8\u6210\u3055\u308c\u307e\u3059\u3002\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u306f\u3001<code>java.lang.Object</code> \u304b\u3089\u306f\u7d99\u627f\u3057\u307e\u305b\u3093\u3002
-doclet.Help_line_18=\u6982\u8981\u30da\u30fc\u30b8\u3092\u8868\u793a\u3057\u3066\u3044\u308b\u3068\u304d\u306b [\u30c4\u30ea\u30fc] \u3092\u30af\u30ea\u30c3\u30af\u3059\u308b\u3068\u3001\u5168\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u968e\u5c64\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002
-doclet.Help_line_19=\u7279\u5b9a\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u3001\u30af\u30e9\u30b9\u3001\u307e\u305f\u306f\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u3092\u8868\u793a\u3057\u3066\u3044\u308b\u3068\u304d\u306b [\u30c4\u30ea\u30fc] \u3092\u30af\u30ea\u30c3\u30af\u3059\u308b\u3068\u3001\u8a72\u5f53\u3059\u308b\u30d1\u30c3\u30b1\u30fc\u30b8\u3060\u3051\u306e\u968e\u5c64\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002
-doclet.Help_line_20_with_deprecated_api_link={0} \u30da\u30fc\u30b8\u306f\u3001\u63a8\u5968\u3055\u308c\u3066\u3044\u306a\u3044\u3059\u3079\u3066\u306e API \u306e\u30ea\u30b9\u30c8\u3092\u8868\u793a\u3057\u307e\u3059\u3002\u975e\u63a8\u5968 API \u3068\u306f\u3001\u6a5f\u80fd\u6539\u826f\u306a\u3069\u306e\u7406\u7531\u304b\u3089\u4f7f\u7528\u3092\u304a\u52e7\u3081\u3067\u304d\u306a\u304f\u306a\u3063\u305f API \u306e\u3053\u3068\u3067\u3001\u901a\u5e38\u306f\u305d\u308c\u306b\u4ee3\u308f\u308b API \u304c\u63d0\u4f9b\u3055\u308c\u307e\u3059\u3002\u975e\u63a8\u5968 API \u306f\u4eca\u5f8c\u306e\u5b9f\u88c5\u3067\u524a\u9664\u3055\u308c\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002
-doclet.Help_line_21=\u7d22\u5f15
-doclet.Help_line_22={0} \u306b\u306f\u3001\u3059\u3079\u3066\u306e\u30af\u30e9\u30b9\u3001\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u3001\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u3001\u30e1\u30bd\u30c3\u30c9\u3001\u304a\u3088\u3073\u30d5\u30a3\u30fc\u30eb\u30c9\u306e\u30a2\u30eb\u30d5\u30a1\u30d9\u30c3\u30c8\u9806\u306e\u30ea\u30b9\u30c8\u304c\u542b\u307e\u308c\u307e\u3059\u3002
-doclet.Help_line_23=\u524d/\u6b21
-doclet.Help_line_24=\u3053\u308c\u3089\u306e\u30ea\u30f3\u30af\u306b\u3088\u308a\u3001\u524d\u307e\u305f\u306f\u6b21\u306e\u30af\u30e9\u30b9\u3001\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u3001\u30d1\u30c3\u30b1\u30fc\u30b8\u3001\u307e\u305f\u306f\u95a2\u9023\u30da\u30fc\u30b8\u3078\u79fb\u52d5\u3067\u304d\u307e\u3059\u3002
-doclet.Help_line_25=\u30d5\u30ec\u30fc\u30e0\u3042\u308a/\u30d5\u30ec\u30fc\u30e0\u306a\u3057
-doclet.Help_line_26=\u3053\u308c\u3089\u306e\u30ea\u30f3\u30af\u306f HTML \u30d5\u30ec\u30fc\u30e0\u3092\u8868\u793a\u3057\u305f\u308a\u96a0\u3057\u305f\u308a\u3057\u307e\u3059\u3002\u3059\u3079\u3066\u306e\u30da\u30fc\u30b8\u306f\u30d5\u30ec\u30fc\u30e0\u3042\u308a\u3067\u3082\u3001\u30d5\u30ec\u30fc\u30e0\u306a\u3057\u3067\u3082\u8868\u793a\u3067\u304d\u307e\u3059\u3002
-doclet.Help_line_27=\u76f4\u5217\u5316\u53ef\u80fd\u3001\u307e\u305f\u306f\u5916\u90e8\u5316\u53ef\u80fd\u306a\u5404\u30af\u30e9\u30b9\u306f\u3001\u76f4\u5217\u5316\u30d5\u30a3\u30fc\u30eb\u30c9\u3068\u30e1\u30bd\u30c3\u30c9\u306e\u8a18\u8ff0\u3092\u542b\u307f\u307e\u3059\u3002\u3053\u306e\u60c5\u5831\u306f\u3001API \u3092\u4f7f\u7528\u3059\u308b\u958b\u767a\u8005\u3067\u306f\u306a\u304f\u3001\u518d\u5b9f\u88c5\u3092\u884c\u3046\u62c5\u5f53\u8005\u306b\u5f79\u7acb\u3061\u307e\u3059\u3002\u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3\u30d0\u30fc\u306b\u30ea\u30f3\u30af\u304c\u306a\u3044\u5834\u5408\u3001\u76f4\u5217\u5316\u3055\u308c\u305f\u30af\u30e9\u30b9\u306b\u79fb\u52d5\u3057\u3066\u3001\u30af\u30e9\u30b9\u8a18\u8ff0\u306e [\u95a2\u9023\u9805\u76ee] \u30bb\u30af\u30b7\u30e7\u30f3\u306b\u3042\u308b [\u76f4\u5217\u5316\u3055\u308c\u305f\u5f62\u5f0f] \u3092\u30af\u30ea\u30c3\u30af\u3059\u308b\u3053\u3068\u306b\u3088\u308a\u3001\u3053\u306e\u60c5\u5831\u3092\u8868\u793a\u3067\u304d\u307e\u3059\u3002
-doclet.Help_line_28=<a href="constant-values.html">\u300c\u5b9a\u6570\u30d5\u30a3\u30fc\u30eb\u30c9\u5024\u300d</a> \u30da\u30fc\u30b8\u306b\u306f\u3001static final \u30d5\u30a3\u30fc\u30eb\u30c9\u3068\u305d\u306e\u5024\u306e\u30ea\u30b9\u30c8\u304c\u3042\u308a\u307e\u3059\u3002
-doclet.Help_line_29=\u3053\u306e\u30d8\u30eb\u30d7\u30d5\u30a1\u30a4\u30eb\u306f\u3001\u6a19\u6e96 doclet \u3092\u4f7f\u7528\u3057\u3066\u751f\u6210\u3055\u308c\u305f API \u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306b\u9069\u7528\u3055\u308c\u307e\u3059\u3002
-doclet.Help_enum_line_1=\u5404\u5217\u6319\u578b\u306b\u306f\u3001\u305d\u308c\u81ea\u8eab\u306e\u500b\u5225\u306e\u30da\u30fc\u30b8\u3068\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u304c\u3042\u308a\u307e\u3059:
-doclet.Help_enum_line_2=\u5217\u6319\u578b\u306e\u5ba3\u8a00
-doclet.Help_enum_line_3=\u5217\u6319\u578b\u306e\u8aac\u660e
-doclet.Help_annotation_type_line_1=\u5404\u6ce8\u91c8\u578b\u306b\u306f\u3001\u305d\u308c\u81ea\u8eab\u306e\u500b\u5225\u306e\u30da\u30fc\u30b8\u3068\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u304c\u3042\u308a\u307e\u3059:
-doclet.Help_annotation_type_line_2=\u6ce8\u91c8\u578b\u306e\u5ba3\u8a00
-doclet.Help_annotation_type_line_3=\u6ce8\u91c8\u578b\u306e\u8aac\u660e
+doclet.Package=\u30D1\u30C3\u30B1\u30FC\u30B8
+doclet.All_Packages=\u3059\u3079\u3066\u306E\u30D1\u30C3\u30B1\u30FC\u30B8
+doclet.Tree=\u968E\u5C64\u30C4\u30EA\u30FC
+doclet.Class_Hierarchy=\u30AF\u30E9\u30B9\u968E\u5C64
+doclet.Window_Class_Hierarchy=\u30AF\u30E9\u30B9\u968E\u5C64
+doclet.Interface_Hierarchy=\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u968E\u5C64
+doclet.Enum_Hierarchy=\u5217\u6319\u578B\u968E\u5C64
+doclet.Annotation_Type_Hierarchy=\u6CE8\u91C8\u578B\u968E\u5C64
+doclet.Prev=\u524D
+doclet.Next=\u6B21
+doclet.Prev_Class=PREV CLASS
+doclet.Next_Class=NEXT CLASS
+doclet.Prev_Package=PREV PACKAGE
+doclet.Next_Package=NEXT PACKAGE
+doclet.Prev_Letter=PREV LETTER
+doclet.Next_Letter=NEXT LETTER
+doclet.Show_Lists=SHOW LISTS
+doclet.Hide_Lists=HIDE LISTS
+doclet.Href_Class_Title={0}\u5185\u306E\u30AF\u30E9\u30B9
+doclet.Href_Interface_Title={0}\u5185\u306E\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9
+doclet.Href_Annotation_Title={0}\u5185\u306E\u6CE8\u91C8
+doclet.Href_Enum_Title={0}\u5185\u306E\u5217\u6319\u578B
+doclet.Href_Type_Param_Title={0}\u5185\u306E\u578B\u30D1\u30E9\u30E1\u30FC\u30BF
+doclet.Href_Class_Or_Interface_Title={0}\u5185\u306E\u30AF\u30E9\u30B9\u307E\u305F\u306F\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9
+doclet.Summary=SUMMARY:
+doclet.Detail=DETAIL:
+doclet.navNested=NESTED
+doclet.navAnnotationTypeOptionalMember=OPTIONAL
+doclet.navAnnotationTypeRequiredMember=REQUIRED
+doclet.navAnnotationTypeMember=ELEMENT
+doclet.navField=FIELD
+doclet.navEnum=ENUM CONSTANTS
+doclet.navConstructor=CONSTR
+doclet.navMethod=METHOD
+doclet.navFactoryMethod=FACTORY
+doclet.Index=\u7D22\u5F15
+doclet.Window_Single_Index=\u7D22\u5F15
+doclet.Window_Split_Index={0}\u306E\u7D22\u5F15
+doclet.Help=\u30D8\u30EB\u30D7
+doclet.Skip_navigation_links=\u30CA\u30D3\u30B2\u30FC\u30B7\u30E7\u30F3\u30FB\u30EA\u30F3\u30AF\u3092\u30B9\u30AD\u30C3\u30D7
+doclet.None=\u306A\u3057
+doclet.CLASSES=CLASSES
+doclet.MEMBERS=MEMBERS
+doclet.NONE=\u306A\u3057
+doclet.Factory_Method_Detail=static\u30D5\u30A1\u30AF\u30C8\u30EA\u30FB\u30E1\u30BD\u30C3\u30C9\u306E\u8A73\u7D30
+doclet.navDeprecated=\u975E\u63A8\u5968
+doclet.Deprecated_List=\u975E\u63A8\u5968API\u306E\u30EA\u30B9\u30C8
+doclet.Window_Deprecated_List=\u975E\u63A8\u5968API\u306E\u30EA\u30B9\u30C8
+doclet.Note_0_is_deprecated=\u6CE8\u610F: {0}\u306F\u63A8\u5968\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002
+doclet.Overrides=\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9:
+doclet.in_class=\u30AF\u30E9\u30B9{1}\u5185\u306E{0}
+doclet.0_Fields_and_Methods=&quot;{0}&quot;\u30D5\u30A3\u30FC\u30EB\u30C9\u3068\u30E1\u30BD\u30C3\u30C9
+doclet.Index_of_Fields_and_Methods=\u30D5\u30A3\u30FC\u30EB\u30C9\u3068\u30E1\u30BD\u30C3\u30C9\u306E\u7D22\u5F15
+doclet.Static_variable_in={0}\u306Estatic\u5909\u6570
+doclet.Variable_in={0}\u306E\u5909\u6570
+doclet.Constructor_for={0}\u306E\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF
+doclet.Static_method_in={0}\u306Estatic\u30E1\u30BD\u30C3\u30C9
+doclet.Method_in={0}\u306E\u30E1\u30BD\u30C3\u30C9
+doclet.throws=\u30B9\u30ED\u30FC
+doclet.package=\u30D1\u30C3\u30B1\u30FC\u30B8
+doclet.MalformedURL=\u4E0D\u6B63\u306AURL: {0}
+doclet.File_error=\u30D5\u30A1\u30A4\u30EB\u8AAD\u8FBC\u307F\u30A8\u30E9\u30FC: {0}
+doclet.URL_error=URL\u53D6\u51FA\u3057\u30A8\u30E9\u30FC: {0}
+doclet.No_Package_Comment_File=\u30D1\u30C3\u30B1\u30FC\u30B8{0}\u306EPackage.Comment\u30D5\u30A1\u30A4\u30EB\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093
+doclet.No_Source_For_Class=\u30AF\u30E9\u30B9{0}\u306E\u30BD\u30FC\u30B9\u60C5\u5831\u304C\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002
+doclet.see.class_or_package_not_found=\u30BF\u30B0{0}: \u53C2\u7167\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: {1}
+doclet.see.class_or_package_not_accessible=\u30BF\u30B0{0}: \u53C2\u7167\u306B\u30A2\u30AF\u30BB\u30B9\u3067\u304D\u307E\u305B\u3093: {1}
+doclet.see.malformed_tag={0}\u30BF\u30B0: \u4E0D\u6B63\u306A{1}\u30BF\u30B0
+doclet.Inherited_API_Summary=\u7D99\u627F\u3055\u308C\u305FAPI\u306E\u6982\u8981
+doclet.Deprecated_API=\u63A8\u5968\u3055\u308C\u3066\u3044\u306A\u3044API
+doclet.Deprecated_Classes=\u63A8\u5968\u3055\u308C\u3066\u3044\u306A\u3044\u30AF\u30E9\u30B9
+doclet.Deprecated_Enums=\u63A8\u5968\u3055\u308C\u3066\u3044\u306A\u3044\u5217\u6319\u578B
+doclet.Deprecated_Interfaces=\u63A8\u5968\u3055\u308C\u3066\u3044\u306A\u3044\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9
+doclet.Deprecated_Exceptions=\u63A8\u5968\u3055\u308C\u3066\u3044\u306A\u3044\u4F8B\u5916
+doclet.Deprecated_Annotation_Types=\u63A8\u5968\u3055\u308C\u3066\u3044\u306A\u3044\u6CE8\u91C8\u578B
+doclet.Deprecated_Errors=\u63A8\u5968\u3055\u308C\u3066\u3044\u306A\u3044\u30A8\u30E9\u30FC
+doclet.Deprecated_Fields=\u63A8\u5968\u3055\u308C\u3066\u3044\u306A\u3044\u30D5\u30A3\u30FC\u30EB\u30C9
+doclet.Deprecated_Constructors=\u63A8\u5968\u3055\u308C\u3066\u3044\u306A\u3044\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF
+doclet.Deprecated_Methods=\u63A8\u5968\u3055\u308C\u3066\u3044\u306A\u3044\u30E1\u30BD\u30C3\u30C9
+doclet.Deprecated_Enum_Constants=\u63A8\u5968\u3055\u308C\u3066\u3044\u306A\u3044\u5217\u6319\u578B\u5B9A\u6570
+doclet.Deprecated_Annotation_Type_Members=\u63A8\u5968\u3055\u308C\u3066\u3044\u306A\u3044\u6CE8\u91C8\u578B\u306E\u8981\u7D20
+doclet.deprecated_classes=\u63A8\u5968\u3055\u308C\u3066\u3044\u306A\u3044\u30AF\u30E9\u30B9
+doclet.deprecated_enums=\u63A8\u5968\u3055\u308C\u3066\u3044\u306A\u3044\u5217\u6319\u578B
+doclet.deprecated_interfaces=\u63A8\u5968\u3055\u308C\u3066\u3044\u306A\u3044\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9
+doclet.deprecated_exceptions=\u63A8\u5968\u3055\u308C\u3066\u3044\u306A\u3044\u4F8B\u5916
+doclet.deprecated_annotation_types=\u63A8\u5968\u3055\u308C\u3066\u3044\u306A\u3044\u6CE8\u91C8\u578B
+doclet.deprecated_errors=\u63A8\u5968\u3055\u308C\u3066\u3044\u306A\u3044\u30A8\u30E9\u30FC
+doclet.deprecated_fields=\u63A8\u5968\u3055\u308C\u3066\u3044\u306A\u3044\u30D5\u30A3\u30FC\u30EB\u30C9
+doclet.deprecated_constructors=\u63A8\u5968\u3055\u308C\u3066\u3044\u306A\u3044\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF
+doclet.deprecated_methods=\u63A8\u5968\u3055\u308C\u3066\u3044\u306A\u3044\u30E1\u30BD\u30C3\u30C9
+doclet.deprecated_enum_constants=\u63A8\u5968\u3055\u308C\u3066\u3044\u306A\u3044\u5217\u6319\u578B\u5B9A\u6570
+doclet.deprecated_annotation_type_members=\u63A8\u5968\u3055\u308C\u3066\u3044\u306A\u3044\u6CE8\u91C8\u578B\u306E\u8981\u7D20
+doclet.Frame_Output=\u30D5\u30EC\u30FC\u30E0\u51FA\u529B
+doclet.Docs_generated_by_Javadoc=\u3053\u306E\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306Fjavadoc\u3067\u751F\u6210\u3055\u308C\u3066\u3044\u307E\u3059\u3002
+doclet.Generated_Docs_Untitled=\u751F\u6210\u3055\u308C\u305F\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8(\u30BF\u30A4\u30C8\u30EB\u306A\u3057)
+doclet.Blank=\u30D6\u30E9\u30F3\u30AF
+doclet.Other_Packages=\u305D\u306E\u4ED6\u306E\u30D1\u30C3\u30B1\u30FC\u30B8
+doclet.Package_Description=\u30D1\u30C3\u30B1\u30FC\u30B8{0}\u306E\u8AAC\u660E
+doclet.Description=\u8AAC\u660E
+doclet.Specified_By=\u5B9A\u7FA9:
+doclet.in_interface=\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9{1}\u5185\u306E{0}
+doclet.Subclasses=\u76F4\u7CFB\u306E\u65E2\u77E5\u306E\u30B5\u30D6\u30AF\u30E9\u30B9:
+doclet.Subinterfaces=\u65E2\u77E5\u306E\u30B5\u30D6\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u306E\u30EA\u30B9\u30C8:
+doclet.Implementing_Classes=\u65E2\u77E5\u306E\u5B9F\u88C5\u30AF\u30E9\u30B9\u306E\u30EA\u30B9\u30C8:
+doclet.also=\u540C\u69D8\u306B
+doclet.Option=\u30AA\u30D7\u30B7\u30E7\u30F3
+doclet.Or=\u307E\u305F\u306F
+doclet.Frames=\u30D5\u30EC\u30FC\u30E0
+doclet.FRAMES=FRAMES
+doclet.NO_FRAMES=NO FRAMES
+doclet.Package_Hierarchies=\u30D1\u30C3\u30B1\u30FC\u30B8\u968E\u5C64:
+doclet.Hierarchy_For_Package=\u30D1\u30C3\u30B1\u30FC\u30B8{0}\u306E\u968E\u5C64
+doclet.Source_Code=\u30BD\u30FC\u30B9\u30FB\u30B3\u30FC\u30C9:
+doclet.Hierarchy_For_All_Packages=\u3059\u3079\u3066\u306E\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\u968E\u5C64
+doclet.Cannot_handle_no_packages=\u30D1\u30C3\u30B1\u30FC\u30B8\u3092\u51E6\u7406\u3067\u304D\u307E\u305B\u3093\u3002
+doclet.Frame_Alert=\u30D5\u30EC\u30FC\u30E0\u95A2\u9023\u306E\u30A2\u30E9\u30FC\u30C8
+doclet.Overview-Member-Frame=\u6982\u8981\u30E1\u30F3\u30D0\u30FC\u30FB\u30D5\u30EC\u30FC\u30E0
+doclet.Frame_Warning_Message=\u3053\u306E\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306F\u30D5\u30EC\u30FC\u30E0\u6A5F\u80FD\u3092\u4F7F\u7528\u3057\u3066\u8868\u793A\u3059\u308B\u3088\u3046\u306B\u4F5C\u6210\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u30D5\u30EC\u30FC\u30E0\u3092\u8868\u793A\u3067\u304D\u306A\u3044Web\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\u306E\u5834\u5408\u306B\u3053\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002
+doclet.Non_Frame_Version=\u30D5\u30EC\u30FC\u30E0\u306A\u3057\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u3002
+doclet.Frame_Version=\u30D5\u30EC\u30FC\u30E0\u3042\u308A\u306E\u30D0\u30FC\u30B8\u30E7\u30F3
+doclet.Link_To=\u30EA\u30F3\u30AF\u5148
+doclet.Following_From_Class=\u30AF\u30E9\u30B9{0}\u304B\u3089\u30B3\u30D4\u30FC\u3055\u308C\u305F\u30BF\u30B0:
+doclet.Following_From_Interface=\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9{0}\u304B\u3089\u30B3\u30D4\u30FC\u3055\u308C\u305F\u30BF\u30B0:
+doclet.Description_From_Interface=\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9{0}\u304B\u3089\u30B3\u30D4\u30FC\u3055\u308C\u305F\u8AAC\u660E:
+doclet.Description_From_Class=\u30AF\u30E9\u30B9{0}\u304B\u3089\u30B3\u30D4\u30FC\u3055\u308C\u305F\u8AAC\u660E:
+doclet.Standard_doclet_invoked=\u6A19\u6E96\u306Edoclet\u304C\u8D77\u52D5\u3055\u308C\u307E\u3057\u305F...
+doclet.No_Non_Deprecated_Classes_To_Document=\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u5316\u3059\u308B\u975E\u63A8\u5968\u4EE5\u5916\u306E\u30AF\u30E9\u30B9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002
+doclet.Interfaces_Italic=\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9(\u30A4\u30BF\u30EA\u30C3\u30AF)
+doclet.Enclosing_Class=\u542B\u307E\u308C\u3066\u3044\u308B\u30AF\u30E9\u30B9:
+doclet.Enclosing_Interface=\u542B\u307E\u308C\u3066\u3044\u308B\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9:
+doclet.Help_title=API\u30D8\u30EB\u30D7
+doclet.Window_Help_title=API\u30D8\u30EB\u30D7
+doclet.Help_line_1=API\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306E\u69CB\u6210
+doclet.Help_line_2=\u3053\u306EAPI(Application Programming Interface)\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306B\u306F\u3001\u6B21\u306B\u8AAC\u660E\u3059\u308B\u30CA\u30D3\u30B2\u30FC\u30B7\u30E7\u30F3\u30FB\u30D0\u30FC\u306B\u3042\u308B\u9805\u76EE\u306B\u5BFE\u5FDC\u3059\u308B\u30DA\u30FC\u30B8\u304C\u542B\u307E\u308C\u307E\u3059\u3002
+doclet.Help_line_3={0}\u30DA\u30FC\u30B8\u306FAPI\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306E\u30D5\u30ED\u30F3\u30C8\u30FB\u30DA\u30FC\u30B8\u3067\u3001\u5404\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\u6982\u8981\u3092\u542B\u3080\u5168\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\u30EA\u30B9\u30C8\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002\u4E00\u9023\u306E\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\u6982\u8981\u8AAC\u660E\u3082\u8868\u793A\u3055\u308C\u307E\u3059\u3002
+doclet.Help_line_4=\u5404\u30D1\u30C3\u30B1\u30FC\u30B8\u306B\u306F\u3001\u305D\u306E\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\u30AF\u30E9\u30B9\u304A\u3088\u3073\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u306E\u30EA\u30B9\u30C8\u3068\u3001\u305D\u308C\u305E\u308C\u306E\u6982\u8981\u3092\u542B\u3080\u30DA\u30FC\u30B8\u304C\u3042\u308A\u307E\u3059\u3002\u3053\u306E\u30DA\u30FC\u30B8\u306F4\u3064\u306E\u30AB\u30C6\u30B4\u30EA\u3067\u69CB\u6210\u3055\u308C\u307E\u3059\u3002
+doclet.Help_line_5=\u30AF\u30E9\u30B9\u307E\u305F\u306F\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9
+doclet.Help_line_6=\u5404\u30AF\u30E9\u30B9\u3001\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u3001\u30CD\u30B9\u30C8\u3055\u308C\u305F\u30AF\u30E9\u30B9\u304A\u3088\u3073\u30CD\u30B9\u30C8\u3055\u308C\u305F\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u306B\u306F\u500B\u5225\u306E\u30DA\u30FC\u30B8\u304C\u3042\u308A\u307E\u3059\u3002\u5404\u30DA\u30FC\u30B8\u306B\u306F\u6B21\u306E\u3088\u3046\u306B\u3001\u30AF\u30E9\u30B9\u307E\u305F\u306F\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u306E\u8AAC\u660E\u3068\u3001\u6982\u8981\u8868\u304A\u3088\u3073\u30E1\u30F3\u30D0\u30FC\u306E\u8A73\u7D30\u8AAC\u660E\u304C\u542B\u307E\u308C\u307E\u3059\u3002
+doclet.Help_line_7=\u30AF\u30E9\u30B9\u968E\u5C64\u8868\u793A
+doclet.Help_line_8=\u76F4\u7CFB\u306E\u30B5\u30D6\u30AF\u30E9\u30B9
+doclet.Help_line_9=\u65E2\u77E5\u306E\u30B5\u30D6\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u306E\u30EA\u30B9\u30C8
+doclet.Help_line_10=\u65E2\u77E5\u306E\u5B9F\u88C5\u30AF\u30E9\u30B9\u306E\u30EA\u30B9\u30C8
+doclet.Help_line_11=\u30AF\u30E9\u30B9\u307E\u305F\u306F\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u306E\u5BA3\u8A00
+doclet.Help_line_12=\u30AF\u30E9\u30B9\u307E\u305F\u306F\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u306E\u8AAC\u660E
+doclet.Help_line_13=\u5404\u6982\u8981\u30A8\u30F3\u30C8\u30EA\u306B\u306F\u3001\u305D\u306E\u9805\u76EE\u306E\u8A73\u7D30\u306A\u8AAC\u660E\u306E\u4E2D\u304B\u30891\u884C\u76EE\u306E\u6587\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002\u8A73\u7D30\u306A\u8AAC\u660E\u306F\u30BD\u30FC\u30B9\u30FB\u30B3\u30FC\u30C9\u306B\u73FE\u308C\u308B\u9806\u306B\u4E26\u3079\u3089\u308C\u307E\u3059\u304C\u3001\u6982\u8981\u30A8\u30F3\u30C8\u30EA\u306F\u30A2\u30EB\u30D5\u30A1\u30D9\u30C3\u30C8\u9806\u306B\u4E26\u3079\u3089\u308C\u307E\u3059\u3002\u3053\u308C\u306B\u3088\u3063\u3066\u3001\u30D7\u30ED\u30B0\u30E9\u30DE\u304C\u8A2D\u5B9A\u3057\u305F\u8AD6\u7406\u7684\u306A\u30B0\u30EB\u30FC\u30D7\u5206\u3051\u304C\u4FDD\u6301\u3055\u308C\u307E\u3059\u3002
+doclet.Help_line_14=\u4F7F\u7528
+doclet.Help_line_15=\u5404\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u5316\u3055\u308C\u305F\u30D1\u30C3\u30B1\u30FC\u30B8\u3001\u30AF\u30E9\u30B9\u304A\u3088\u3073\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u306B\u306F\u305D\u308C\u305E\u308C\u300C\u4F7F\u7528\u300D\u30DA\u30FC\u30B8\u304C\u3042\u308A\u307E\u3059\u3002\u3053\u306E\u30DA\u30FC\u30B8\u306B\u306F\u3001\u3069\u306E\u3088\u3046\u306A\u30D1\u30C3\u30B1\u30FC\u30B8\u3001\u30AF\u30E9\u30B9\u3001\u30E1\u30BD\u30C3\u30C9\u3001\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF\u304A\u3088\u3073\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u3001\u7279\u5B9A\u306E\u30AF\u30E9\u30B9\u307E\u305F\u306F\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\u4E00\u90E8\u3092\u4F7F\u7528\u3057\u3066\u3044\u308B\u304B\u304C\u8A18\u8FF0\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u305F\u3068\u3048\u3070\u3001\u30AF\u30E9\u30B9A\u307E\u305F\u306F\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9A\u306E\u5834\u5408\u3001\u305D\u306E\u300C\u4F7F\u7528\u300D\u30DA\u30FC\u30B8\u306B\u306F\u3001A\u306E\u30B5\u30D6\u30AF\u30E9\u30B9\u3001A\u3068\u3057\u3066\u5BA3\u8A00\u3055\u308C\u308B\u30D5\u30A3\u30FC\u30EB\u30C9\u3001A\u3092\u8FD4\u3059\u30E1\u30BD\u30C3\u30C9\u3068\u3001\u578BA\u3092\u6301\u3064\u30E1\u30BD\u30C3\u30C9\u304A\u3088\u3073\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF\u304C\u542B\u307E\u308C\u307E\u3059\u3002\u3053\u306E\u30DA\u30FC\u30B8\u306B\u30A2\u30AF\u30BB\u30B9\u3059\u308B\u306B\u306F\u3001\u307E\u305A\u305D\u306E\u30D1\u30C3\u30B1\u30FC\u30B8\u3001\u30AF\u30E9\u30B9\u307E\u305F\u306F\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u306B\u79FB\u52D5\u3057\u3001\u30CA\u30D3\u30B2\u30FC\u30B7\u30E7\u30F3\u30FB\u30D0\u30FC\u306E\u300C\u4F7F\u7528\u300D\u30EA\u30F3\u30AF\u3092\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u304F\u3060\u3055\u3044\u3002
+doclet.Help_line_16=\u968E\u5C64\u30C4\u30EA\u30FC(\u30AF\u30E9\u30B9\u968E\u5C64)
+doclet.Help_line_17_with_tree_link=\u3059\u3079\u3066\u306E\u30D1\u30C3\u30B1\u30FC\u30B8\u306B\u306F{0}\u30DA\u30FC\u30B8\u304C\u3042\u308A\u3001\u3055\u3089\u306B\u5404\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\u968E\u5C64\u304C\u3042\u308A\u307E\u3059\u3002\u5404\u968E\u5C64\u30DA\u30FC\u30B8\u306F\u3001\u30AF\u30E9\u30B9\u306E\u30EA\u30B9\u30C8\u3068\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u306E\u30EA\u30B9\u30C8\u3092\u542B\u307F\u307E\u3059\u3002\u30AF\u30E9\u30B9\u306F <code>java.lang.Object</code> \u3092\u958B\u59CB\u70B9\u3068\u3059\u308B\u7D99\u627F\u69CB\u9020\u3067\u7DE8\u6210\u3055\u308C\u307E\u3059\u3002\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u306F\u3001<code>java.lang.Object</code> \u304B\u3089\u306F\u7D99\u627F\u3057\u307E\u305B\u3093\u3002
+doclet.Help_line_18=\u6982\u8981\u30DA\u30FC\u30B8\u3092\u8868\u793A\u3057\u3066\u3044\u308B\u3068\u304D\u306B\u300C\u968E\u5C64\u30C4\u30EA\u30FC\u300D\u3092\u30AF\u30EA\u30C3\u30AF\u3059\u308B\u3068\u3001\u5168\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\u968E\u5C64\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002
+doclet.Help_line_19=\u7279\u5B9A\u306E\u30D1\u30C3\u30B1\u30FC\u30B8\u3001\u30AF\u30E9\u30B9\u307E\u305F\u306F\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u3092\u8868\u793A\u3057\u3066\u3044\u308B\u3068\u304D\u306B\u300C\u968E\u5C64\u30C4\u30EA\u30FC\u300D\u3092\u30AF\u30EA\u30C3\u30AF\u3059\u308B\u3068\u3001\u8A72\u5F53\u3059\u308B\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\u307F\u306E\u968E\u5C64\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002
+doclet.Help_line_20_with_deprecated_api_link={0}\u30DA\u30FC\u30B8\u306F\u3001\u63A8\u5968\u3055\u308C\u3066\u3044\u306A\u3044\u3059\u3079\u3066\u306EAPI\u306E\u30EA\u30B9\u30C8\u3092\u8868\u793A\u3057\u307E\u3059\u3002\u975E\u63A8\u5968API\u3068\u306F\u3001\u6A5F\u80FD\u6539\u826F\u306A\u3069\u306E\u7406\u7531\u304B\u3089\u4F7F\u7528\u3092\u304A\u85A6\u3081\u3067\u304D\u306A\u304F\u306A\u3063\u305FAPI\u306E\u3053\u3068\u3067\u3001\u901A\u5E38\u306F\u305D\u308C\u306B\u4EE3\u308F\u308BAPI\u304C\u63D0\u4F9B\u3055\u308C\u307E\u3059\u3002\u975E\u63A8\u5968API\u306F\u4ECA\u5F8C\u306E\u5B9F\u88C5\u3067\u524A\u9664\u3055\u308C\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002
+doclet.Help_line_21=\u7D22\u5F15
+doclet.Help_line_22={0}\u306B\u306F\u3001\u3059\u3079\u3066\u306E\u30AF\u30E9\u30B9\u3001\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u3001\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF\u3001\u30E1\u30BD\u30C3\u30C9\u304A\u3088\u3073\u30D5\u30A3\u30FC\u30EB\u30C9\u306E\u30A2\u30EB\u30D5\u30A1\u30D9\u30C3\u30C8\u9806\u306E\u30EA\u30B9\u30C8\u304C\u542B\u307E\u308C\u307E\u3059\u3002
+doclet.Help_line_23=\u524D/\u6B21
+doclet.Help_line_24=\u3053\u308C\u3089\u306E\u30EA\u30F3\u30AF\u306B\u3088\u308A\u3001\u524D\u307E\u305F\u306F\u6B21\u306E\u30AF\u30E9\u30B9\u3001\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u3001\u30D1\u30C3\u30B1\u30FC\u30B8\u307E\u305F\u306F\u95A2\u9023\u30DA\u30FC\u30B8\u3078\u79FB\u52D5\u3067\u304D\u307E\u3059\u3002
+doclet.Help_line_25=\u30D5\u30EC\u30FC\u30E0/\u30D5\u30EC\u30FC\u30E0\u306A\u3057
+doclet.Help_line_26=\u3053\u308C\u3089\u306E\u30EA\u30F3\u30AF\u306FHTML\u30D5\u30EC\u30FC\u30E0\u306E\u8868\u793A\u3068\u975E\u8868\u793A\u3092\u5207\u308A\u66FF\u3048\u307E\u3059\u3002\u3059\u3079\u3066\u306E\u30DA\u30FC\u30B8\u306F\u30D5\u30EC\u30FC\u30E0\u3042\u308A\u3067\u3082\u3001\u30D5\u30EC\u30FC\u30E0\u306A\u3057\u3067\u3082\u8868\u793A\u3067\u304D\u307E\u3059\u3002
+doclet.Help_line_27=\u76F4\u5217\u5316\u53EF\u80FD\u307E\u305F\u306F\u5916\u90E8\u5316\u53EF\u80FD\u306A\u5404\u30AF\u30E9\u30B9\u306F\u3001\u76F4\u5217\u5316\u30D5\u30A3\u30FC\u30EB\u30C9\u3068\u30E1\u30BD\u30C3\u30C9\u306E\u8AAC\u660E\u3092\u542B\u307F\u307E\u3059\u3002\u3053\u306E\u60C5\u5831\u306F\u3001API\u3092\u4F7F\u7528\u3059\u308B\u958B\u767A\u8005\u3067\u306F\u306A\u304F\u3001\u518D\u5B9F\u88C5\u3092\u884C\u3046\u62C5\u5F53\u8005\u306B\u5F79\u7ACB\u3061\u307E\u3059\u3002\u30CA\u30D3\u30B2\u30FC\u30B7\u30E7\u30F3\u30FB\u30D0\u30FC\u306B\u30EA\u30F3\u30AF\u304C\u306A\u3044\u5834\u5408\u3001\u76F4\u5217\u5316\u3055\u308C\u305F\u30AF\u30E9\u30B9\u306B\u79FB\u52D5\u3057\u3066\u3001\u30AF\u30E9\u30B9\u8A18\u8FF0\u306E\u300C\u95A2\u9023\u9805\u76EE\u300D\u30BB\u30AF\u30B7\u30E7\u30F3\u306B\u3042\u308B\u300C\u76F4\u5217\u5316\u3055\u308C\u305F\u5F62\u5F0F\u300D\u3092\u30AF\u30EA\u30C3\u30AF\u3059\u308B\u3053\u3068\u306B\u3088\u308A\u3001\u3053\u306E\u60C5\u5831\u3092\u8868\u793A\u3067\u304D\u307E\u3059\u3002
+doclet.Help_line_28=<a href="constant-values.html">\u300C\u5B9A\u6570\u30D5\u30A3\u30FC\u30EB\u30C9\u5024\u300D</a> \u30DA\u30FC\u30B8\u306B\u306F\u3001static final\u30D5\u30A3\u30FC\u30EB\u30C9\u3068\u305D\u306E\u5024\u306E\u30EA\u30B9\u30C8\u304C\u3042\u308A\u307E\u3059\u3002
+doclet.Help_line_29=\u3053\u306E\u30D8\u30EB\u30D7\u30FB\u30D5\u30A1\u30A4\u30EB\u306F\u3001\u6A19\u6E96doclet\u3092\u4F7F\u7528\u3057\u3066\u751F\u6210\u3055\u308C\u305FAPI\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306B\u9069\u7528\u3055\u308C\u307E\u3059\u3002
+doclet.Help_enum_line_1=\u5404\u5217\u6319\u578B\u306B\u306F\u3001\u305D\u308C\u81EA\u8EAB\u306E\u500B\u5225\u306E\u30DA\u30FC\u30B8\u3068\u6B21\u306E\u30BB\u30AF\u30B7\u30E7\u30F3\u304C\u3042\u308A\u307E\u3059:
+doclet.Help_enum_line_2=\u5217\u6319\u578B\u306E\u5BA3\u8A00
+doclet.Help_enum_line_3=\u5217\u6319\u578B\u306E\u8AAC\u660E
+doclet.Help_annotation_type_line_1=\u5404\u6CE8\u91C8\u578B\u306B\u306F\u3001\u305D\u308C\u81EA\u8EAB\u306E\u500B\u5225\u306E\u30DA\u30FC\u30B8\u3068\u6B21\u306E\u30BB\u30AF\u30B7\u30E7\u30F3\u304C\u3042\u308A\u307E\u3059:
+doclet.Help_annotation_type_line_2=\u6CE8\u91C8\u578B\u306E\u5BA3\u8A00
+doclet.Help_annotation_type_line_3=\u6CE8\u91C8\u578B\u306E\u8AAC\u660E
 doclet.The=The
-doclet.Style_line_1=javadoc \u30b9\u30bf\u30a4\u30eb\u30b7\u30fc\u30c8
-doclet.Style_line_2=\u8272\u3084\u30d5\u30a9\u30f3\u30c8\u306a\u3069\u306e\u30b9\u30bf\u30a4\u30eb\u5c5e\u6027\u306e\u30c7\u30d5\u30a9\u30eb\u30c8\u5024\u3092\u4e0a\u66f8\u304d\u3059\u308b\u306b\u306f\u3001\u3053\u3053\u3067\u5b9a\u7fa9\u3057\u307e\u3059\u3002
-doclet.Style_line_3=\u30da\u30fc\u30b8\u306e\u30d0\u30c3\u30af\u30b0\u30e9\u30a6\u30f3\u30c9\u306e\u8272
-doclet.Style_Headings=\u898b\u51fa\u3057
-doclet.Style_line_4=\u30c6\u30fc\u30d6\u30eb\u306e\u8272
-doclet.Style_line_5=\u6fc3\u3044\u85e4\u8272
-doclet.Style_line_6=\u8584\u3044\u85e4\u8272
-doclet.Style_line_7=\u767d
-doclet.Style_line_8=\u5de6\u5074\u306e\u30d5\u30ec\u30fc\u30e0\u306e\u30ea\u30b9\u30c8\u306b\u4f7f\u7528\u3059\u308b\u30d5\u30a9\u30f3\u30c8
-doclet.Style_line_9=\u30d5\u30ec\u30fc\u30e0\u306b\u304a\u3051\u308b\u3001\u3088\u308a\u5c0f\u3055\u3044\u3001\u30bb\u30ea\u30d5\u306a\u3057\u30d5\u30a9\u30f3\u30c8\u306e\u4f8b
-doclet.Style_line_10=\u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3\u30d0\u30fc\u306e\u30d5\u30a9\u30f3\u30c8\u3068\u8272
-doclet.Style_line_11=\u6fc3\u3044\u9752
-doclet.Style_line_12=\u8868\u898b\u51fa\u3057\u306e\u30b9\u30bf\u30a4\u30eb
-doclet.ClassUse_Packages.that.use.0={0} \u3092\u4f7f\u7528\u3057\u3066\u3044\u308b\u30d1\u30c3\u30b1\u30fc\u30b8
-doclet.ClassUse_Uses.of.0.in.1={1} \u3067\u306e {0} \u306e\u4f7f\u7528
-doclet.ClassUse_Classes.in.0.used.by.1={1} \u306b\u3088\u308a\u4f7f\u7528\u3055\u308c\u308b {0} \u306e\u30af\u30e9\u30b9
-doclet.ClassUse_PackageAnnotation={0} \u578b\u306e\u6ce8\u91c8\u3092\u6301\u3064\u30d1\u30c3\u30b1\u30fc\u30b8
-doclet.ClassUse_Annotation={0} \u578b\u306e\u6ce8\u91c8\u3092\u6301\u3064 {1} \u306e\u30e1\u30bd\u30c3\u30c9
-doclet.ClassUse_TypeParameter={0} \u578b\u306e\u578b\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u6301\u3064 {1} \u306e\u30af\u30e9\u30b9
-doclet.ClassUse_MethodTypeParameter={0} \u578b\u306e\u578b\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u6301\u3064 {1} \u306e\u30e1\u30bd\u30c3\u30c9
-doclet.ClassUse_FieldTypeParameter={0} \u578b\u306e\u578b\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u6301\u3064 {1} \u306e\u30d5\u30a3\u30fc\u30eb\u30c9
-doclet.ClassUse_FieldAnnotations={0} \u578b\u306e\u6ce8\u91c8\u3092\u6301\u3064 {1} \u306e\u30d5\u30a3\u30fc\u30eb\u30c9
-doclet.ClassUse_MethodAnnotations={0} \u578b\u306e\u6ce8\u91c8\u3092\u6301\u3064 {1} \u306e\u30e1\u30bd\u30c3\u30c9
-doclet.ClassUse_MethodParameterAnnotations={0} \u578b\u306e\u6ce8\u91c8\u3092\u6301\u3064 {1} \u306e\u30e1\u30bd\u30c3\u30c9\u30d1\u30e9\u30e1\u30fc\u30bf
-doclet.ClassUse_MethodReturnTypeParameter={0} \u578b\u306e\u5f15\u6570\u3092\u6301\u3064\u578b\u3092\u8fd4\u3059 {1} \u306e\u30e1\u30bd\u30c3\u30c9
-doclet.ClassUse_Subclass={1} \u3067\u306e {0} \u306e\u30b5\u30d6\u30af\u30e9\u30b9
-doclet.ClassUse_Subinterface={1} \u3067\u306e {0} \u306e\u30b5\u30d6\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9
-doclet.ClassUse_ImplementingClass={0} \u3092\u5b9f\u88c5\u3057\u3066\u3044\u308b {1} \u306e\u30af\u30e9\u30b9
-doclet.ClassUse_Field={0} \u3068\u3057\u3066\u5ba3\u8a00\u3055\u308c\u3066\u3044\u308b {1} \u306e\u30d5\u30a3\u30fc\u30eb\u30c9
-doclet.ClassUse_MethodReturn={0} \u3092\u8fd4\u3059 {1} \u306e\u30e1\u30bd\u30c3\u30c9
-doclet.ClassUse_MethodArgs={0} \u578b\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u6301\u3064 {1} \u306e\u30e1\u30bd\u30c3\u30c9
-doclet.ClassUse_MethodArgsTypeParameters={0} \u578b\u306e\u578b\u5f15\u6570\u3092\u6301\u3064 {1} \u306e\u30e1\u30bd\u30c3\u30c9\u30d1\u30e9\u30e1\u30fc\u30bf
-doclet.ClassUse_MethodThrows={0} \u3092\u30b9\u30ed\u30fc\u3059\u308b {1} \u306e\u30e1\u30bd\u30c3\u30c9
-doclet.ClassUse_ConstructorAnnotations={0} \u578b\u306e\u6ce8\u91c8\u3092\u6301\u3064 {1} \u306e\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf
-doclet.ClassUse_ConstructorParameterAnnotations={0} \u578b\u306e\u6ce8\u91c8\u3092\u6301\u3064 {1} \u306e\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u30d1\u30e9\u30e1\u30fc\u30bf
-doclet.ClassUse_ConstructorArgs={0} \u578b\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u6301\u3064 {1} \u306e\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf
-doclet.ClassUse_ConstructorArgsTypeParameters={0} \u578b\u306e\u578b\u5f15\u6570\u3092\u6301\u3064 {1} \u306e\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u30d1\u30e9\u30e1\u30fc\u30bf
-doclet.ClassUse_ConstructorThrows={0} \u3092\u30b9\u30ed\u30fc\u3059\u308b {1} \u306e\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf
-doclet.ClassUse_No.usage.of.0={0} \u306f\u3069\u3053\u304b\u3089\u3082\u4f7f\u7528\u3055\u308c\u3066\u3044\u307e\u305b\u3093
-doclet.Window_ClassUse_Header={0} {1} \u306e\u4f7f\u7528
-doclet.ClassUse_Title={0}<br>{1} \u306e\u4f7f\u7528
-doclet.navClassUse=\u4f7f\u7528
-doclet.link_option_twice=\u5916\u90e8 URL \u30ea\u30f3\u30af\u30aa\u30d7\u30b7\u30e7\u30f3 (link \u307e\u305f\u306f linkoffline) \u304c 2 \u56de\u4f7f\u7528\u3055\u308c\u3066\u3044\u307e\u3059\u3002
-doclet.Error_in_packagelist=-group \u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u4f7f\u7528\u65b9\u6cd5\u306e\u30a8\u30e9\u30fc: {0} {1}
-doclet.Groupname_already_used=-group \u30aa\u30d7\u30b7\u30e7\u30f3\u306b\u304a\u3044\u3066\u3001\u3059\u3067\u306b\u30b0\u30eb\u30fc\u30d7\u540d\u304c\u4f7f\u7528\u3055\u308c\u3066\u3044\u307e\u3059: {0}
-doclet.Same_package_name_used=\u30d1\u30c3\u30b1\u30fc\u30b8\u540d\u5f62\u5f0f\u304c 2 \u56de\u4f7f\u7528\u3055\u308c\u3066\u3044\u307e\u3059: {0}
-doclet.Serialization.Excluded_Class=\u5e38\u99d0\u30d5\u30a3\u30fc\u30eb\u30c9 {1} \u306f\u3001\u9664\u5916\u3055\u308c\u305f\u30af\u30e9\u30b9 {0} \u3092\u4f7f\u7528\u3057\u307e\u3059\u3002
-doclet.Serialization.Nonexcluded_Class=\u5e38\u99d0\u30d5\u30a3\u30fc\u30eb\u30c9 {1} \u306f\u3001\u975e\u8868\u793a\u306e\u3001\u542b\u307e\u308c\u306a\u3044\u30af\u30e9\u30b9 {0} \u3092\u4f7f\u7528\u3057\u307e\u3059\u3002
-doclet.usage=\u6a19\u6e96\u306e doclet \u306b\u3088\u308a\u63d0\u4f9b\u3055\u308c\u308b\u3082\u306e:\n-d <directory>                    \u51fa\u529b\u30d5\u30a1\u30a4\u30eb\u306e\u8ee2\u9001\u5148\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\n-use                              \u30af\u30e9\u30b9\u3068\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u4f7f\u7528\u30da\u30fc\u30b8\u3092\u4f5c\u6210\u3059\u308b\n-version                          @version \u30d1\u30e9\u30b0\u30e9\u30d5\u3092\u542b\u3081\u308b\n-author                           @author \u30d1\u30e9\u30b0\u30e9\u30d5\u3092\u542b\u3081\u308b\n-docfilessubdirs                  doc-file \u30b5\u30d6\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u518d\u5e30\u7684\u306b\u30b3\u30d4\u30fc\u3059\u308b\n-splitindex                       1 \u5b57\u3054\u3068\u306b 1 \u30d5\u30a1\u30a4\u30eb\u306b\u7d22\u5f15\u3092\u5206\u5272\u3059\u308b\n-windowtitle <text>               \u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u7528\u306e\u30d6\u30e9\u30a6\u30b6\u30a6\u30a3\u30f3\u30c9\u30a6\u30bf\u30a4\u30c8\u30eb\n-doctitle <html-code>             \u6982\u8981\u30da\u30fc\u30b8\u306b\u30bf\u30a4\u30c8\u30eb\u3092\u542b\u3081\u308b\n-header <html-code>               \u5404\u30da\u30fc\u30b8\u306b\u30d8\u30c3\u30c0\u30fc\u3092\u542b\u3081\u308b\n-footer <html-code>               \u5404\u30da\u30fc\u30b8\u306b\u30d5\u30c3\u30bf\u30fc\u3092\u542b\u3081\u308b\n-top    <html-code>               \u5404\u30da\u30fc\u30b8\u306b\u4e0a\u90e8\u30c6\u30ad\u30b9\u30c8\u3092\u542b\u3081\u308b\n-bottom <html-code>               \u5404\u30da\u30fc\u30b8\u306b\u4e0b\u90e8\u30c6\u30ad\u30b9\u30c8\u3092\u542b\u3081\u308b\n-link <url>                       <url> \u306b javadoc \u51fa\u529b\u3078\u306e\u30ea\u30f3\u30af\u3092\u4f5c\u6210\u3059\u308b\n-linkoffline <url> <url2>         <url2> \u306b\u3042\u308b\u30d1\u30c3\u30b1\u30fc\u30b8\u30ea\u30b9\u30c8\u3092\u4f7f\u7528\u3057\u3066 <url> \u306e docs \u306b\u30ea\u30f3\u30af\u3059\u308b\n-excludedocfilessubdir <name1>:.. \u6307\u5b9a\u3055\u308c\u305f\u540d\u524d\u306e doc-files \u30b5\u30d6\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u3059\u3079\u3066\u9664\u5916\u3059\u308b\n-group <name> <p1>:<p2>..         \u6307\u5b9a\u3059\u308b\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u6982\u8981\u30da\u30fc\u30b8\u306b\u304a\u3044\u3066\u30b0\u30eb\u30fc\u30d7\u5316\u3059\u308b\n-nocomment                        \u8a18\u8ff0\u304a\u3088\u3073\u30bf\u30b0\u3092\u6291\u5236\u3057\u3066\u5ba3\u8a00\u3060\u3051\u3092\u751f\u6210\u3059\u308b\n-nodeprecated                     @deprecated \u60c5\u5831\u3092\u9664\u5916\u3059\u308b\n-noqualifier <name1>:<name2>:...  \u51fa\u529b\u304b\u3089\u4fee\u98fe\u5b50\u306e\u30ea\u30b9\u30c8\u3092\u9664\u5916\u3059\u308b\n-nosince                          @since \u60c5\u5831\u3092\u9664\u5916\u3059\u308b\n-notimestamp                      \u975e\u8868\u793a\u306e\u30bf\u30a4\u30e0\u30b9\u30bf\u30f3\u30d7\u3092\u9664\u5916\u3059\u308b\n-nodeprecatedlist                 \u975e\u63a8\u5968 \u306e\u30ea\u30b9\u30c8\u3092\u751f\u6210\u3057\u306a\u3044\n-notree                           \u30af\u30e9\u30b9\u968e\u5c64\u3092\u751f\u6210\u3057\u306a\u3044\n-noindex                          \u7d22\u5f15\u3092\u751f\u6210\u3057\u306a\u3044\n-nohelp                           \u30d8\u30eb\u30d7\u30ea\u30f3\u30af\u3092\u751f\u6210\u3057\u306a\u3044\n-nonavbar                         \u30ca\u30d3\u30b2\u30fc\u30b7\u30e7\u30f3\u30d0\u30fc\u3092\u751f\u6210\u3057\u306a\u3044\n-serialwarn                       @serial \u30bf\u30b0\u306b\u95a2\u3059\u308b\u8b66\u544a\u3092\u751f\u6210\u3059\u308b\n-tag <name>:<locations>:<header>  \u5358\u4e00\u306e\u5f15\u6570\u3092\u6301\u3064\u30ab\u30b9\u30bf\u30e0\u30bf\u30b0\u3092\u6307\u5b9a\u3059\u308b\n-taglet                           \u30bf\u30b0\u30ec\u30c3\u30c8\u306e\u5b8c\u5168\u4fee\u98fe\u540d\u3092\u767b\u9332\u3059\u308b\n-tagletpath                       \u30bf\u30b0\u30ec\u30c3\u30c8\u306e\u30d1\u30b9\n-charset <charset>                \u751f\u6210\u3055\u308c\u308b\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u30af\u30ed\u30b9\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u3067\u306e\u6587\u5b57\u30a8\u30f3\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\n-helpfile <file>                  \u30d8\u30eb\u30d7\u30ea\u30f3\u30af\u306e\u30ea\u30f3\u30af\u5148\u30d5\u30a1\u30a4\u30eb\u3092\u542b\u3081\u308b\n-linksource                       HTML \u5f62\u5f0f\u3067\u30bd\u30fc\u30b9\u3092\u751f\u6210\u3059\u308b\n-sourcetab <tab length>           \u30bd\u30fc\u30b9\u5185\u306e\u30bf\u30d6\u306e\u7a7a\u767d\u6587\u5b57\u306e\u6570\u3092\u6307\u5b9a\u3059\u308b\n-keywords                         HTML \u306e meta \u30bf\u30b0\u306b\u3001\u30d1\u30c3\u30b1\u30fc\u30b8\u3001\u30af\u30e9\u30b9\u3001\u304a\u3088\u3073\u30e1\u30f3\u30d0\u30fc\u306e\u60c5\u5831\u3092\u542b\u3081\u308b\n-stylesheetfile <path>            \u751f\u6210\u3055\u308c\u305f\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306e\u30b9\u30bf\u30a4\u30eb\u5909\u66f4\u7528\u30d5\u30a1\u30a4\u30eb\n-docencoding <name>               \u51fa\u529b\u30a8\u30f3\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u540d
+doclet.Style_line_1=javadoc\u30B9\u30BF\u30A4\u30EB\u30FB\u30B7\u30FC\u30C8
+doclet.Style_line_2=\u8272\u3084\u30D5\u30A9\u30F3\u30C8\u306A\u3069\u306E\u30B9\u30BF\u30A4\u30EB\u5C5E\u6027\u306E\u30C7\u30D5\u30A9\u30EB\u30C8\u5024\u3092\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3059\u308B\u306B\u306F\u3001\u3053\u3053\u3067\u5B9A\u7FA9\u3057\u307E\u3059
+doclet.Style_line_3=\u30DA\u30FC\u30B8\u306E\u30D0\u30C3\u30AF\u30B0\u30E9\u30A6\u30F3\u30C9\u306E\u8272
+doclet.Style_Headings=\u898B\u51FA\u3057
+doclet.Style_line_4=\u8868\u306E\u8272
+doclet.Style_line_5=\u6FC3\u3044\u85E4\u8272
+doclet.Style_line_6=\u8584\u3044\u85E4\u8272
+doclet.Style_line_7=\u767D
+doclet.Style_line_8=\u5DE6\u5074\u306E\u30D5\u30EC\u30FC\u30E0\u306E\u30EA\u30B9\u30C8\u306B\u4F7F\u7528\u3059\u308B\u30D5\u30A9\u30F3\u30C8
+doclet.Style_line_9=\u30D5\u30EC\u30FC\u30E0\u306B\u304A\u3051\u308B\u3001\u3088\u308A\u5C0F\u3055\u3044sans-serif\u30D5\u30A9\u30F3\u30C8\u306E\u4F8B
+doclet.Style_line_10=\u30CA\u30D3\u30B2\u30FC\u30B7\u30E7\u30F3\u30FB\u30D0\u30FC\u306E\u30D5\u30A9\u30F3\u30C8\u3068\u8272
+doclet.Style_line_11=\u6FC3\u3044\u9752
+doclet.Style_line_12=\u8868\u306E\u30AD\u30E3\u30D7\u30B7\u30E7\u30F3\u30FB\u30B9\u30BF\u30A4\u30EB
+doclet.ClassUse_Packages.that.use.0={0}\u3092\u4F7F\u7528\u3057\u3066\u3044\u308B\u30D1\u30C3\u30B1\u30FC\u30B8
+doclet.ClassUse_Uses.of.0.in.1={1}\u3067\u306E{0}\u306E\u4F7F\u7528
+doclet.ClassUse_Classes.in.0.used.by.1={1}\u306B\u3088\u308A\u4F7F\u7528\u3055\u308C\u308B{0}\u306E\u30AF\u30E9\u30B9
+doclet.ClassUse_PackageAnnotation={0}\u578B\u306E\u6CE8\u91C8\u3092\u6301\u3064\u30D1\u30C3\u30B1\u30FC\u30B8
+doclet.ClassUse_Annotation={0}\u578B\u306E\u6CE8\u91C8\u3092\u6301\u3064{1}\u306E\u30E1\u30BD\u30C3\u30C9
+doclet.ClassUse_TypeParameter={0}\u578B\u306E\u578B\u30D1\u30E9\u30E1\u30FC\u30BF\u3092\u6301\u3064{1}\u306E\u30AF\u30E9\u30B9
+doclet.ClassUse_MethodTypeParameter={0}\u578B\u306E\u578B\u30D1\u30E9\u30E1\u30FC\u30BF\u3092\u6301\u3064{1}\u306E\u30E1\u30BD\u30C3\u30C9
+doclet.ClassUse_FieldTypeParameter={0}\u578B\u306E\u578B\u30D1\u30E9\u30E1\u30FC\u30BF\u3092\u6301\u3064{1}\u306E\u30D5\u30A3\u30FC\u30EB\u30C9
+doclet.ClassUse_FieldAnnotations={0}\u578B\u306E\u6CE8\u91C8\u3092\u6301\u3064{1}\u306E\u30D5\u30A3\u30FC\u30EB\u30C9
+doclet.ClassUse_MethodAnnotations={0}\u578B\u306E\u6CE8\u91C8\u3092\u6301\u3064{1}\u306E\u30E1\u30BD\u30C3\u30C9
+doclet.ClassUse_MethodParameterAnnotations={0}\u578B\u306E\u6CE8\u91C8\u3092\u6301\u3064{1}\u306E\u30E1\u30BD\u30C3\u30C9\u30FB\u30D1\u30E9\u30E1\u30FC\u30BF
+doclet.ClassUse_MethodReturnTypeParameter={0}\u578B\u306E\u5F15\u6570\u3092\u6301\u3064\u578B\u3092\u8FD4\u3059{1}\u306E\u30E1\u30BD\u30C3\u30C9
+doclet.ClassUse_Subclass={1}\u3067\u306E{0}\u306E\u30B5\u30D6\u30AF\u30E9\u30B9
+doclet.ClassUse_Subinterface={1}\u3067\u306E{0}\u306E\u30B5\u30D6\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9
+doclet.ClassUse_ImplementingClass={0}\u3092\u5B9F\u88C5\u3057\u3066\u3044\u308B{1}\u306E\u30AF\u30E9\u30B9
+doclet.ClassUse_Field={0}\u3068\u3057\u3066\u5BA3\u8A00\u3055\u308C\u3066\u3044\u308B{1}\u306E\u30D5\u30A3\u30FC\u30EB\u30C9
+doclet.ClassUse_MethodReturn={0}\u3092\u8FD4\u3059{1}\u306E\u30E1\u30BD\u30C3\u30C9
+doclet.ClassUse_MethodArgs={0}\u578B\u306E\u30D1\u30E9\u30E1\u30FC\u30BF\u3092\u6301\u3064{1}\u306E\u30E1\u30BD\u30C3\u30C9
+doclet.ClassUse_MethodArgsTypeParameters={0}\u578B\u306E\u578B\u5F15\u6570\u3092\u6301\u3064{1}\u306E\u30E1\u30BD\u30C3\u30C9\u30FB\u30D1\u30E9\u30E1\u30FC\u30BF
+doclet.ClassUse_MethodThrows={0}\u3092\u30B9\u30ED\u30FC\u3059\u308B{1}\u306E\u30E1\u30BD\u30C3\u30C9
+doclet.ClassUse_ConstructorAnnotations={0}\u578B\u306E\u6CE8\u91C8\u3092\u6301\u3064{1}\u306E\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF
+doclet.ClassUse_ConstructorParameterAnnotations={0}\u578B\u306E\u6CE8\u91C8\u3092\u6301\u3064{1}\u306E\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF\u30FB\u30D1\u30E9\u30E1\u30FC\u30BF
+doclet.ClassUse_ConstructorArgs={0}\u578B\u306E\u30D1\u30E9\u30E1\u30FC\u30BF\u3092\u6301\u3064{1}\u306E\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF
+doclet.ClassUse_ConstructorArgsTypeParameters={0}\u578B\u306E\u578B\u5F15\u6570\u3092\u6301\u3064{1}\u306E\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF\u30FB\u30D1\u30E9\u30E1\u30FC\u30BF
+doclet.ClassUse_ConstructorThrows={0}\u3092\u30B9\u30ED\u30FC\u3059\u308B{1}\u306E\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF
+doclet.ClassUse_No.usage.of.0={0}\u306F\u3069\u3053\u304B\u3089\u3082\u4F7F\u7528\u3055\u308C\u3066\u3044\u307E\u305B\u3093
+doclet.Window_ClassUse_Header={0} {1}\u306E\u4F7F\u7528
+doclet.ClassUse_Title={0}<br>{1}\u306E\u4F7F\u7528
+doclet.navClassUse=\u4F7F\u7528
+doclet.link_option_twice=\u5916\u90E8URL\u30EA\u30F3\u30AF\u30FB\u30AA\u30D7\u30B7\u30E7\u30F3(link\u307E\u305F\u306Flinkoffline)\u304C2\u56DE\u4F7F\u7528\u3055\u308C\u3066\u3044\u307E\u3059\u3002
+doclet.Error_in_packagelist=-group\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u4F7F\u7528\u65B9\u6CD5\u306E\u30A8\u30E9\u30FC: {0} {1}
+doclet.Groupname_already_used=-group\u30AA\u30D7\u30B7\u30E7\u30F3\u306B\u304A\u3044\u3066\u3001\u3059\u3067\u306B\u30B0\u30EB\u30FC\u30D7\u540D\u304C\u4F7F\u7528\u3055\u308C\u3066\u3044\u307E\u3059: {0}
+doclet.Same_package_name_used=\u30D1\u30C3\u30B1\u30FC\u30B8\u540D\u5F62\u5F0F\u304C2\u56DE\u4F7F\u7528\u3055\u308C\u3066\u3044\u307E\u3059: {0}
+doclet.Serialization.Excluded_Class=\u5E38\u99D0\u30D5\u30A3\u30FC\u30EB\u30C9{1}\u306F\u3001\u9664\u5916\u3055\u308C\u305F\u30AF\u30E9\u30B9{0}\u3092\u4F7F\u7528\u3057\u307E\u3059\u3002
+doclet.Serialization.Nonexcluded_Class=\u5E38\u99D0\u30D5\u30A3\u30FC\u30EB\u30C9{1}\u306F\u3001\u975E\u8868\u793A\u306E\u3001\u542B\u307E\u308C\u306A\u3044\u30AF\u30E9\u30B9{0}\u3092\u4F7F\u7528\u3057\u307E\u3059\u3002
+doclet.usage=\u6A19\u6E96\u306Edoclet\u306B\u3088\u308A\u63D0\u4F9B\u3055\u308C\u308B\u3082\u306E:\n-d <directory>                    \u51FA\u529B\u30D5\u30A1\u30A4\u30EB\u306E\u8EE2\u9001\u5148\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\n-use                             \u30AF\u30E9\u30B9\u3068\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\u4F7F\u7528\u30DA\u30FC\u30B8\u3092\u4F5C\u6210\u3059\u308B\n-version                          @version\u30D1\u30E9\u30B0\u30E9\u30D5\u3092\u542B\u3081\u308B\n-author                           @author\u30D1\u30E9\u30B0\u30E9\u30D5\u3092\u542B\u3081\u308B\n-docfilessubdirs                  doc-file\u30B5\u30D6\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3092\u518D\u5E30\u7684\u306B\u30B3\u30D4\u30FC\u3059\u308B\n-splitindex                       1\u5B57\u3054\u3068\u306B1\u30D5\u30A1\u30A4\u30EB\u306B\u7D22\u5F15\u3092\u5206\u5272\u3059\u308B\n-windowtitle <text>               \u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u7528\u306E\u30D6\u30E9\u30A6\u30B6\u30FB\u30A6\u30A3\u30F3\u30C9\u30A6\u30FB\u30BF\u30A4\u30C8\u30EB\n-doctitle <html-code>             \u6982\u8981\u30DA\u30FC\u30B8\u306B\u30BF\u30A4\u30C8\u30EB\u3092\u542B\u3081\u308B\n-header <html-code>               \u5404\u30DA\u30FC\u30B8\u306B\u30D8\u30C3\u30C0\u30FC\u3092\u542B\u3081\u308B\n-footer <html-code>               \u5404\u30DA\u30FC\u30B8\u306B\u30D5\u30C3\u30BF\u30FC\u3092\u542B\u3081\u308B\n-top    <html-code>               \u5404\u30DA\u30FC\u30B8\u306B\u4E0A\u90E8\u30C6\u30AD\u30B9\u30C8\u3092\u542B\u3081\u308B\n-bottom <html-code>               \u5404\u30DA\u30FC\u30B8\u306B\u4E0B\u90E8\u30C6\u30AD\u30B9\u30C8\u3092\u542B\u3081\u308B\n-link <url>                       <url>\u306Bjavadoc\u51FA\u529B\u3078\u306E\u30EA\u30F3\u30AF\u3092\u4F5C\u6210\u3059\u308B\n-linkoffline <url> <url2>         <url2>\u306B\u3042\u308B\u30D1\u30C3\u30B1\u30FC\u30B8\u30FB\u30EA\u30B9\u30C8\u3092\u4F7F\u7528\u3057\u3066<url>\u306Edocs\u306B\u30EA\u30F3\u30AF\u3059\u308B\n-excludedocfilessubdir <name1>:.. \u6307\u5B9A\u3055\u308C\u305F\u540D\u524D\u306Edoc-files\u30B5\u30D6\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3092\u3059\u3079\u3066\u9664\u5916\u3059\u308B\n-group <name> <p1>:<p2>..         \u6307\u5B9A\u3059\u308B\u30D1\u30C3\u30B1\u30FC\u30B8\u3092\u6982\u8981\u30DA\u30FC\u30B8\u306B\u304A\u3044\u3066\u30B0\u30EB\u30FC\u30D7\u5316\u3059\u308B\n-nocomment                        \u8A18\u8FF0\u304A\u3088\u3073\u30BF\u30B0\u3092\u6291\u5236\u3057\u3066\u5BA3\u8A00\u306E\u307F\u3092\u751F\u6210\u3059\u308B\n-nodeprecated                     @deprecated\u60C5\u5831\u3092\u9664\u5916\u3059\u308B\n-noqualifier <name1>:<name2>:...  \u51FA\u529B\u304B\u3089\u4FEE\u98FE\u5B50\u306E\u30EA\u30B9\u30C8\u3092\u9664\u5916\u3059\u308B\n-nosince                          @since\u60C5\u5831\u3092\u9664\u5916\u3059\u308B\n-notimestamp                      \u975E\u8868\u793A\u306E\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u3092\u9664\u5916\u3059\u308B\n-nodeprecatedlist                 \u975E\u63A8\u5968\u306E\u30EA\u30B9\u30C8\u3092\u751F\u6210\u3057\u306A\u3044\n-notree                           \u30AF\u30E9\u30B9\u968E\u5C64\u3092\u751F\u6210\u3057\u306A\u3044\n-noindex                          \u7D22\u5F15\u3092\u751F\u6210\u3057\u306A\u3044\n-nohelp                           \u30D8\u30EB\u30D7\u30FB\u30EA\u30F3\u30AF\u3092\u751F\u6210\u3057\u306A\u3044\n-nonavbar                         \u30CA\u30D3\u30B2\u30FC\u30B7\u30E7\u30F3\u30FB\u30D0\u30FC\u3092\u751F\u6210\u3057\u306A\u3044\n-serialwarn                       @serial\u30BF\u30B0\u306B\u95A2\u3059\u308B\u8B66\u544A\u3092\u751F\u6210\u3059\u308B\n-tag <name>:<locations>:<header>  \u5358\u4E00\u306E\u5F15\u6570\u3092\u6301\u3064\u30AB\u30B9\u30BF\u30E0\u30FB\u30BF\u30B0\u3092\u6307\u5B9A\u3059\u308B\n-taglet                           \u30BF\u30B0\u30EC\u30C3\u30C8\u306E\u5B8C\u5168\u4FEE\u98FE\u540D\u3092\u767B\u9332\u3059\u308B\n-tagletpath                       \u30BF\u30B0\u30EC\u30C3\u30C8\u306E\u30D1\u30B9\n-charset <charset>                \u751F\u6210\u3055\u308C\u308B\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306E\u30AF\u30ED\u30B9\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0\u3067\u306E\u6587\u5B57\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0\n-helpfile <file>                  \u30D8\u30EB\u30D7\u30FB\u30EA\u30F3\u30AF\u306E\u30EA\u30F3\u30AF\u5148\u30D5\u30A1\u30A4\u30EB\u3092\u542B\u3081\u308B\n-linksource                       HTML\u5F62\u5F0F\u3067\u30BD\u30FC\u30B9\u3092\u751F\u6210\u3059\u308B\n-sourcetab <tab length>           \u30BD\u30FC\u30B9\u5185\u306E\u30BF\u30D6\u306E\u7A7A\u767D\u6587\u5B57\u306E\u6570\u3092\u6307\u5B9A\u3059\u308B\n-keywords                         HTML\u306Emeta\u30BF\u30B0\u306B\u3001\u30D1\u30C3\u30B1\u30FC\u30B8\u3001\u30AF\u30E9\u30B9\u304A\u3088\u3073\u30E1\u30F3\u30D0\u30FC\u306E\u60C5\u5831\u3092\u542B\u3081\u308B\n-stylesheetfile <path>            \u751F\u6210\u3055\u308C\u305F\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306E\u30B9\u30BF\u30A4\u30EB\u5909\u66F4\u7528\u30D5\u30A1\u30A4\u30EB\n-docencoding <name>               \u51FA\u529B\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0\u540D
 
 
 
--- a/src/share/classes/com/sun/tools/doclets/formats/html/resources/standard_zh_CN.properties	Wed Feb 23 16:39:34 2011 -0500
+++ b/src/share/classes/com/sun/tools/doclets/formats/html/resources/standard_zh_CN.properties	Thu Mar 10 18:42:31 2011 -0500
@@ -1,224 +1,225 @@
-doclet.build_version=\u6807\u51c6 Doclet \u7248\u672c {0}
-doclet.Contents=\u76ee\u5f55
-doclet.Overview=\u6982\u8ff0
-doclet.Window_Overview=\u6982\u8ff0\u5217\u8868
-doclet.Window_Overview_Summary=\u6982\u8ff0
-doclet.Package=\u8f6f\u4ef6\u5305
-doclet.All_Packages=\u6240\u6709\u8f6f\u4ef6\u5305
+doclet.build_version=\u6807\u51C6 Doclet \u7248\u672C {0}
+doclet.Contents=\u76EE\u5F55
+doclet.Overview=\u6982\u89C8
+doclet.Window_Overview=\u6982\u89C8\u5217\u8868
+doclet.Window_Overview_Summary=\u6982\u89C8
+doclet.Package=\u7A0B\u5E8F\u5305
+doclet.All_Packages=\u6240\u6709\u7A0B\u5E8F\u5305
 doclet.Tree=\u6811
-doclet.Class_Hierarchy=\u7c7b\u5206\u5c42\u7ed3\u6784
-doclet.Window_Class_Hierarchy=\u7c7b\u5206\u5c42\u7ed3\u6784
-doclet.Interface_Hierarchy=\u63a5\u53e3\u5206\u5c42\u7ed3\u6784
-doclet.Enum_Hierarchy=\u679a\u4e3e\u5206\u5c42\u7ed3\u6784
-doclet.Annotation_Type_Hierarchy=\u6ce8\u91ca\u7c7b\u578b\u5206\u5c42\u7ed3\u6784
-doclet.Prev=\u4e0a\u4e00\u4e2a
-doclet.Next=\u4e0b\u4e00\u4e2a
-doclet.Prev_Class=\u4e0a\u4e00\u4e2a\u7c7b
-doclet.Next_Class=\u4e0b\u4e00\u4e2a\u7c7b
-doclet.Prev_Package=\u4e0a\u4e00\u4e2a\u8f6f\u4ef6\u5305
-doclet.Next_Package=\u4e0b\u4e00\u4e2a\u8f6f\u4ef6\u5305
-doclet.Prev_Letter=\u4e0a\u4e00\u4e2a\u5b57\u6bcd
-doclet.Next_Letter=\u4e0b\u4e00\u4e2a\u5b57\u6bcd
-doclet.Show_Lists=\u663e\u793a\u5217\u8868
-doclet.Hide_Lists=\u9690\u85cf\u5217\u8868
-doclet.Href_Class_Title={0} \u4e2d\u7684\u7c7b
-doclet.Href_Interface_Title={0} \u4e2d\u7684\u63a5\u53e3
-doclet.Href_Annotation_Title={0} \u4e2d\u7684\u6ce8\u91ca
-doclet.Href_Enum_Title={0} \u4e2d\u7684\u679a\u4e3e
-doclet.Href_Type_Param_Title={0} \u4e2d\u7684\u7c7b\u578b\u53c2\u6570
-doclet.Href_Class_Or_Interface_Title={0} \u4e2d\u7684\u7c7b\u6216\u63a5\u53e3
-doclet.Summary=\u6458\u8981\uff1a
-doclet.Detail=\u8be6\u7ec6\u4fe1\u606f\uff1a
-doclet.navNested=\u5d4c\u5957
-doclet.navAnnotationTypeOptionalMember=\u53ef\u9009
-doclet.navAnnotationTypeRequiredMember=\u5fc5\u9700
-doclet.navAnnotationTypeMember=\u5143\u7d20
-doclet.navField=\u5b57\u6bb5
-doclet.navEnum=\u679a\u4e3e\u5e38\u91cf
-doclet.navConstructor=\u6784\u9020\u65b9\u6cd5
-doclet.navMethod=\u65b9\u6cd5
-doclet.navFactoryMethod=\u5de5\u5382
-doclet.Index=\u7d22\u5f15
-doclet.Window_Single_Index=\u7d22\u5f15
-doclet.Window_Split_Index={0} - \u7d22\u5f15
-doclet.Help=\u5e2e\u52a9
-doclet.Skip_navigation_links=\u8df3\u8fc7\u5bfc\u822a\u94fe\u63a5
-doclet.None=\u65e0
-doclet.CLASSES=\u7c7b
-doclet.MEMBERS=\u6210\u5458
-doclet.NONE=\u65e0
-doclet.Factory_Method_Detail=\u9759\u6001\u5de5\u5382\u65b9\u6cd5\u8be6\u7ec6\u4fe1\u606f
-doclet.navDeprecated=\u5df2\u8fc7\u65f6
-doclet.Deprecated_List=\u5df2\u8fc7\u65f6\u9879\u76ee\u5217\u8868
-doclet.Window_Deprecated_List=\u5df2\u8fc7\u65f6\u9879\u76ee\u5217\u8868
-doclet.Note_0_is_deprecated=\u6ce8\u610f\uff1a{0} \u5df2\u8fc7\u65f6\u3002
-doclet.Overrides=\u8986\u76d6\uff1a
-doclet.in_class=\u7c7b {1} \u4e2d\u7684 {0}
-doclet.0_Fields_and_Methods=&quot;{0}&quot; \u5b57\u6bb5\u548c\u65b9\u6cd5
-doclet.Index_of_Fields_and_Methods=\u5b57\u6bb5\u548c\u65b9\u6cd5\u7684\u7d22\u5f15
-doclet.Static_variable_in={0} \u4e2d\u7684\u9759\u6001\u53d8\u91cf
-doclet.Variable_in={0} \u4e2d\u7684\u53d8\u91cf
-doclet.Constructor_for={0} \u7684\u6784\u9020\u65b9\u6cd5
-doclet.Static_method_in={0} \u4e2d\u7684\u9759\u6001\u65b9\u6cd5
-doclet.Method_in={0} \u4e2d\u7684\u65b9\u6cd5
-doclet.throws=\u629b\u51fa
-doclet.package=\u8f6f\u4ef6\u5305
-doclet.MalformedURL=\u4e0d\u89c4\u5219\u7684 URL\uff1a {0}
-doclet.File_error=\u8bfb\u53d6\u6587\u4ef6\u65f6\u51fa\u9519\uff1a{0}
-doclet.URL_error=\u83b7\u53d6 URL \u65f6\u51fa\u9519\uff1a{0}
-doclet.No_Package_Comment_File=\u5bf9\u4e8e\u8f6f\u4ef6\u5305 {0}\uff0c\u627e\u4e0d\u5230 Package.Comment \u6587\u4ef6
-doclet.No_Source_For_Class=\u7c7b {0} \u7684\u6e90\u4fe1\u606f\u4e0d\u53ef\u7528\u3002
-doclet.see.class_or_package_not_found=\u6807\u8bb0 {0}\uff1a\u627e\u4e0d\u5230\u5f15\u7528\uff1a {1}
-doclet.see.malformed_tag=\u6807\u8bb0 {0}\uff1a\u4e0d\u89c4\u5219\uff1a {1}
-doclet.Inherited_API_Summary=\u7ee7\u627f\u7684 API \u6458\u8981
-doclet.Deprecated_API=\u5df2\u8fc7\u65f6\u7684 API
-doclet.Deprecated_Classes=\u5df2\u8fc7\u65f6\u7684\u7c7b
-doclet.Deprecated_Enums=\u5df2\u8fc7\u65f6\u7684\u679a\u4e3e
-doclet.Deprecated_Interfaces=\u5df2\u8fc7\u65f6\u7684\u63a5\u53e3
-doclet.Deprecated_Exceptions=\u5df2\u8fc7\u65f6\u7684\u5f02\u5e38
-doclet.Deprecated_Annotation_Types=\u5df2\u8fc7\u65f6\u7684\u6ce8\u91ca\u7c7b\u578b
-doclet.Deprecated_Errors=\u5df2\u8fc7\u65f6\u7684\u9519\u8bef
-doclet.Deprecated_Fields=\u5df2\u8fc7\u65f6\u7684\u5b57\u6bb5
-doclet.Deprecated_Constructors=\u5df2\u8fc7\u65f6\u7684\u6784\u9020\u65b9\u6cd5
-doclet.Deprecated_Methods=\u5df2\u8fc7\u65f6\u7684\u65b9\u6cd5
-doclet.Deprecated_Enum_Constants=\u5df2\u8fc7\u65f6\u7684\u679a\u4e3e\u5e38\u91cf
-doclet.Deprecated_Annotation_Type_Members=\u5df2\u8fc7\u65f6\u7684\u6ce8\u91ca\u7c7b\u578b\u5143\u7d20
-doclet.deprecated_classes=\u5df2\u8fc7\u65f6\u7684\u7c7b
-doclet.deprecated_enums=\u5df2\u8fc7\u65f6\u7684\u679a\u4e3e
-doclet.deprecated_interfaces=\u5df2\u8fc7\u65f6\u7684\u63a5\u53e3
-doclet.deprecated_exceptions=\u5df2\u8fc7\u65f6\u7684\u5f02\u5e38
-doclet.deprecated_annotation_types=\u5df2\u8fc7\u65f6\u7684\u6ce8\u91ca\u7c7b\u578b
-doclet.deprecated_errors=\u5df2\u8fc7\u65f6\u7684\u9519\u8bef
-doclet.deprecated_fields=\u5df2\u8fc7\u65f6\u7684\u5b57\u6bb5
-doclet.deprecated_constructors=\u5df2\u8fc7\u65f6\u7684\u6784\u9020\u51fd\u6570
-doclet.deprecated_methods=\u5df2\u8fc7\u65f6\u7684\u65b9\u6cd5
-doclet.deprecated_enum_constants=\u5df2\u8fc7\u65f6\u7684\u679a\u4e3e\u5e38\u91cf
-doclet.deprecated_annotation_type_members=\u5df2\u8fc7\u65f6\u7684\u6ce8\u91ca\u7c7b\u578b\u5143\u7d20
-doclet.Frame_Output=\u6846\u67b6\u8f93\u51fa
-doclet.Docs_generated_by_Javadoc=\u7531 Javadoc \u751f\u6210\u7684\u6587\u6863\u3002
-doclet.Generated_Docs_Untitled=\u751f\u6210\u7684\u6587\u6863\uff08\u65e0\u6807\u9898\uff09
-doclet.Blank=\u7a7a\u767d
-doclet.Other_Packages=\u5176\u4ed6\u8f6f\u4ef6\u5305
-doclet.Package_Description=\u8f6f\u4ef6\u5305 {0} \u7684\u63cf\u8ff0
-doclet.Description=\u63cf\u8ff0
-doclet.Specified_By=\u6307\u5b9a\u8005\uff1a
-doclet.in_interface=\u63a5\u53e3 {1} \u4e2d\u7684 {0}
-doclet.Subclasses=\u76f4\u63a5\u5df2\u77e5\u5b50\u7c7b\uff1a
-doclet.Subinterfaces=\u6240\u6709\u5df2\u77e5\u5b50\u63a5\u53e3\uff1a
-doclet.Implementing_Classes=\u6240\u6709\u5df2\u77e5\u5b9e\u73b0\u7c7b\uff1a
-doclet.also=\u5e76
+doclet.Class_Hierarchy=\u7C7B\u5206\u5C42\u7ED3\u6784
+doclet.Window_Class_Hierarchy=\u7C7B\u5206\u5C42\u7ED3\u6784
+doclet.Interface_Hierarchy=\u63A5\u53E3\u5206\u5C42\u7ED3\u6784
+doclet.Enum_Hierarchy=\u679A\u4E3E\u5206\u5C42\u7ED3\u6784
+doclet.Annotation_Type_Hierarchy=\u6CE8\u91CA\u7C7B\u578B\u5206\u5C42\u7ED3\u6784
+doclet.Prev=\u4E0A\u4E00\u4E2A
+doclet.Next=\u4E0B\u4E00\u4E2A
+doclet.Prev_Class=PREV CLASS
+doclet.Next_Class=NEXT CLASS
+doclet.Prev_Package=PREV PACKAGE
+doclet.Next_Package=NEXT PACKAGE
+doclet.Prev_Letter=PREV LETTER
+doclet.Next_Letter=NEXT LETTER
+doclet.Show_Lists=SHOW LISTS
+doclet.Hide_Lists=HIDE LISTS
+doclet.Href_Class_Title={0}\u4E2D\u7684\u7C7B
+doclet.Href_Interface_Title={0}\u4E2D\u7684\u63A5\u53E3
+doclet.Href_Annotation_Title={0}\u4E2D\u7684\u6CE8\u91CA
+doclet.Href_Enum_Title={0}\u4E2D\u7684\u679A\u4E3E
+doclet.Href_Type_Param_Title={0}\u4E2D\u7684\u7C7B\u578B\u53C2\u6570
+doclet.Href_Class_Or_Interface_Title={0}\u4E2D\u7684\u7C7B\u6216\u63A5\u53E3
+doclet.Summary=SUMMARY:
+doclet.Detail=DETAIL:
+doclet.navNested=NESTED
+doclet.navAnnotationTypeOptionalMember=OPTIONAL
+doclet.navAnnotationTypeRequiredMember=REQUIRED
+doclet.navAnnotationTypeMember=ELEMENT
+doclet.navField=FIELD
+doclet.navEnum=ENUM CONSTANTS
+doclet.navConstructor=CONSTR
+doclet.navMethod=METHOD
+doclet.navFactoryMethod=FACTORY
+doclet.Index=\u7D22\u5F15
+doclet.Window_Single_Index=\u7D22\u5F15
+doclet.Window_Split_Index={0} - \u7D22\u5F15
+doclet.Help=\u5E2E\u52A9
+doclet.Skip_navigation_links=\u8DF3\u8FC7\u5BFC\u822A\u94FE\u63A5
+doclet.None=\u65E0
+doclet.CLASSES=CLASSES
+doclet.MEMBERS=MEMBERS
+doclet.NONE=\u65E0
+doclet.Factory_Method_Detail=\u9759\u6001\u5DE5\u5382\u65B9\u6CD5\u8BE6\u7EC6\u8D44\u6599
+doclet.navDeprecated=\u5DF2\u8FC7\u65F6
+doclet.Deprecated_List=\u5DF2\u8FC7\u65F6\u7684\u5217\u8868
+doclet.Window_Deprecated_List=\u5DF2\u8FC7\u65F6\u7684\u5217\u8868
+doclet.Note_0_is_deprecated=\u6CE8: {0}\u5DF2\u8FC7\u65F6\u3002
+doclet.Overrides=\u8986\u76D6:
+doclet.in_class=\u7C7B{1}\u4E2D\u7684{0}
+doclet.0_Fields_and_Methods=&quot;{0}&quot; \u5B57\u6BB5\u548C\u65B9\u6CD5
+doclet.Index_of_Fields_and_Methods=\u5B57\u6BB5\u548C\u65B9\u6CD5\u7684\u7D22\u5F15
+doclet.Static_variable_in={0}\u4E2D\u7684\u9759\u6001\u53D8\u91CF
+doclet.Variable_in={0}\u4E2D\u7684\u53D8\u91CF
+doclet.Constructor_for={0}\u7684\u6784\u9020\u5668
+doclet.Static_method_in={0}\u4E2D\u7684\u9759\u6001\u65B9\u6CD5
+doclet.Method_in={0}\u4E2D\u7684\u65B9\u6CD5
+doclet.throws=\u629B\u51FA
+doclet.package=\u7A0B\u5E8F\u5305
+doclet.MalformedURL=\u683C\u5F0F\u9519\u8BEF\u7684 URL: {0}
+doclet.File_error=\u8BFB\u53D6\u6587\u4EF6\u65F6\u51FA\u9519: {0}
+doclet.URL_error=\u83B7\u53D6 URL \u65F6\u51FA\u9519: {0}
+doclet.No_Package_Comment_File=\u5BF9\u4E8E\u7A0B\u5E8F\u5305{0}, \u627E\u4E0D\u5230 Package.Comment \u6587\u4EF6
+doclet.No_Source_For_Class=\u7C7B{0}\u7684\u6E90\u4FE1\u606F\u4E0D\u53EF\u7528\u3002
+doclet.see.class_or_package_not_found=\u6807\u8BB0{0}: \u627E\u4E0D\u5230\u5F15\u7528: {1}
+doclet.see.class_or_package_not_accessible=\u6807\u8BB0{0}: \u65E0\u6CD5\u8BBF\u95EE\u5F15\u7528: {1}
+doclet.see.malformed_tag=\u6807\u8BB0{0}: \u683C\u5F0F\u9519\u8BEF: {1}
+doclet.Inherited_API_Summary=\u7EE7\u627F\u7684 API \u6982\u8981
+doclet.Deprecated_API=\u5DF2\u8FC7\u65F6\u7684 API
+doclet.Deprecated_Classes=\u5DF2\u8FC7\u65F6\u7684\u7C7B
+doclet.Deprecated_Enums=\u5DF2\u8FC7\u65F6\u7684\u679A\u4E3E
+doclet.Deprecated_Interfaces=\u5DF2\u8FC7\u65F6\u7684\u63A5\u53E3
+doclet.Deprecated_Exceptions=\u5DF2\u8FC7\u65F6\u7684\u5F02\u5E38\u9519\u8BEF
+doclet.Deprecated_Annotation_Types=\u5DF2\u8FC7\u65F6\u7684\u6CE8\u91CA\u7C7B\u578B
+doclet.Deprecated_Errors=\u5DF2\u8FC7\u65F6\u7684\u9519\u8BEF
+doclet.Deprecated_Fields=\u5DF2\u8FC7\u65F6\u7684\u5B57\u6BB5
+doclet.Deprecated_Constructors=\u5DF2\u8FC7\u65F6\u7684\u6784\u9020\u5668
+doclet.Deprecated_Methods=\u5DF2\u8FC7\u65F6\u7684\u65B9\u6CD5
+doclet.Deprecated_Enum_Constants=\u5DF2\u8FC7\u65F6\u7684\u679A\u4E3E\u5E38\u91CF
+doclet.Deprecated_Annotation_Type_Members=\u5DF2\u8FC7\u65F6\u7684\u6CE8\u91CA\u7C7B\u578B\u5143\u7D20
+doclet.deprecated_classes=\u5DF2\u8FC7\u65F6\u7684\u7C7B
+doclet.deprecated_enums=\u5DF2\u8FC7\u65F6\u7684\u679A\u4E3E
+doclet.deprecated_interfaces=\u5DF2\u8FC7\u65F6\u7684\u63A5\u53E3
+doclet.deprecated_exceptions=\u5DF2\u8FC7\u65F6\u7684\u5F02\u5E38\u9519\u8BEF
+doclet.deprecated_annotation_types=\u5DF2\u8FC7\u65F6\u7684\u6CE8\u91CA\u7C7B\u578B
+doclet.deprecated_errors=\u5DF2\u8FC7\u65F6\u7684\u9519\u8BEF
+doclet.deprecated_fields=\u5DF2\u8FC7\u65F6\u7684\u5B57\u6BB5
+doclet.deprecated_constructors=\u5DF2\u8FC7\u65F6\u7684\u6784\u9020\u5668
+doclet.deprecated_methods=\u5DF2\u8FC7\u65F6\u7684\u65B9\u6CD5
+doclet.deprecated_enum_constants=\u5DF2\u8FC7\u65F6\u7684\u679A\u4E3E\u5E38\u91CF
+doclet.deprecated_annotation_type_members=\u5DF2\u8FC7\u65F6\u7684\u6CE8\u91CA\u7C7B\u578B\u5143\u7D20
+doclet.Frame_Output=\u6846\u67B6\u8F93\u51FA
+doclet.Docs_generated_by_Javadoc=\u7531 Javadoc \u751F\u6210\u7684\u6587\u6863\u3002
+doclet.Generated_Docs_Untitled=\u751F\u6210\u7684\u6587\u6863 (\u65E0\u6807\u9898)
+doclet.Blank=\u7A7A\u767D
+doclet.Other_Packages=\u5176\u4ED6\u7A0B\u5E8F\u5305
+doclet.Package_Description=\u7A0B\u5E8F\u5305{0}\u7684\u8BF4\u660E
+doclet.Description=\u8BF4\u660E
+doclet.Specified_By=\u6307\u5B9A\u8005:
+doclet.in_interface=\u63A5\u53E3{1}\u4E2D\u7684{0}
+doclet.Subclasses=\u76F4\u63A5\u5DF2\u77E5\u5B50\u7C7B:
+doclet.Subinterfaces=\u6240\u6709\u5DF2\u77E5\u5B50\u63A5\u53E3:
+doclet.Implementing_Classes=\u6240\u6709\u5DF2\u77E5\u5B9E\u73B0\u7C7B:
+doclet.also=\u5E76
 doclet.Option=\u9009\u9879
 doclet.Or=\u6216
-doclet.Frames=\u6846\u67b6
-doclet.FRAMES=\u6846\u67b6
-doclet.NO_FRAMES=\u65e0\u6846\u67b6
-doclet.Package_Hierarchies=\u8f6f\u4ef6\u5305\u5206\u5c42\u7ed3\u6784\uff1a
-doclet.Hierarchy_For_Package=\u8f6f\u4ef6\u5305 {0} \u7684\u5206\u5c42\u7ed3\u6784
-doclet.Source_Code=\u6e90\u4ee3\u7801\uff1a
-doclet.Hierarchy_For_All_Packages=\u6240\u6709\u8f6f\u4ef6\u5305\u7684\u5206\u5c42\u7ed3\u6784
-doclet.Cannot_handle_no_packages=\u65e0\u6cd5\u5904\u7406\u6ca1\u6709\u8f6f\u4ef6\u5305\u7684\u60c5\u51b5\u3002
-doclet.Frame_Alert=\u6846\u67b6\u8b66\u62a5
-doclet.Overview-Member-Frame=\u6210\u5458\u6846\u67b6\u6982\u8ff0
-doclet.Frame_Warning_Message=\u8bf7\u4f7f\u7528\u6846\u67b6\u529f\u80fd\u67e5\u770b\u6b64\u6587\u6863\u3002\u5982\u679c\u770b\u5230\u6b64\u6d88\u606f\uff0c\u5219\u8868\u660e\u60a8\u4f7f\u7528\u7684\u662f\u4e0d\u652f\u6301\u6846\u67b6\u7684 Web \u5ba2\u6237\u673a\u3002
-doclet.Non_Frame_Version=\u975e\u6846\u67b6\u7248\u672c\u3002
-doclet.Frame_Version=\u6846\u67b6\u7248\u672c
-doclet.Link_To=\u94fe\u63a5\u5230
-doclet.Following_From_Class=\u4ee5\u4e0b\u5185\u5bb9\u662f\u4ece\u7c7b {0} \u590d\u5236\u7684
-doclet.Following_From_Interface=\u4ee5\u4e0b\u5185\u5bb9\u662f\u4ece\u63a5\u53e3 {0} \u590d\u5236\u7684
-doclet.Description_From_Interface=\u4ece\u63a5\u53e3 {0} \u590d\u5236\u7684\u63cf\u8ff0
-doclet.Description_From_Class=\u4ece\u7c7b {0} \u590d\u5236\u7684\u63cf\u8ff0
-doclet.Standard_doclet_invoked=\u5df2\u8c03\u7528\u7684\u6807\u51c6 doclet...
-doclet.No_Non_Deprecated_Classes_To_Document=\u627e\u4e0d\u5230\u53ef\u4ee5\u6587\u6863\u5316\u7684\u672a\u8fc7\u65f6\u7684\u7c7b\u3002
-doclet.Interfaces_Italic=\u63a5\u53e3\uff08\u659c\u4f53\uff09
-doclet.Enclosing_Class=\u5305\u5bb9\u7c7b\uff1a
-doclet.Enclosing_Interface=\u6b63\u5728\u5c01\u95ed\u63a5\u53e3\uff1a
-doclet.Help_title=API \u5e2e\u52a9
-doclet.Window_Help_title=API \u5e2e\u52a9
-doclet.Help_line_1=\u6b64 API \u6587\u6863\u7684\u7ec4\u7ec7\u65b9\u5f0f
-doclet.Help_line_2=\u6b64 API\uff08\u5e94\u7528\u7a0b\u5e8f\u7f16\u7a0b\u63a5\u53e3\uff09\u6587\u6863\u5305\u542b\u5bf9\u5e94\u4e8e\u5bfc\u822a\u680f\u4e2d\u7684\u9879\u76ee\u7684\u9875\u9762\uff0c\u5982\u4e0b\u6240\u8ff0\u3002
-doclet.Help_line_3={0} \u9875\u9762\u662f\u6b64 API \u6587\u6863\u7684\u9996\u9875\uff0c\u63d0\u4f9b\u4e86\u6240\u6709\u8f6f\u4ef6\u5305\u7684\u5217\u8868\u53ca\u5176\u6458\u8981\u3002\u6b64\u9875\u9762\u4e5f\u53ef\u80fd\u5305\u542b\u8fd9\u4e9b\u8f6f\u4ef6\u5305\u7684\u603b\u4f53\u63cf\u8ff0\u3002
-doclet.Help_line_4=\u6bcf\u4e2a\u8f6f\u4ef6\u5305\u90fd\u6709\u4e00\u4e2a\u9875\u9762\uff0c\u5176\u4e2d\u5305\u542b\u5b83\u7684\u7c7b\u548c\u63a5\u53e3\u7684\u5217\u8868\u53ca\u5176\u6458\u8981\u3002\u6b64\u9875\u9762\u53ef\u4ee5\u5305\u542b\u56db\u4e2a\u7c7b\u522b\uff1a
-doclet.Help_line_5=\u7c7b/\u63a5\u53e3
-doclet.Help_line_6=\u6bcf\u4e2a\u7c7b\u3001\u63a5\u53e3\u3001\u5d4c\u5957\u7c7b\u548c\u5d4c\u5957\u63a5\u53e3\u90fd\u6709\u5404\u81ea\u7684\u9875\u9762\u3002\u5176\u4e2d\u6bcf\u4e2a\u9875\u9762\u90fd\u7531\u4e09\u90e8\u5206\uff08\u7c7b/\u63a5\u53e3\u63cf\u8ff0\u3001\u6458\u8981\u8868\uff0c\u4ee5\u53ca\u8be6\u7ec6\u7684\u6210\u5458\u63cf\u8ff0\uff09\u7ec4\u6210\uff1a
-doclet.Help_line_7=\u7c7b\u7ee7\u627f\u56fe
-doclet.Help_line_8=\u76f4\u63a5\u5b50\u7c7b
-doclet.Help_line_9=\u6240\u6709\u5df2\u77e5\u5b50\u63a5\u53e3
-doclet.Help_line_10=\u6240\u6709\u5df2\u77e5\u5b9e\u73b0\u7c7b
-doclet.Help_line_11=\u7c7b/\u63a5\u53e3\u58f0\u660e
-doclet.Help_line_12=\u7c7b/\u63a5\u53e3\u63cf\u8ff0
-doclet.Help_line_13=\u6bcf\u4e2a\u6458\u8981\u6761\u76ee\u90fd\u5305\u542b\u8be5\u9879\u76ee\u7684\u8be6\u7ec6\u63cf\u8ff0\u7684\u7b2c\u4e00\u53e5\u3002\u6458\u8981\u6761\u76ee\u6309\u5b57\u6bcd\u987a\u5e8f\u6392\u5217\uff0c\u800c\u8be6\u7ec6\u63cf\u8ff0\u5219\u6309\u5176\u5728\u6e90\u4ee3\u7801\u4e2d\u51fa\u73b0\u7684\u987a\u5e8f\u6392\u5217\u3002\u8fd9\u6837\u4fdd\u6301\u4e86\u7a0b\u5e8f\u5458\u6240\u5efa\u7acb\u7684\u903b\u8f91\u5206\u7ec4\u3002
-doclet.Help_line_14=\u4f7f\u7528
-doclet.Help_line_15=\u6bcf\u4e2a\u5df2\u6587\u6863\u5316\u7684\u8f6f\u4ef6\u5305\u3001\u7c7b\u548c\u63a5\u53e3\u90fd\u6709\u5404\u81ea\u7684\u201c\u4f7f\u7528\u201d\u9875\u9762\u3002\u6b64\u9875\u9762\u4ecb\u7ecd\u4e86\u4f7f\u7528\u7ed9\u5b9a\u7c7b\u6216\u8f6f\u4ef6\u5305\u7684\u4efb\u4f55\u90e8\u5206\u7684\u8f6f\u4ef6\u5305\u3001\u7c7b\u3001\u65b9\u6cd5\u3001\u6784\u9020\u65b9\u6cd5\u548c\u5b57\u6bb5\u3002\u5bf9\u4e8e\u7ed9\u5b9a\u7684\u7c7b\u6216\u63a5\u53e3 A\uff0c\u5176\u201c\u4f7f\u7528\u201d\u9875\u9762\u5305\u542b A \u7684\u5b50\u7c7b\u3001\u58f0\u660e\u4e3a A \u7684\u5b57\u6bb5\u3001\u8fd4\u56de A \u7684\u65b9\u6cd5\uff0c\u4ee5\u53ca\u5e26\u6709\u7c7b\u578b\u4e3a A \u7684\u53c2\u6570\u7684\u65b9\u6cd5\u548c\u6784\u9020\u65b9\u6cd5\u3002\u8bbf\u95ee\u6b64\u9875\u9762\u7684\u65b9\u6cd5\u662f\uff1a\u9996\u5148\u8f6c\u81f3\u8f6f\u4ef6\u5305\u3001\u7c7b\u6216\u63a5\u53e3\uff0c\u7136\u540e\u5355\u51fb\u5bfc\u822a\u680f\u4e2d\u7684\u201c\u4f7f\u7528\u201d\u94fe\u63a5\u3002
-doclet.Help_line_16=\u6811\uff08\u7c7b\u5206\u5c42\u7ed3\u6784\uff09
-doclet.Help_line_17_with_tree_link=\u5bf9\u4e8e\u6240\u6709\u8f6f\u4ef6\u5305\uff0c\u6709\u4e00\u4e2a {0} \u9875\u9762\uff0c\u4ee5\u53ca\u6bcf\u4e2a\u8f6f\u4ef6\u5305\u7684\u5206\u5c42\u7ed3\u6784\u3002\u6bcf\u4e2a\u5206\u5c42\u7ed3\u6784\u9875\u9762\u90fd\u5305\u542b\u7c7b\u7684\u5217\u8868\u548c\u63a5\u53e3\u7684\u5217\u8868\u3002\u4ece <code>java.lang.Object</code> \u5f00\u59cb\uff0c\u6309\u7ee7\u627f\u7ed3\u6784\u5bf9\u7c7b\u8fdb\u884c\u6392\u5217\u3002\u63a5\u53e3\u4e0d\u4ece <code>java.lang.Object</code> \u7ee7\u627f\u3002
-doclet.Help_line_18=\u67e5\u770b\u201c\u6982\u8ff0\u201d\u9875\u9762\u65f6\uff0c\u5355\u51fb\u201c\u6811\u201d\u5c06\u663e\u793a\u6240\u6709\u8f6f\u4ef6\u5305\u7684\u5206\u5c42\u7ed3\u6784\u3002
-doclet.Help_line_19=\u67e5\u770b\u7279\u5b9a\u8f6f\u4ef6\u5305\u3001\u7c7b\u6216\u63a5\u53e3\u9875\u9762\u65f6\uff0c\u5355\u51fb\u201c\u6811\u201d\u5c06\u4ec5\u663e\u793a\u8be5\u8f6f\u4ef6\u5305\u7684\u5206\u5c42\u7ed3\u6784\u3002
-doclet.Help_line_20_with_deprecated_api_link={0} \u9875\u9762\u5217\u51fa\u4e86\u6240\u6709\u5df2\u8fc7\u65f6\u7684 API\u3002\u4e00\u822c\u7531\u4e8e\u8fdb\u884c\u4e86\u6539\u8fdb\u5e76\u4e14\u901a\u5e38\u63d0\u4f9b\u4e86\u66ff\u4ee3\u7684 API\uff0c\u6240\u4ee5\u5efa\u8bae\u4e0d\u8981\u4f7f\u7528\u5df2\u8fc7\u65f6\u7684 API\u3002\u5728\u5c06\u6765\u7684\u5b9e\u65bd\u8fc7\u7a0b\u4e2d\uff0c\u53ef\u80fd\u4f1a\u5220\u9664\u5df2\u8fc7\u65f6\u7684 API\u3002
-doclet.Help_line_21=\u7d22\u5f15
-doclet.Help_line_22={0} \u5305\u542b\u6309\u5b57\u6bcd\u987a\u5e8f\u6392\u5217\u7684\u6240\u6709\u7c7b\u3001\u63a5\u53e3\u3001\u6784\u9020\u65b9\u6cd5\u3001\u65b9\u6cd5\u548c\u5b57\u6bb5\u7684\u5217\u8868\u3002
-doclet.Help_line_23=\u4e0a\u4e00\u4e2a/\u4e0b\u4e00\u4e2a
-doclet.Help_line_24=\u8fd9\u4e9b\u94fe\u63a5\u4f7f\u60a8\u53ef\u4ee5\u8f6c\u81f3\u4e0b\u4e00\u4e2a\u6216\u4e0a\u4e00\u4e2a\u7c7b\u3001\u63a5\u53e3\u3001\u8f6f\u4ef6\u5305\u6216\u76f8\u5173\u9875\u9762\u3002
-doclet.Help_line_25=\u6846\u67b6/\u65e0\u6846\u67b6
-doclet.Help_line_26=\u8fd9\u4e9b\u94fe\u63a5\u7528\u4e8e\u663e\u793a\u548c\u9690\u85cf HTML \u6846\u67b6\u3002\u6240\u6709\u9875\u9762\u5747\u5177\u6709\u6709\u6846\u67b6\u548c\u65e0\u6846\u67b6\u4e24\u79cd\u663e\u793a\u65b9\u5f0f\u3002
-doclet.Help_line_27=\u6bcf\u4e2a\u53ef\u5e8f\u5217\u5316\u6216\u53ef\u5916\u90e8\u5316\u7684\u7c7b\u90fd\u6709\u5176\u5e8f\u5217\u5316\u5b57\u6bb5\u548c\u65b9\u6cd5\u7684\u63cf\u8ff0\u3002\u6b64\u4fe1\u606f\u5bf9\u91cd\u65b0\u5b9e\u73b0\u8005\u6709\u7528\uff0c\u800c\u5bf9\u4f7f\u7528 API \u7684\u5f00\u53d1\u8005\u5219\u6ca1\u6709\u4ec0\u4e48\u7528\u5904\u3002\u5c3d\u7ba1\u5bfc\u822a\u680f\u4e2d\u6ca1\u6709\u94fe\u63a5\uff0c\u4f46\u60a8\u53ef\u4ee5\u901a\u8fc7\u4e0b\u5217\u65b9\u5f0f\u83b7\u53d6\u6b64\u4fe1\u606f\uff1a\u8f6c\u81f3\u4efb\u4f55\u5e8f\u5217\u5316\u7c7b\uff0c\u7136\u540e\u5355\u51fb\u7c7b\u63cf\u8ff0\u7684\u201c\u53e6\u8bf7\u53c2\u89c1\u201d\u90e8\u5206\u4e2d\u7684\u201c\u5e8f\u5217\u5316\u8868\u683c\u201d\u3002
-doclet.Help_line_28=<a href="constant-values.html">\u5e38\u91cf\u5b57\u6bb5\u503c</a>\u9875\u9762\u5217\u51fa\u4e86\u9759\u6001\u6700\u7ec8\u5b57\u6bb5\u53ca\u5176\u503c\u3002
-doclet.Help_line_29=\u6b64\u5e2e\u52a9\u6587\u4ef6\u9002\u7528\u4e8e\u4f7f\u7528\u6807\u51c6 doclet \u751f\u6210\u7684 API \u6587\u6863\u3002
-doclet.Help_enum_line_1=\u6bcf\u4e2a\u679a\u4e3e\u90fd\u6709\u5404\u81ea\u7684\u9875\u9762\uff0c\u5176\u4e2d\u5305\u542b\u4ee5\u4e0b\u90e8\u5206\uff1a
-doclet.Help_enum_line_2=\u679a\u4e3e\u58f0\u660e
-doclet.Help_enum_line_3=\u679a\u4e3e\u63cf\u8ff0
-doclet.Help_annotation_type_line_1=\u6bcf\u4e2a\u6ce8\u91ca\u7c7b\u578b\u90fd\u6709\u5404\u81ea\u7684\u9875\u9762\uff0c\u5176\u4e2d\u5305\u542b\u4ee5\u4e0b\u90e8\u5206\uff1a
-doclet.Help_annotation_type_line_2=\u6ce8\u91ca\u7c7b\u578b\u58f0\u660e
-doclet.Help_annotation_type_line_3=\u6ce8\u91ca\u7c7b\u578b\u63cf\u8ff0
-doclet.The=The
-doclet.Style_line_1=Javadoc \u6837\u5f0f\u8868
-doclet.Style_line_2=\u5728\u6b64\u5904\u5b9a\u4e49\u989c\u8272\u3001\u5b57\u4f53\u548c\u5176\u4ed6\u6837\u5f0f\u5c5e\u6027\u4ee5\u8986\u76d6\u9ed8\u8ba4\u503c
-doclet.Style_line_3=\u9875\u9762\u80cc\u666f\u989c\u8272
+doclet.Frames=\u6846\u67B6
+doclet.FRAMES=FRAMES
+doclet.NO_FRAMES=NO FRAMES
+doclet.Package_Hierarchies=\u7A0B\u5E8F\u5305\u5206\u5C42\u7ED3\u6784:
+doclet.Hierarchy_For_Package=\u7A0B\u5E8F\u5305{0}\u7684\u5206\u5C42\u7ED3\u6784
+doclet.Source_Code=\u6E90\u4EE3\u7801:
+doclet.Hierarchy_For_All_Packages=\u6240\u6709\u7A0B\u5E8F\u5305\u7684\u5206\u5C42\u7ED3\u6784
+doclet.Cannot_handle_no_packages=\u65E0\u6CD5\u5904\u7406\u6CA1\u6709\u7A0B\u5E8F\u5305\u7684\u60C5\u51B5\u3002
+doclet.Frame_Alert=\u6846\u67B6\u9884\u8B66
+doclet.Overview-Member-Frame=\u6210\u5458\u6846\u67B6\u6982\u89C8
+doclet.Frame_Warning_Message=\u8BF7\u4F7F\u7528\u6846\u67B6\u529F\u80FD\u67E5\u770B\u6B64\u6587\u6863\u3002\u5982\u679C\u770B\u5230\u6B64\u6D88\u606F, \u5219\u8868\u660E\u60A8\u4F7F\u7528\u7684\u662F\u4E0D\u652F\u6301\u6846\u67B6\u7684 Web \u5BA2\u6237\u673A\u3002
+doclet.Non_Frame_Version=\u975E\u6846\u67B6\u7248\u672C\u3002
+doclet.Frame_Version=\u6846\u67B6\u7248\u672C
+doclet.Link_To=\u94FE\u63A5\u5230
+doclet.Following_From_Class=\u4EE5\u4E0B\u5185\u5BB9\u662F\u4ECE\u7C7B{0}\u590D\u5236\u7684
+doclet.Following_From_Interface=\u4EE5\u4E0B\u5185\u5BB9\u662F\u4ECE\u63A5\u53E3{0}\u590D\u5236\u7684
+doclet.Description_From_Interface=\u4ECE\u63A5\u53E3{0}\u590D\u5236\u7684\u8BF4\u660E
+doclet.Description_From_Class=\u4ECE\u7C7B{0}\u590D\u5236\u7684\u8BF4\u660E
+doclet.Standard_doclet_invoked=\u5DF2\u8C03\u7528\u7684\u6807\u51C6 doclet...
+doclet.No_Non_Deprecated_Classes_To_Document=\u627E\u4E0D\u5230\u53EF\u4EE5\u6587\u6863\u5316\u7684\u672A\u8FC7\u65F6\u7684\u7C7B\u3002
+doclet.Interfaces_Italic=\u63A5\u53E3 (\u659C\u4F53)
+doclet.Enclosing_Class=\u5C01\u95ED\u7C7B:
+doclet.Enclosing_Interface=\u5C01\u95ED\u63A5\u53E3:
+doclet.Help_title=API \u5E2E\u52A9
+doclet.Window_Help_title=API \u5E2E\u52A9
+doclet.Help_line_1=\u6B64 API \u6587\u6863\u7684\u7EC4\u7EC7\u65B9\u5F0F
+doclet.Help_line_2=\u6B64 API (\u5E94\u7528\u7A0B\u5E8F\u7F16\u7A0B\u63A5\u53E3) \u6587\u6863\u5305\u542B\u5BF9\u5E94\u4E8E\u5BFC\u822A\u680F\u4E2D\u7684\u9879\u76EE\u7684\u9875\u9762, \u5982\u4E0B\u6240\u8FF0\u3002
+doclet.Help_line_3={0} \u9875\u9762\u662F\u6B64 API \u6587\u6863\u7684\u9996\u9875, \u63D0\u4F9B\u4E86\u6240\u6709\u7A0B\u5E8F\u5305\u7684\u5217\u8868\u53CA\u5176\u6982\u8981\u3002\u6B64\u9875\u9762\u4E5F\u53EF\u80FD\u5305\u542B\u8FD9\u4E9B\u7A0B\u5E8F\u5305\u7684\u603B\u4F53\u8BF4\u660E\u3002
+doclet.Help_line_4=\u6BCF\u4E2A\u7A0B\u5E8F\u5305\u90FD\u6709\u4E00\u4E2A\u9875\u9762, \u5176\u4E2D\u5305\u542B\u5B83\u7684\u7C7B\u548C\u63A5\u53E3\u7684\u5217\u8868\u53CA\u5176\u6982\u8981\u3002\u6B64\u9875\u9762\u53EF\u4EE5\u5305\u542B\u56DB\u4E2A\u7C7B\u522B:
+doclet.Help_line_5=\u7C7B/\u63A5\u53E3
+doclet.Help_line_6=\u6BCF\u4E2A\u7C7B, \u63A5\u53E3, \u5D4C\u5957\u7C7B\u548C\u5D4C\u5957\u63A5\u53E3\u90FD\u6709\u5404\u81EA\u7684\u9875\u9762\u3002\u5176\u4E2D\u6BCF\u4E2A\u9875\u9762\u90FD\u7531\u4E09\u90E8\u5206 (\u7C7B/\u63A5\u53E3\u8BF4\u660E, \u6982\u8981\u8868, \u4EE5\u53CA\u8BE6\u7EC6\u7684\u6210\u5458\u8BF4\u660E) \u7EC4\u6210:
+doclet.Help_line_7=\u7C7B\u7EE7\u627F\u56FE
+doclet.Help_line_8=\u76F4\u63A5\u5B50\u7C7B
+doclet.Help_line_9=\u6240\u6709\u5DF2\u77E5\u5B50\u63A5\u53E3
+doclet.Help_line_10=\u6240\u6709\u5DF2\u77E5\u5B9E\u73B0\u7C7B
+doclet.Help_line_11=\u7C7B/\u63A5\u53E3\u58F0\u660E
+doclet.Help_line_12=\u7C7B/\u63A5\u53E3\u8BF4\u660E
+doclet.Help_line_13=\u6BCF\u4E2A\u6982\u8981\u6761\u76EE\u90FD\u5305\u542B\u8BE5\u9879\u76EE\u7684\u8BE6\u7EC6\u8BF4\u660E\u7684\u7B2C\u4E00\u53E5\u3002\u6982\u8981\u6761\u76EE\u6309\u5B57\u6BCD\u987A\u5E8F\u6392\u5217, \u800C\u8BE6\u7EC6\u8BF4\u660E\u5219\u6309\u5176\u5728\u6E90\u4EE3\u7801\u4E2D\u51FA\u73B0\u7684\u987A\u5E8F\u6392\u5217\u3002\u8FD9\u6837\u4FDD\u6301\u4E86\u7A0B\u5E8F\u5458\u6240\u5EFA\u7ACB\u7684\u903B\u8F91\u5206\u7EC4\u3002
+doclet.Help_line_14=\u4F7F\u7528
+doclet.Help_line_15=\u6BCF\u4E2A\u5DF2\u6587\u6863\u5316\u7684\u7A0B\u5E8F\u5305, \u7C7B\u548C\u63A5\u53E3\u90FD\u6709\u5404\u81EA\u7684\u201C\u4F7F\u7528\u201D\u9875\u9762\u3002\u6B64\u9875\u9762\u4ECB\u7ECD\u4E86\u4F7F\u7528\u7ED9\u5B9A\u7C7B\u6216\u7A0B\u5E8F\u5305\u7684\u4EFB\u4F55\u90E8\u5206\u7684\u7A0B\u5E8F\u5305, \u7C7B, \u65B9\u6CD5, \u6784\u9020\u5668\u548C\u5B57\u6BB5\u3002\u5BF9\u4E8E\u7ED9\u5B9A\u7684\u7C7B\u6216\u63A5\u53E3 A, \u5176\u201C\u4F7F\u7528\u201D\u9875\u9762\u5305\u542B A \u7684\u5B50\u7C7B, \u58F0\u660E\u4E3A A \u7684\u5B57\u6BB5, \u8FD4\u56DE A \u7684\u65B9\u6CD5, \u4EE5\u53CA\u5E26\u6709\u7C7B\u578B\u4E3A A \u7684\u53C2\u6570\u7684\u65B9\u6CD5\u548C\u6784\u9020\u5668\u3002\u8BBF\u95EE\u6B64\u9875\u9762\u7684\u65B9\u6CD5\u662F: \u9996\u5148\u8F6C\u81F3\u7A0B\u5E8F\u5305, \u7C7B\u6216\u63A5\u53E3, \u7136\u540E\u5355\u51FB\u5BFC\u822A\u680F\u4E2D\u7684 "\u4F7F\u7528" \u94FE\u63A5\u3002
+doclet.Help_line_16=\u6811 (\u7C7B\u5206\u5C42\u7ED3\u6784)
+doclet.Help_line_17_with_tree_link=\u5BF9\u4E8E\u6240\u6709\u7A0B\u5E8F\u5305, \u6709\u4E00\u4E2A {0} \u9875\u9762, \u4EE5\u53CA\u6BCF\u4E2A\u7A0B\u5E8F\u5305\u7684\u5206\u5C42\u7ED3\u6784\u3002\u6BCF\u4E2A\u5206\u5C42\u7ED3\u6784\u9875\u9762\u90FD\u5305\u542B\u7C7B\u7684\u5217\u8868\u548C\u63A5\u53E3\u7684\u5217\u8868\u3002\u4ECE <code>java.lang.Object</code> \u5F00\u59CB, \u6309\u7EE7\u627F\u7ED3\u6784\u5BF9\u7C7B\u8FDB\u884C\u6392\u5217\u3002\u63A5\u53E3\u4E0D\u4ECE <code>java.lang.Object</code> \u7EE7\u627F\u3002
+doclet.Help_line_18=\u67E5\u770B\u201C\u6982\u89C8\u201D\u9875\u9762\u65F6, \u5355\u51FB "\u6811" \u5C06\u663E\u793A\u6240\u6709\u7A0B\u5E8F\u5305\u7684\u5206\u5C42\u7ED3\u6784\u3002
+doclet.Help_line_19=\u67E5\u770B\u7279\u5B9A\u7A0B\u5E8F\u5305, \u7C7B\u6216\u63A5\u53E3\u9875\u9762\u65F6, \u5355\u51FB "\u6811" \u5C06\u4EC5\u663E\u793A\u8BE5\u7A0B\u5E8F\u5305\u7684\u5206\u5C42\u7ED3\u6784\u3002
+doclet.Help_line_20_with_deprecated_api_link={0} \u9875\u9762\u5217\u51FA\u4E86\u6240\u6709\u5DF2\u8FC7\u65F6\u7684 API\u3002\u4E00\u822C\u7531\u4E8E\u8FDB\u884C\u4E86\u6539\u8FDB\u5E76\u4E14\u901A\u5E38\u63D0\u4F9B\u4E86\u66FF\u4EE3\u7684 API, \u6240\u4EE5\u5EFA\u8BAE\u4E0D\u8981\u4F7F\u7528\u5DF2\u8FC7\u65F6\u7684 API\u3002\u5728\u5C06\u6765\u7684\u5B9E\u73B0\u8FC7\u7A0B\u4E2D, \u53EF\u80FD\u4F1A\u5220\u9664\u5DF2\u8FC7\u65F6\u7684 API\u3002
+doclet.Help_line_21=\u7D22\u5F15
+doclet.Help_line_22={0} \u5305\u542B\u6309\u5B57\u6BCD\u987A\u5E8F\u6392\u5217\u7684\u6240\u6709\u7C7B, \u63A5\u53E3, \u6784\u9020\u5668, \u65B9\u6CD5\u548C\u5B57\u6BB5\u7684\u5217\u8868\u3002
+doclet.Help_line_23=\u4E0A\u4E00\u4E2A/\u4E0B\u4E00\u4E2A
+doclet.Help_line_24=\u8FD9\u4E9B\u94FE\u63A5\u4F7F\u60A8\u53EF\u4EE5\u8F6C\u81F3\u4E0B\u4E00\u4E2A\u6216\u4E0A\u4E00\u4E2A\u7C7B, \u63A5\u53E3, \u7A0B\u5E8F\u5305\u6216\u76F8\u5173\u9875\u9762\u3002
+doclet.Help_line_25=\u6846\u67B6/\u65E0\u6846\u67B6
+doclet.Help_line_26=\u8FD9\u4E9B\u94FE\u63A5\u7528\u4E8E\u663E\u793A\u548C\u9690\u85CF HTML \u6846\u67B6\u3002\u6240\u6709\u9875\u9762\u5747\u5177\u6709\u6709\u6846\u67B6\u548C\u65E0\u6846\u67B6\u4E24\u79CD\u663E\u793A\u65B9\u5F0F\u3002
+doclet.Help_line_27=\u6BCF\u4E2A\u53EF\u5E8F\u5217\u5316\u6216\u53EF\u5916\u90E8\u5316\u7684\u7C7B\u90FD\u6709\u5176\u5E8F\u5217\u5316\u5B57\u6BB5\u548C\u65B9\u6CD5\u7684\u8BF4\u660E\u3002\u6B64\u4FE1\u606F\u5BF9\u91CD\u65B0\u5B9E\u73B0\u8005\u6709\u7528, \u800C\u5BF9\u4F7F\u7528 API \u7684\u5F00\u53D1\u8005\u5219\u6CA1\u6709\u4EC0\u4E48\u7528\u5904\u3002\u5C3D\u7BA1\u5BFC\u822A\u680F\u4E2D\u6CA1\u6709\u94FE\u63A5, \u4F46\u60A8\u53EF\u4EE5\u901A\u8FC7\u4E0B\u5217\u65B9\u5F0F\u83B7\u53D6\u6B64\u4FE1\u606F: \u8F6C\u81F3\u4EFB\u4F55\u5E8F\u5217\u5316\u7C7B, \u7136\u540E\u5355\u51FB\u7C7B\u8BF4\u660E\u7684 "\u53E6\u8BF7\u53C2\u9605" \u90E8\u5206\u4E2D\u7684 "\u5E8F\u5217\u5316\u8868\u683C"\u3002
+doclet.Help_line_28=<a href="constant-values.html">\u5E38\u91CF\u5B57\u6BB5\u503C</a>\u9875\u9762\u5217\u51FA\u4E86\u9759\u6001\u6700\u7EC8\u5B57\u6BB5\u53CA\u5176\u503C\u3002
+doclet.Help_line_29=\u6B64\u5E2E\u52A9\u6587\u4EF6\u9002\u7528\u4E8E\u4F7F\u7528\u6807\u51C6 doclet \u751F\u6210\u7684 API \u6587\u6863\u3002
+doclet.Help_enum_line_1=\u6BCF\u4E2A\u679A\u4E3E\u90FD\u6709\u5404\u81EA\u7684\u9875\u9762, \u5176\u4E2D\u5305\u542B\u4EE5\u4E0B\u90E8\u5206:
+doclet.Help_enum_line_2=\u679A\u4E3E\u58F0\u660E
+doclet.Help_enum_line_3=\u679A\u4E3E\u8BF4\u660E
+doclet.Help_annotation_type_line_1=\u6BCF\u4E2A\u6CE8\u91CA\u7C7B\u578B\u90FD\u6709\u5404\u81EA\u7684\u9875\u9762, \u5176\u4E2D\u5305\u542B\u4EE5\u4E0B\u90E8\u5206:
+doclet.Help_annotation_type_line_2=\u6CE8\u91CA\u7C7B\u578B\u58F0\u660E
+doclet.Help_annotation_type_line_3=\u6CE8\u91CA\u7C7B\u578B\u8BF4\u660E
+doclet.The=\u8BE5
+doclet.Style_line_1=Javadoc \u6837\u5F0F\u8868
+doclet.Style_line_2=\u5728\u6B64\u5904\u5B9A\u4E49\u989C\u8272, \u5B57\u4F53\u548C\u5176\u4ED6\u6837\u5F0F\u5C5E\u6027\u4EE5\u8986\u76D6\u9ED8\u8BA4\u503C
+doclet.Style_line_3=\u9875\u9762\u80CC\u666F\u989C\u8272
 doclet.Style_Headings=\u6807\u9898
-doclet.Style_line_4=\u8868\u683c\u989c\u8272
-doclet.Style_line_5=\u6df1\u7d2b\u8272
-doclet.Style_line_6=\u6de1\u7d2b\u8272
-doclet.Style_line_7=\u767d\u8272
-doclet.Style_line_8=\u5de6\u4fa7\u7684\u6846\u67b6\u5217\u8868\u4e2d\u4f7f\u7528\u7684\u5b57\u4f53
-doclet.Style_line_9=\u6846\u67b6\u4e2d\u5c0f\u53f7 sans-serif \u5b57\u4f53\u7684\u793a\u4f8b
-doclet.Style_line_10=\u5bfc\u822a\u680f\u5b57\u4f53\u548c\u989c\u8272
-doclet.Style_line_11=\u6df1\u84dd\u8272
-doclet.Style_line_12=\u8868\u683c\u6807\u9898\u6837\u5f0f
-doclet.ClassUse_Packages.that.use.0=\u4f7f\u7528 {0} \u7684\u8f6f\u4ef6\u5305
-doclet.ClassUse_Uses.of.0.in.1={1} \u4e2d {0} \u7684\u4f7f\u7528
-doclet.ClassUse_Classes.in.0.used.by.1={1} \u4f7f\u7528\u7684 {0} \u4e2d\u7684\u7c7b
-doclet.ClassUse_PackageAnnotation=\u6ce8\u91ca\u7c7b\u578b\u4e3a {0} \u7684\u8f6f\u4ef6\u5305
-doclet.ClassUse_Annotation=\u6ce8\u91ca\u7c7b\u578b\u4e3a {0} \u7684 {1} \u4e2d\u7684\u7c7b
-doclet.ClassUse_TypeParameter=\u7c7b\u578b\u53c2\u6570\u7c7b\u578b\u4e3a {0} \u7684 {1} \u4e2d\u7684\u7c7b
-doclet.ClassUse_MethodTypeParameter=\u7c7b\u578b\u53c2\u6570\u7c7b\u578b\u4e3a {0} \u7684 {1} \u4e2d\u7684\u65b9\u6cd5
-doclet.ClassUse_FieldTypeParameter=\u7c7b\u578b\u53c2\u6570\u7c7b\u578b\u4e3a {0} \u7684 {1} \u4e2d\u7684\u5b57\u6bb5
-doclet.ClassUse_FieldAnnotations=\u6ce8\u91ca\u7c7b\u578b\u4e3a {0} \u7684 {1} \u4e2d\u7684\u5b57\u6bb5
-doclet.ClassUse_MethodAnnotations=\u6ce8\u91ca\u7c7b\u578b\u4e3a {0} \u7684 {1} \u4e2d\u7684\u65b9\u6cd5
-doclet.ClassUse_MethodParameterAnnotations=\u6ce8\u91ca\u7c7b\u578b\u4e3a {0} \u7684 {1} \u4e2d\u7684\u65b9\u6cd5\u53c2\u6570
-doclet.ClassUse_MethodReturnTypeParameter=\u8fd4\u56de\u53d8\u91cf\u7c7b\u578b\u4e3a {0} \u7684\u7c7b\u578b\u7684 {1} \u4e2d\u7684\u65b9\u6cd5
-doclet.ClassUse_Subclass={1} \u4e2d {0} \u7684\u5b50\u7c7b
-doclet.ClassUse_Subinterface={1} \u4e2d {0} \u7684\u5b50\u63a5\u53e3
-doclet.ClassUse_ImplementingClass=\u5b9e\u73b0 {0} \u7684 {1} \u4e2d\u7684\u7c7b
-doclet.ClassUse_Field=\u58f0\u660e\u4e3a {0} \u7684 {1} \u4e2d\u7684\u5b57\u6bb5
-doclet.ClassUse_MethodReturn=\u8fd4\u56de {0} \u7684 {1} \u4e2d\u7684\u65b9\u6cd5
-doclet.ClassUse_MethodArgs=\u53c2\u6570\u7c7b\u578b\u4e3a {0} \u7684 {1} \u4e2d\u7684\u65b9\u6cd5
-doclet.ClassUse_MethodArgsTypeParameters=\u7c7b\u578b\u53d8\u91cf\u7c7b\u578b\u4e3a {0} \u7684 {1} \u4e2d\u7684\u65b9\u6cd5\u53c2\u6570
-doclet.ClassUse_MethodThrows=\u629b\u51fa {0} \u7684 {1} \u4e2d\u7684\u65b9\u6cd5
-doclet.ClassUse_ConstructorAnnotations=\u6ce8\u91ca\u7c7b\u578b\u4e3a {0} \u7684 {1} \u4e2d\u7684\u6784\u9020\u65b9\u6cd5
-doclet.ClassUse_ConstructorParameterAnnotations=\u6ce8\u91ca\u7c7b\u578b\u4e3a {0} \u7684 {1} \u4e2d\u7684\u6784\u9020\u65b9\u6cd5\u53c2\u6570
-doclet.ClassUse_ConstructorArgs=\u53c2\u6570\u7c7b\u578b\u4e3a {0} \u7684 {1} \u4e2d\u7684\u6784\u9020\u65b9\u6cd5
-doclet.ClassUse_ConstructorArgsTypeParameters=\u7c7b\u578b\u53d8\u91cf\u7c7b\u578b\u4e3a {0} \u7684 {1} \u4e2d\u7684\u6784\u9020\u65b9\u6cd5\u53c2\u6570
-doclet.ClassUse_ConstructorThrows=\u629b\u51fa {0} \u7684 {1} \u4e2d\u7684\u6784\u9020\u65b9\u6cd5
-doclet.ClassUse_No.usage.of.0=\u6ca1\u6709 {0} \u7684\u7528\u6cd5
-doclet.Window_ClassUse_Header={0} {1} \u7684\u4f7f\u7528
-doclet.ClassUse_Title={0} {1}<br>\u7684\u4f7f\u7528
-doclet.navClassUse=\u4f7f\u7528
-doclet.link_option_twice=\u5916\u90e8 URL \u94fe\u63a5\u9009\u9879\uff08link \u6216 linkoffline\uff09\u4f7f\u7528\u4e86\u4e24\u6b21\u3002
-doclet.Error_in_packagelist=\u4f7f\u7528 -group \u9009\u9879\u65f6\u51fa\u9519\uff1a {0} {1}
-doclet.Groupname_already_used=\u5728 -group \u9009\u9879\u4e2d\uff0cgroupname \u5df2\u4f7f\u7528\uff1a {0}
-doclet.Same_package_name_used=\u8f6f\u4ef6\u5305\u540d\u79f0\u5f62\u5f0f\u4f7f\u7528\u4e86\u4e24\u6b21\uff1a {0}
-doclet.Serialization.Excluded_Class=\u975e\u77ac\u6001\u5b57\u6bb5 {1} \u4f7f\u7528\u4e86\u6392\u9664\u7684\u7c7b {0}\u3002
-doclet.Serialization.Nonexcluded_Class=\u975e\u77ac\u6001\u5b57\u6bb5 {1} \u4f7f\u7528\u4e86\u9690\u85cf\u7684\u3001\u672a\u5305\u542b\u7684\u7c7b {0}\u3002
-doclet.usage=\u901a\u8fc7\u6807\u51c6 doclet \u63d0\u4f9b:\n-d <directory>                    \u8f93\u51fa\u6587\u4ef6\u7684\u76ee\u6807\u76ee\u5f55\n-use                              \u521b\u5efa\u7c7b\u548c\u5305\u7528\u6cd5\u9875\u9762\n-version                          \u5305\u542b @version \u6bb5\n-author                           \u5305\u542b @author \u6bb5\n-docfilessubdirs                  \u9012\u5f52\u590d\u5236\u6587\u6863\u6587\u4ef6\u5b50\u76ee\u5f55\n-splitindex                       \u5c06\u7d22\u5f15\u5206\u4e3a\u6bcf\u4e2a\u5b57\u6bcd\u5bf9\u5e94\u4e00\u4e2a\u6587\u4ef6\n-windowtitle <text>               \u6587\u6863\u7684\u6d4f\u89c8\u5668\u7a97\u53e3\u6807\u9898\n-doctitle <html-code>             \u5305\u542b\u6982\u8ff0\u9875\u9762\u7684\u6807\u9898\n-header <html-code>               \u5305\u542b\u6bcf\u4e2a\u9875\u9762\u7684\u9875\u7709\u6587\u672c\n-footer <html-code>               \u5305\u542b\u6bcf\u4e2a\u9875\u9762\u7684\u9875\u811a\u6587\u672c\n-top    <html-code>               \u5305\u542b\u6bcf\u4e2a\u9875\u9762\u7684\u9876\u90e8\u6587\u672c\n-bottom <html-code>               \u5305\u542b\u6bcf\u4e2a\u9875\u9762\u7684\u5e95\u90e8\u6587\u672c\n-link <url>                       \u521b\u5efa\u6307\u5411\u4f4d\u4e8e <url> \u7684 javadoc \u8f93\u51fa\u7684\u94fe\u63a5\n-linkoffline <url> <url2>         \u5229\u7528\u4f4d\u4e8e <url2> \u7684\u5305\u5217\u8868\u94fe\u63a5\u81f3\u4f4d\u4e8e <url> \u7684\u6587\u6863\n-excludedocfilessubdir <name1>:..\u6392\u9664\u5177\u6709\u7ed9\u5b9a\u540d\u79f0\u7684\u6240\u6709\u6587\u6863\u6587\u4ef6\u5b50\u76ee\u5f55\u3002\n-group <name> <p1>:<p2>..\u5728\u6982\u8ff0\u9875\u9762\u4e2d\uff0c\u5c06\u6307\u5b9a\u7684\u5305\u5206\u7ec4\n-nocomment                        \u4e0d\u751f\u6210\u63cf\u8ff0\u548c\u6807\u8bb0\uff0c\u53ea\u751f\u6210\u58f0\u660e\u3002\n-nodeprecated                     \u4e0d\u5305\u542b @deprecated \u4fe1\u606f\n-noqualifier <name1>:<name2>:...\u8f93\u51fa\u4e2d\u4e0d\u5305\u62ec\u6307\u5b9a\u9650\u5b9a\u7b26\u7684\u5217\u8868\u3002\n-nosince                          \u4e0d\u5305\u542b @since \u4fe1\u606f\n-notimestamp                      \u4e0d\u5305\u542b\u9690\u85cf\u65f6\u95f4\u6233\n-nodeprecatedlist                 \u4e0d\u751f\u6210\u5df2\u8fc7\u65f6\u7684\u5217\u8868\n-notree                           \u4e0d\u751f\u6210\u7c7b\u5206\u5c42\u7ed3\u6784\n-noindex                          \u4e0d\u751f\u6210\u7d22\u5f15\n-nohelp                           \u4e0d\u751f\u6210\u5e2e\u52a9\u94fe\u63a5\n-nonavbar                         \u4e0d\u751f\u6210\u5bfc\u822a\u680f\n-serialwarn                       \u751f\u6210\u6709\u5173 @serial \u6807\u8bb0\u7684\u8b66\u544a\n-tag <name>:<locations>:<header>  \u6307\u5b9a\u5355\u4e2a\u53c2\u6570\u81ea\u5b9a\u4e49\u6807\u8bb0\n-taglet                           \u8981\u6ce8\u518c\u7684 Taglet \u7684\u5168\u9650\u5b9a\u540d\u79f0\n-tagletpath                       Taglet \u7684\u8def\u5f84\n-charset <charset>                \u7528\u4e8e\u8de8\u5e73\u53f0\u67e5\u770b\u751f\u6210\u7684\u6587\u6863\u7684\u5b57\u7b26\u96c6\u3002\n-helpfile <\u6587\u4ef6>                  \u5305\u542b\u5e2e\u52a9\u94fe\u63a5\u6240\u94fe\u63a5\u5230\u7684\u6587\u4ef6\n-linksource                       \u4ee5 HTML \u683c\u5f0f\u751f\u6210\u6e90\u6587\u4ef6\n-sourcetab <tab length>           \u6307\u5b9a\u6e90\u4e2d\u6bcf\u4e2a\u5236\u8868\u7b26\u5360\u636e\u7684\u7a7a\u683c\u6570\n-keywords                         \u4f7f\u5305\u3001\u7c7b\u548c\u6210\u5458\u4fe1\u606f\u9644\u5e26 HTML \u5143\u6807\u8bb0\n-stylesheetfile <\u8def\u5f84>            \u7528\u4e8e\u66f4\u6539\u751f\u6210\u6587\u6863\u7684\u6837\u5f0f\u7684\u6587\u4ef6\n-docencoding <\u540d\u79f0>               \u8f93\u51fa\u7f16\u7801\u540d\u79f0
+doclet.Style_line_4=\u8868\u683C\u989C\u8272
+doclet.Style_line_5=\u6DF1\u7D2B\u8272
+doclet.Style_line_6=\u6DE1\u7D2B\u8272
+doclet.Style_line_7=\u767D\u8272
+doclet.Style_line_8=\u5DE6\u4FA7\u7684\u6846\u67B6\u5217\u8868\u4E2D\u4F7F\u7528\u7684\u5B57\u4F53
+doclet.Style_line_9=\u6846\u67B6\u4E2D\u5C0F\u53F7 sans-serif \u5B57\u4F53\u7684\u793A\u4F8B
+doclet.Style_line_10=\u5BFC\u822A\u680F\u5B57\u4F53\u548C\u989C\u8272
+doclet.Style_line_11=\u6DF1\u84DD\u8272
+doclet.Style_line_12=\u8868\u6807\u9898\u6837\u5F0F
+doclet.ClassUse_Packages.that.use.0=\u4F7F\u7528{0}\u7684\u7A0B\u5E8F\u5305
+doclet.ClassUse_Uses.of.0.in.1={1}\u4E2D{0}\u7684\u4F7F\u7528
+doclet.ClassUse_Classes.in.0.used.by.1={1}\u4F7F\u7528\u7684{0}\u4E2D\u7684\u7C7B
+doclet.ClassUse_PackageAnnotation=\u6CE8\u91CA\u7C7B\u578B\u4E3A{0}\u7684\u7A0B\u5E8F\u5305
+doclet.ClassUse_Annotation=\u6CE8\u91CA\u7C7B\u578B\u4E3A{0}\u7684{1}\u4E2D\u7684\u7C7B
+doclet.ClassUse_TypeParameter=\u7C7B\u578B\u53C2\u6570\u7C7B\u578B\u4E3A{0}\u7684{1}\u4E2D\u7684\u7C7B
+doclet.ClassUse_MethodTypeParameter=\u7C7B\u578B\u53C2\u6570\u7C7B\u578B\u4E3A{0}\u7684{1}\u4E2D\u7684\u65B9\u6CD5
+doclet.ClassUse_FieldTypeParameter=\u7C7B\u578B\u53C2\u6570\u7C7B\u578B\u4E3A{0}\u7684{1}\u4E2D\u7684\u5B57\u6BB5
+doclet.ClassUse_FieldAnnotations=\u6CE8\u91CA\u7C7B\u578B\u4E3A{0}\u7684{1}\u4E2D\u7684\u5B57\u6BB5
+doclet.ClassUse_MethodAnnotations=\u6CE8\u91CA\u7C7B\u578B\u4E3A{0}\u7684{1}\u4E2D\u7684\u65B9\u6CD5
+doclet.ClassUse_MethodParameterAnnotations=\u6CE8\u91CA\u7C7B\u578B\u4E3A{0}\u7684{1}\u4E2D\u7684\u65B9\u6CD5\u53C2\u6570
+doclet.ClassUse_MethodReturnTypeParameter=\u8FD4\u56DE\u53D8\u91CF\u7C7B\u578B\u4E3A{0}\u7684\u7C7B\u578B\u7684{1}\u4E2D\u7684\u65B9\u6CD5
+doclet.ClassUse_Subclass={1}\u4E2D{0}\u7684\u5B50\u7C7B
+doclet.ClassUse_Subinterface={1}\u4E2D{0}\u7684\u5B50\u63A5\u53E3
+doclet.ClassUse_ImplementingClass=\u5B9E\u73B0{0}\u7684{1}\u4E2D\u7684\u7C7B
+doclet.ClassUse_Field=\u58F0\u660E\u4E3A{0}\u7684{1}\u4E2D\u7684\u5B57\u6BB5
+doclet.ClassUse_MethodReturn=\u8FD4\u56DE{0}\u7684{1}\u4E2D\u7684\u65B9\u6CD5
+doclet.ClassUse_MethodArgs=\u53C2\u6570\u7C7B\u578B\u4E3A{0}\u7684{1}\u4E2D\u7684\u65B9\u6CD5
+doclet.ClassUse_MethodArgsTypeParameters=\u7C7B\u578B\u53D8\u91CF\u7C7B\u578B\u4E3A{0}\u7684{1}\u4E2D\u7684\u65B9\u6CD5\u53C2\u6570
+doclet.ClassUse_MethodThrows=\u629B\u51FA{0}\u7684{1}\u4E2D\u7684\u65B9\u6CD5
+doclet.ClassUse_ConstructorAnnotations=\u6CE8\u91CA\u7C7B\u578B\u4E3A{0}\u7684{1}\u4E2D\u7684\u6784\u9020\u5668
+doclet.ClassUse_ConstructorParameterAnnotations=\u6CE8\u91CA\u7C7B\u578B\u4E3A{0}\u7684{1}\u4E2D\u7684\u6784\u9020\u5668\u53C2\u6570
+doclet.ClassUse_ConstructorArgs=\u53C2\u6570\u7C7B\u578B\u4E3A{0}\u7684{1}\u4E2D\u7684\u6784\u9020\u5668
+doclet.ClassUse_ConstructorArgsTypeParameters=\u7C7B\u578B\u53D8\u91CF\u7C7B\u578B\u4E3A{0}\u7684{1}\u4E2D\u7684\u6784\u9020\u5668\u53C2\u6570
+doclet.ClassUse_ConstructorThrows=\u629B\u51FA{0}\u7684{1}\u4E2D\u7684\u6784\u9020\u5668
+doclet.ClassUse_No.usage.of.0=\u6CA1\u6709{0}\u7684\u7528\u6CD5
+doclet.Window_ClassUse_Header={0} {1}\u7684\u4F7F\u7528
+doclet.ClassUse_Title={0} {1}<br>\u7684\u4F7F\u7528
+doclet.navClassUse=\u4F7F\u7528
+doclet.link_option_twice=\u5916\u90E8 URL \u94FE\u63A5\u9009\u9879 (link \u6216 linkoffline) \u4F7F\u7528\u4E86\u4E24\u6B21\u3002
+doclet.Error_in_packagelist=\u4F7F\u7528 -group \u9009\u9879\u65F6\u51FA\u9519: {0} {1}
+doclet.Groupname_already_used=\u5728 -group \u9009\u9879\u4E2D, groupname \u5DF2\u4F7F\u7528: {0}
+doclet.Same_package_name_used=\u7A0B\u5E8F\u5305\u540D\u79F0\u5F62\u5F0F\u4F7F\u7528\u4E86\u4E24\u6B21: {0}
+doclet.Serialization.Excluded_Class=\u975E\u77AC\u6001\u5B57\u6BB5{1}\u4F7F\u7528\u4E86\u6392\u9664\u7684\u7C7B{0}\u3002
+doclet.Serialization.Nonexcluded_Class=\u975E\u77AC\u6001\u5B57\u6BB5{1}\u4F7F\u7528\u4E86\u9690\u85CF\u7684, \u672A\u5305\u542B\u7684\u7C7B{0}\u3002
+doclet.usage=\u901A\u8FC7\u6807\u51C6 doclet \u63D0\u4F9B:\n-d <directory>                    \u8F93\u51FA\u6587\u4EF6\u7684\u76EE\u6807\u76EE\u5F55\n-use                              \u521B\u5EFA\u7C7B\u548C\u7A0B\u5E8F\u5305\u7528\u6CD5\u9875\u9762\n-version                          \u5305\u542B @version \u6BB5\n-author                           \u5305\u542B @author \u6BB5\n-docfilessubdirs                  \u9012\u5F52\u590D\u5236\u6587\u6863\u6587\u4EF6\u5B50\u76EE\u5F55\n-splitindex                       \u5C06\u7D22\u5F15\u5206\u4E3A\u6BCF\u4E2A\u5B57\u6BCD\u5BF9\u5E94\u4E00\u4E2A\u6587\u4EF6\n-windowtitle <text>               \u6587\u6863\u7684\u6D4F\u89C8\u5668\u7A97\u53E3\u6807\u9898\n-doctitle <html-code>             \u5305\u542B\u6982\u89C8\u9875\u9762\u7684\u6807\u9898\n-header <html-code>               \u5305\u542B\u6BCF\u4E2A\u9875\u9762\u7684\u9875\u7709\u6587\u672C\n-footer <html-code>               \u5305\u542B\u6BCF\u4E2A\u9875\u9762\u7684\u9875\u811A\u6587\u672C\n-top    <html-code>               \u5305\u542B\u6BCF\u4E2A\u9875\u9762\u7684\u9876\u90E8\u6587\u672C\n-bottom <html-code>               \u5305\u542B\u6BCF\u4E2A\u9875\u9762\u7684\u5E95\u90E8\u6587\u672C\n-link <url>                       \u521B\u5EFA\u6307\u5411\u4F4D\u4E8E <url> \u7684 javadoc \u8F93\u51FA\u7684\u94FE\u63A5\n-linkoffline <url> <url2>         \u5229\u7528\u4F4D\u4E8E <url2> \u7684\u7A0B\u5E8F\u5305\u5217\u8868\u94FE\u63A5\u81F3\u4F4D\u4E8E <url> \u7684\u6587\u6863\n-excludedocfilessubdir <name1>:..\u6392\u9664\u5177\u6709\u7ED9\u5B9A\u540D\u79F0\u7684\u6240\u6709\u6587\u6863\u6587\u4EF6\u5B50\u76EE\u5F55\u3002\n-group <name> <p1>:<p2>..\u5728\u6982\u89C8\u9875\u9762\u4E2D, \u5C06\u6307\u5B9A\u7684\u7A0B\u5E8F\u5305\u5206\u7EC4\n-nocomment                        \u4E0D\u751F\u6210\u8BF4\u660E\u548C\u6807\u8BB0, \u53EA\u751F\u6210\u58F0\u660E\u3002\n-nodeprecated                     \u4E0D\u5305\u542B @deprecated \u4FE1\u606F\n-noqualifier <name1>:<name2>:...\u8F93\u51FA\u4E2D\u4E0D\u5305\u62EC\u6307\u5B9A\u9650\u5B9A\u7B26\u7684\u5217\u8868\u3002\n-nosince                          \u4E0D\u5305\u542B @since \u4FE1\u606F\n-notimestamp                      \u4E0D\u5305\u542B\u9690\u85CF\u65F6\u95F4\u6233\n-nodeprecatedlist                 \u4E0D\u751F\u6210\u5DF2\u8FC7\u65F6\u7684\u5217\u8868\n-notree                           \u4E0D\u751F\u6210\u7C7B\u5206\u5C42\u7ED3\u6784\n-noindex                          \u4E0D\u751F\u6210\u7D22\u5F15\n-nohelp                           \u4E0D\u751F\u6210\u5E2E\u52A9\u94FE\u63A5\n-nonavbar                         \u4E0D\u751F\u6210\u5BFC\u822A\u680F\n-serialwarn                       \u751F\u6210\u6709\u5173 @serial \u6807\u8BB0\u7684\u8B66\u544A\n-tag <name>:<locations>:<header>  \u6307\u5B9A\u5355\u4E2A\u53C2\u6570\u5B9A\u5236\u6807\u8BB0\n-taglet                           \u8981\u6CE8\u518C\u7684 Taglet \u7684\u5168\u9650\u5B9A\u540D\u79F0\n-tagletpath                       Taglet \u7684\u8DEF\u5F84\n-charset <charset>                \u7528\u4E8E\u8DE8\u5E73\u53F0\u67E5\u770B\u751F\u6210\u7684\u6587\u6863\u7684\u5B57\u7B26\u96C6\u3002\n-helpfile <file>                  \u5305\u542B\u5E2E\u52A9\u94FE\u63A5\u6240\u94FE\u63A5\u5230\u7684\u6587\u4EF6\n-linksource                       \u4EE5 HTML \u683C\u5F0F\u751F\u6210\u6E90\u6587\u4EF6\n-sourcetab <tab length>           \u6307\u5B9A\u6E90\u4E2D\u6BCF\u4E2A\u5236\u8868\u7B26\u5360\u636E\u7684\u7A7A\u683C\u6570\n-keywords                         \u4F7F\u7A0B\u5E8F\u5305, \u7C7B\u548C\u6210\u5458\u4FE1\u606F\u9644\u5E26 HTML \u5143\u6807\u8BB0\n-stylesheetfile <path>            \u7528\u4E8E\u66F4\u6539\u751F\u6210\u6587\u6863\u7684\u6837\u5F0F\u7684\u6587\u4EF6\n-docencoding <name>               \u8F93\u51FA\u7F16\u7801\u540D\u79F0
 
 
 
--- a/src/share/classes/com/sun/tools/doclets/internal/toolkit/Content.java	Wed Feb 23 16:39:34 2011 -0500
+++ b/src/share/classes/com/sun/tools/doclets/internal/toolkit/Content.java	Thu Mar 10 18:42:31 2011 -0500
@@ -99,8 +99,24 @@
      * @param contentBuilder content to test for newline character at the end
      * @return true if the content ends with newline.
      */
-    public boolean endsWithNewLine(StringBuilder contentBuilder) {
-        return ((contentBuilder.length() == 0) ||
-                (contentBuilder.toString().endsWith(DocletConstants.NL)));
+    protected boolean endsWithNewLine(StringBuilder contentBuilder) {
+        int contentLength = contentBuilder.length();
+        if (contentLength == 0) {
+            return true;
+        }
+        int nlLength = DocletConstants.NL.length();
+        if (contentLength < nlLength) {
+            return false;
+        }
+        int contentIndex = contentLength - 1;
+        int nlIndex = nlLength - 1;
+        while (nlIndex >= 0) {
+            if (contentBuilder.charAt(contentIndex) != DocletConstants.NL.charAt(nlIndex)) {
+                return false;
+            }
+            contentIndex--;
+            nlIndex--;
+        }
+        return true;
     }
 }
--- a/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclets_ja.properties	Wed Feb 23 16:39:34 2011 -0500
+++ b/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclets_ja.properties	Thu Mar 10 18:42:31 2011 -0500
@@ -1,163 +1,163 @@
-doclet.Generating_0={0} \u306e\u751f\u6210
-doclet.Toolkit_Usage_Violation=\u30c9\u30c3\u30af\u30ec\u30c3\u30c8\u30c4\u30fc\u30eb\u30ad\u30c3\u30c8\u306f {0} \u306b\u3088\u3063\u3066\u306e\u307f\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002
-doclet.MissingSerialTag=\u30af\u30e9\u30b9 {0} \u306e\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u76f4\u5217\u5316\u53ef\u80fd\u30d5\u30a3\u30fc\u30eb\u30c9 {1} \u306e\u305f\u3081\u306e @serial \u30bf\u30b0\u304c\u3042\u308a\u307e\u305b\u3093\u3002
-doclet.MissingSerialDataTag=\u30af\u30e9\u30b9 {0} \u306e\u30e1\u30bd\u30c3\u30c9 {1} \u306b @serialData \u30bf\u30b0\u304c\u3042\u308a\u307e\u305b\u3093\u3002
-doclet.Serializable_no_customization=readObject \u307e\u305f\u306f writeObject \u30e1\u30bd\u30c3\u30c9\u304c\u5ba3\u8a00\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002
-doclet.Serialized_Form=\u76f4\u5217\u5316\u3055\u308c\u305f\u5f62\u5f0f
-doclet.Serialized_Form_methods=\u76f4\u5217\u5316\u30e1\u30bd\u30c3\u30c9
-doclet.Serialized_Form_fields=\u76f4\u5217\u5316\u3055\u308c\u305f\u30d5\u30a3\u30fc\u30eb\u30c9
-doclet.Serialized_Form_class=\u76f4\u5217\u5316\u306e\u6982\u8981
+doclet.Generating_0={0}\u306E\u751F\u6210\u4E2D...
+doclet.Toolkit_Usage_Violation=\u30C9\u30C3\u30AF\u30EC\u30C3\u30C8\u30FB\u30C4\u30FC\u30EB\u30FB\u30AD\u30C3\u30C8\u306F{0}\u306B\u3088\u3063\u3066\u306E\u307F\u4F7F\u7528\u3055\u308C\u307E\u3059
+doclet.MissingSerialTag=\u30AF\u30E9\u30B9{0}\u306E\u30C7\u30D5\u30A9\u30EB\u30C8\u306E\u76F4\u5217\u5316\u53EF\u80FD\u30D5\u30A3\u30FC\u30EB\u30C9{1}\u306E\u305F\u3081\u306E@serial\u30BF\u30B0\u304C\u3042\u308A\u307E\u305B\u3093\u3002
+doclet.MissingSerialDataTag=\u30AF\u30E9\u30B9{0}\u306E\u30E1\u30BD\u30C3\u30C9{1}\u306B@serialData\u30BF\u30B0\u304C\u3042\u308A\u307E\u305B\u3093\u3002
+doclet.Serializable_no_customization=readObject\u307E\u305F\u306FwriteObject\u30E1\u30BD\u30C3\u30C9\u304C\u5BA3\u8A00\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002
+doclet.Serialized_Form=\u76F4\u5217\u5316\u3055\u308C\u305F\u5F62\u5F0F
+doclet.Serialized_Form_methods=\u76F4\u5217\u5316\u30E1\u30BD\u30C3\u30C9
+doclet.Serialized_Form_fields=\u76F4\u5217\u5316\u3055\u308C\u305F\u30D5\u30A3\u30FC\u30EB\u30C9
+doclet.Serialized_Form_class=\u76F4\u5217\u5316\u306E\u6982\u8981
 doclet.Class_0_implements_serializable=Class {0} implements Serializable
 doclet.Class_0_extends_implements_serializable=Class {0} extends {1} implements Serializable
-doclet.Option_conflict=\u30aa\u30d7\u30b7\u30e7\u30f3 {0} \u304c {1} \u3068\u77db\u76fe\u3057\u307e\u3059
-doclet.Option_reuse=\u30aa\u30d7\u30b7\u30e7\u30f3\u304c\u518d\u4f7f\u7528\u3055\u308c\u3066\u3044\u307e\u3059: {0}
-doclet.exception_encountered= {0} \u3092\u691c\u51fa \n\t\u30d5\u30a1\u30a4\u30eb\u306e\u4f5c\u6210\u4e2d: {1}
-doclet.perform_copy_exception_encountered= \u30b3\u30d4\u30fc\u5b9f\u884c\u4e2d\u306b {0} \u3092 \n\u691c\u51fa\u3057\u307e\u3057\u305f\u3002
-doclet.File_not_found=\u30d5\u30a1\u30a4\u30eb\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093: {0}
-doclet.Copy_Overwrite_warning=\u30d5\u30a1\u30a4\u30eb {0} \u306f\u540c\u3058\u540d\u524d\u306e\u30d5\u30a1\u30a4\u30eb\u304c\u3042\u308b\u306e\u3067 {1} \u306b\u30b3\u30d4\u30fc\u3055\u308c\u307e\u305b\u3093\u3067\u3057\u305f...
-doclet.Copying_File_0_To_Dir_1=\u30d5\u30a1\u30a4\u30eb {0} \u3092\u30c7\u30a3\u30ec\u30af\u30c8\u30ea {1} \u306b\u30b3\u30d4\u30fc\u4e2d...
-doclet.Copying_File_0_To_File_1=\u30d5\u30a1\u30a4\u30eb {0} \u3092\u30d5\u30a1\u30a4\u30eb {1} \u306b\u30b3\u30d4\u30fc\u4e2d...
-doclet.No_Public_Classes_To_Document=\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u5316\u3059\u308b public \u307e\u305f\u306f protected \u30af\u30e9\u30b9\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002
-doclet.Unable_to_create_directory_0=\u30c7\u30a3\u30ec\u30af\u30c8\u30ea {0} \u3092\u4f5c\u6210\u3067\u304d\u307e\u305b\u3093\u3002
-doclet.destination_directory_not_found_0=\u8ee2\u9001\u5148\u30c7\u30a3\u30ec\u30af\u30c8\u30ea {0} \u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002
-doclet.destination_directory_not_directory_0=\u8ee2\u9001\u5148\u30c7\u30a3\u30ec\u30af\u30c8\u30ea {0} \u306f\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002
-doclet.destination_directory_not_writable_0=\u8ee2\u9001\u5148\u30c7\u30a3\u30ec\u30af\u30c8\u30ea {0} \u306f\u66f8\u304d\u8fbc\u307f\u53ef\u80fd\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002
-doclet.Error_creating_tmp_file=\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u306e\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u30a8\u30f3\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u3092\u4f7f\u7528\u3057\u3066\u4e00\u6642\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3057\u3066\u3044\u308b\u3068\u304d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002
-doclet.Encoding_not_supported=\u30a8\u30f3\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0 {0} \u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002
-doclet.Building_Tree=\u5168\u30d1\u30c3\u30b1\u30fc\u30b8\u3068\u30af\u30e9\u30b9\u306e\u968e\u5c64\u30c4\u30ea\u30fc\u3092\u4f5c\u6210\u3057\u3066\u3044\u307e\u3059...
-doclet.Building_Index=\u5168\u30d1\u30c3\u30b1\u30fc\u30b8\u3068\u30af\u30e9\u30b9\u306e\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u3092\u4f5c\u6210\u3057\u3066\u3044\u307e\u3059...
-doclet.Building_Index_For_All_Classes=\u5168\u30af\u30e9\u30b9\u306e\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u3092\u4f5c\u6210\u3057\u3066\u3044\u307e\u3059...
-doclet.sourcetab_warning=-sourcetab \u306e\u5f15\u6570\u306f 0 \u3088\u308a\u5927\u304d\u3044\u6574\u6570\u3067\u306a\u3051\u308c\u3070\u306a\u308a\u307e\u305b\u3093\u3002
-doclet.Packages=\u30d1\u30c3\u30b1\u30fc\u30b8
-doclet.Other_Packages=\u305d\u306e\u4ed6\u306e\u30d1\u30c3\u30b1\u30fc\u30b8
-doclet.Notice_taglet_registered=\u767b\u9332\u3055\u308c\u305f\u30bf\u30b0\u30ec\u30c3\u30c8 {0} ...
-doclet.Notice_taglet_unseen=\u6ce8: \u975e\u8868\u793a\u306e\u30ab\u30b9\u30bf\u30e0\u30bf\u30b0: {0}
-doclet.Notice_taglet_overriden=\u6ce8: \u6a19\u6e96\u30bf\u30b0\u3092\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\u3059\u308b\u30ab\u30b9\u30bf\u30e0\u30bf\u30b0: {0}
-doclet.Notice_taglet_conflict_warn=\u6ce8: \u6a19\u6e96\u30bf\u30b0\u3092\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\u3059\u308b\u53ef\u80fd\u6027\u306e\u3042\u308b\u30ab\u30b9\u30bf\u30e0\u30bf\u30b0: {0}\u3002\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\u3092\u907f\u3051\u308b\u305f\u3081\u306b\u3001\u30ab\u30b9\u30bf\u30e0\u30bf\u30b0\u540d\u306e\u4e2d\u306b\u5c11\u306a\u304f\u3068\u3082 1 \u3064\u306e\u30d4\u30ea\u30aa\u30c9 (.) \u3092\u4f7f\u7528\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-doclet.Error_taglet_not_registered=\u30a8\u30e9\u30fc - \u30bf\u30b0\u30ec\u30c3\u30c8 {1} \u3092\u767b\u9332\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u308b\u3068\u304d\u306b\u3001\u4f8b\u5916 {0} \u304c\u30b9\u30ed\u30fc\u3055\u308c\u307e\u3057\u305f...
-doclet.Error_invalid_custom_tag_argument=\u30a8\u30e9\u30fc - {0} \u306f -tag \u30aa\u30d7\u30b7\u30e7\u30f3\u306b\u5bfe\u3057\u3066\u7121\u52b9\u306a\u5f15\u6570\u3067\u3059...
-doclet.Author=\u4f5c\u6210\u8005:
-doclet.Default=\u30c7\u30d5\u30a9\u30eb\u30c8:
-doclet.Parameters=\u30d1\u30e9\u30e1\u30fc\u30bf:
-doclet.TypeParameters=\u578b\u30d1\u30e9\u30e1\u30fc\u30bf:
-doclet.Parameters_warn=@param argument "{0}" \u306f\u30d1\u30e9\u30e1\u30fc\u30bf\u540d\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002
-doclet.Parameters_dup_warn=\u30d1\u30e9\u30e1\u30fc\u30bf "{0}" \u304c 2 \u56de\u4ee5\u4e0a\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u5316\u3055\u308c\u3066\u3044\u307e\u3059\u3002
-doclet.Type_Parameters_warn=@param argument "{0}" \u306f\u578b\u30d1\u30e9\u30e1\u30fc\u30bf\u540d\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002
-doclet.Type_Parameters_dup_warn=\u578b\u30d1\u30e9\u30e1\u30fc\u30bf "{0}" \u304c 2 \u56de\u4ee5\u4e0a\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u5316\u3055\u308c\u3066\u3044\u307e\u3059\u3002
-doclet.Returns=\u623b\u308a\u5024:
-doclet.Return_tag_on_void_method=\u623b\u308a\u5024\u306e\u578b\u304c void \u306e\u30e1\u30bd\u30c3\u30c9\u3067\u306f @return \u30bf\u30b0\u3092\u4f7f\u7528\u3067\u304d\u307e\u305b\u3093\u3002
-doclet.See_Also=\u95a2\u9023\u9805\u76ee:
-doclet.See=\u53c2\u7167\u5148:
-doclet.SerialData=\u30b7\u30ea\u30a2\u30eb\u30c7\u30fc\u30bf:
-doclet.Since=\u5c0e\u5165\u3055\u308c\u305f\u30d0\u30fc\u30b8\u30e7\u30f3:
-doclet.Throws=\u4f8b\u5916:
-doclet.Version=\u30d0\u30fc\u30b8\u30e7\u30f3:
-doclet.Factory=\u30d5\u30a1\u30af\u30c8\u30ea:
-doclet.UnknownTag={0} \u306f\u672a\u77e5\u306e\u30bf\u30b0\u3067\u3059\u3002
-doclet.UnknownTagLowercase={0} \u306f\u672a\u77e5\u306e\u30bf\u30b0\u3067\u3059\u3002\u5927\u6587\u5b57\u3068\u5c0f\u6587\u5b57\u306e\u533a\u5225\u3092\u9664\u3044\u3066\u306f\u65e2\u77e5\u306e\u30bf\u30b0\u3068\u540c\u3058\u3067\u3059\u3002
-doclet.noInheritedDoc=@inheritDoc \u304c\u4f7f\u7528\u3055\u308c\u3066\u3044\u307e\u3059\u304c\u3001{0} \u306f\u3069\u306e\u30e1\u30bd\u30c3\u30c9\u3082\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\u307e\u305f\u306f\u5b9f\u88c5\u3057\u3066\u3044\u307e\u305b\u3093\u3002
-doclet.malformed_html_link_tag=<a> \u30bf\u30b0\u306e\u5f62\u5f0f\u304c\u4e0d\u6b63:\n"{0}"
-doclet.tag_misuse={0} \u30bf\u30b0\u306f {1} \u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u5185\u3067\u306f\u4f7f\u7528\u3067\u304d\u307e\u305b\u3093\u3002\u4f7f\u7528\u3067\u304d\u308b\u306e\u306f\u6b21\u306e\u7a2e\u985e\u306e\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u5185\u3060\u3051\u3067\u3059: {2}\u3002
-doclet.Package_Summary=\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u6982\u8981
-doclet.Interface_Summary=\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u306e\u6982\u8981
-doclet.Annotation_Types_Summary=\u6ce8\u91c8\u578b\u306e\u6982\u8981
-doclet.Enum_Summary=\u5217\u6319\u578b\u306e\u6982\u8981
-doclet.Exception_Summary=\u4f8b\u5916\u306e\u6982\u8981
-doclet.Error_Summary=\u30a8\u30e9\u30fc\u306e\u6982\u8981
-doclet.Class_Summary=\u30af\u30e9\u30b9\u306e\u6982\u8981
-doclet.Nested_Class_Summary=\u5165\u308c\u5b50\u306e\u30af\u30e9\u30b9\u306e\u6982\u8981
-doclet.Annotation_Type_Optional_Member_Summary=\u4efb\u610f\u8981\u7d20\u306e\u6982\u8981
-doclet.Annotation_Type_Required_Member_Summary=\u5fc5\u9808\u8981\u7d20\u306e\u6982\u8981
-doclet.Field_Summary=\u30d5\u30a3\u30fc\u30eb\u30c9\u306e\u6982\u8981
-doclet.Enum_Constant_Summary=\u5217\u6319\u578b\u5b9a\u6570\u306e\u6982\u8981
-doclet.Constructor_Summary=\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u306e\u6982\u8981
-doclet.Method_Summary=\u30e1\u30bd\u30c3\u30c9\u306e\u6982\u8981
-doclet.Factory_Method_Summary=static \u30d5\u30a1\u30af\u30c8\u30ea\u30e1\u30bd\u30c3\u30c9\u306e\u6982\u8981
-doclet.Interfaces=\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9
-doclet.Enums=\u5217\u6319\u578b
-doclet.AnnotationTypes=\u6ce8\u91c8\u578b
-doclet.Exceptions=\u4f8b\u5916
-doclet.Errors=\u30a8\u30e9\u30fc
-doclet.Classes=\u30af\u30e9\u30b9
-doclet.Packages=\u30d1\u30c3\u30b1\u30fc\u30b8
-doclet.packages=\u30d1\u30c3\u30b1\u30fc\u30b8
-doclet.All_Classes=\u3059\u3079\u3066\u306e\u30af\u30e9\u30b9
-doclet.All_Superinterfaces=\u3059\u3079\u3066\u306e\u30b9\u30fc\u30d1\u30fc\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9:
-doclet.All_Implemented_Interfaces=\u3059\u3079\u3066\u306e\u5b9f\u88c5\u3055\u308c\u305f\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9:
-doclet.All_classes_and_interfaces=\u3059\u3079\u3066\u306e\u30af\u30e9\u30b9\u304a\u3088\u3073\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9 (\u975e static \u306e\u5165\u308c\u5b50\u306b\u306a\u3063\u305f\u578b\u3092\u9664\u304f)
-doclet.Package_class_and_interface_descriptions=\u30d1\u30c3\u30b1\u30fc\u30b8\u3001\u30af\u30e9\u30b9\u3001\u304a\u3088\u3073\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9\u306e\u8aac\u660e
-doclet.Members=\u30e1\u30f3\u30d0
-doclet.Interface=\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9
-doclet.Class=\u30af\u30e9\u30b9
-doclet.AnnotationType=\u6ce8\u91c8\u578b
-doclet.annotationtype=\u6ce8\u91c8\u578b
-doclet.annotationtypes=\u6ce8\u91c8\u578b
-doclet.Enum=\u5217\u6319\u578b
+doclet.Option_conflict=\u30AA\u30D7\u30B7\u30E7\u30F3{0}\u304C{1}\u3068\u77DB\u76FE\u3057\u307E\u3059
+doclet.Option_reuse=\u30AA\u30D7\u30B7\u30E7\u30F3\u304C\u518D\u4F7F\u7528\u3055\u308C\u3066\u3044\u307E\u3059: {0}
+doclet.exception_encountered= {0}\u3092\u691C\u51FA\n\t\u30D5\u30A1\u30A4\u30EB\u306E\u4F5C\u6210\u4E2D: {1}
+doclet.perform_copy_exception_encountered= \u30B3\u30D4\u30FC\u5B9F\u884C\u4E2D\u306B{0}\u3092\n\u691C\u51FA\u3057\u307E\u3057\u305F\u3002
+doclet.File_not_found=\u30D5\u30A1\u30A4\u30EB\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: {0}
+doclet.Copy_Overwrite_warning=\u30D5\u30A1\u30A4\u30EB{0}\u306F\u540C\u3058\u540D\u524D\u306E\u30D5\u30A1\u30A4\u30EB\u304C\u3042\u308B\u306E\u3067{1}\u306B\u30B3\u30D4\u30FC\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F...
+doclet.Copying_File_0_To_Dir_1=\u30D5\u30A1\u30A4\u30EB{0}\u3092\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA{1}\u306B\u30B3\u30D4\u30FC\u4E2D...
+doclet.Copying_File_0_To_File_1=\u30D5\u30A1\u30A4\u30EB{0}\u3092\u30D5\u30A1\u30A4\u30EB{1}\u306B\u30B3\u30D4\u30FC\u4E2D...
+doclet.No_Public_Classes_To_Document=\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u5316\u3059\u308Bpublic\u307E\u305F\u306Fprotected\u30AF\u30E9\u30B9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002
+doclet.Unable_to_create_directory_0=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA{0}\u3092\u4F5C\u6210\u3067\u304D\u307E\u305B\u3093
+doclet.destination_directory_not_found_0=\u8EE2\u9001\u5148\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA{0}\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093
+doclet.destination_directory_not_directory_0=\u8EE2\u9001\u5148\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA{0}\u306F\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3067\u306F\u3042\u308A\u307E\u305B\u3093
+doclet.destination_directory_not_writable_0=\u8EE2\u9001\u5148\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA{0}\u306F\u66F8\u8FBC\u307F\u53EF\u80FD\u3067\u306F\u3042\u308A\u307E\u305B\u3093
+doclet.Error_creating_tmp_file=\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0\u306E\u30C7\u30D5\u30A9\u30EB\u30C8\u306E\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0\u3092\u4F7F\u7528\u3057\u3066\u4E00\u6642\u30D5\u30A1\u30A4\u30EB\u3092\u4F5C\u6210\u3057\u3066\u3044\u308B\u3068\u304D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002
+doclet.Encoding_not_supported=\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0{0}\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093
+doclet.Building_Tree=\u5168\u30D1\u30C3\u30B1\u30FC\u30B8\u3068\u30AF\u30E9\u30B9\u306E\u968E\u5C64\u30C4\u30EA\u30FC\u3092\u4F5C\u6210\u3057\u3066\u3044\u307E\u3059...
+doclet.Building_Index=\u5168\u30D1\u30C3\u30B1\u30FC\u30B8\u3068\u30AF\u30E9\u30B9\u306E\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u3092\u4F5C\u6210\u3057\u3066\u3044\u307E\u3059...
+doclet.Building_Index_For_All_Classes=\u5168\u30AF\u30E9\u30B9\u306E\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u3092\u4F5C\u6210\u3057\u3066\u3044\u307E\u3059...
+doclet.sourcetab_warning=-sourcetab\u306E\u5F15\u6570\u306F0\u3088\u308A\u5927\u304D\u3044\u6574\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+doclet.Packages=\u30D1\u30C3\u30B1\u30FC\u30B8
+doclet.Other_Packages=\u305D\u306E\u4ED6\u306E\u30D1\u30C3\u30B1\u30FC\u30B8
+doclet.Notice_taglet_registered=\u767B\u9332\u3055\u308C\u305F\u30BF\u30B0\u30EC\u30C3\u30C8{0} ...
+doclet.Notice_taglet_unseen=\u6CE8\u610F: \u975E\u8868\u793A\u306E\u30AB\u30B9\u30BF\u30E0\u30FB\u30BF\u30B0: {0}
+doclet.Notice_taglet_overriden=\u6CE8\u610F: \u6A19\u6E96\u30BF\u30B0\u3092\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3059\u308B\u30AB\u30B9\u30BF\u30E0\u30FB\u30BF\u30B0: {0}
+doclet.Notice_taglet_conflict_warn=\u6CE8\u610F: \u6A19\u6E96\u30BF\u30B0\u3092\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3059\u308B\u53EF\u80FD\u6027\u306E\u3042\u308B\u30AB\u30B9\u30BF\u30E0\u30FB\u30BF\u30B0: {0}\u3002\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3092\u907F\u3051\u308B\u305F\u3081\u306B\u3001\u30AB\u30B9\u30BF\u30E0\u30FB\u30BF\u30B0\u540D\u306E\u4E2D\u306B\u5C11\u306A\u304F\u3068\u30821\u3064\u306E\u30D4\u30EA\u30AA\u30C9(.)\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002
+doclet.Error_taglet_not_registered=\u30A8\u30E9\u30FC - \u30BF\u30B0\u30EC\u30C3\u30C8{1}\u3092\u767B\u9332\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u308B\u3068\u304D\u306B\u3001\u4F8B\u5916{0}\u304C\u30B9\u30ED\u30FC\u3055\u308C\u307E\u3057\u305F...
+doclet.Error_invalid_custom_tag_argument=\u30A8\u30E9\u30FC - {0}\u306F-tag\u30AA\u30D7\u30B7\u30E7\u30F3\u306B\u5BFE\u3057\u3066\u7121\u52B9\u306A\u5F15\u6570\u3067\u3059...
+doclet.Author=\u4F5C\u6210\u8005:
+doclet.Default=\u30C7\u30D5\u30A9\u30EB\u30C8:
+doclet.Parameters=\u30D1\u30E9\u30E1\u30FC\u30BF:
+doclet.TypeParameters=\u578B\u30D1\u30E9\u30E1\u30FC\u30BF:
+doclet.Parameters_warn=@param argument "{0}"\u306F\u30D1\u30E9\u30E1\u30FC\u30BF\u540D\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002
+doclet.Parameters_dup_warn=\u30D1\u30E9\u30E1\u30FC\u30BF"{0}"\u304C2\u56DE\u4EE5\u4E0A\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u5316\u3055\u308C\u3066\u3044\u307E\u3059\u3002
+doclet.Type_Parameters_warn=@param argument "{0}"\u306F\u578B\u30D1\u30E9\u30E1\u30FC\u30BF\u540D\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002
+doclet.Type_Parameters_dup_warn=\u578B\u30D1\u30E9\u30E1\u30FC\u30BF"{0}"\u304C2\u56DE\u4EE5\u4E0A\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u5316\u3055\u308C\u3066\u3044\u307E\u3059\u3002
+doclet.Returns=\u623B\u308A\u5024:
+doclet.Return_tag_on_void_method=\u623B\u308A\u5024\u306E\u578B\u304Cvoid\u306E\u30E1\u30BD\u30C3\u30C9\u3067\u306F@return\u30BF\u30B0\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002
+doclet.See_Also=\u95A2\u9023\u9805\u76EE:
+doclet.See=\u53C2\u7167\u5148:
+doclet.SerialData=\u30B7\u30EA\u30A2\u30EB\u30FB\u30C7\u30FC\u30BF:
+doclet.Since=\u5C0E\u5165\u3055\u308C\u305F\u30D0\u30FC\u30B8\u30E7\u30F3:
+doclet.Throws=\u4F8B\u5916:
+doclet.Version=\u30D0\u30FC\u30B8\u30E7\u30F3:
+doclet.Factory=\u30D5\u30A1\u30AF\u30C8\u30EA:
+doclet.UnknownTag={0}\u306F\u4E0D\u660E\u306A\u30BF\u30B0\u3067\u3059\u3002
+doclet.UnknownTagLowercase={0}\u306F\u4E0D\u660E\u306A\u30BF\u30B0\u3067\u3059\u3002\u5927\u6587\u5B57\u3068\u5C0F\u6587\u5B57\u306E\u533A\u5225\u3092\u9664\u3044\u3066\u306F\u65E2\u77E5\u306E\u30BF\u30B0\u3068\u540C\u3058\u3067\u3059\u3002
+doclet.noInheritedDoc=@inheritDoc\u304C\u4F7F\u7528\u3055\u308C\u3066\u3044\u307E\u3059\u304C\u3001{0}\u306F\u3069\u306E\u30E1\u30BD\u30C3\u30C9\u3082\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u307E\u305F\u306F\u5B9F\u88C5\u3057\u3066\u3044\u307E\u305B\u3093\u3002
+doclet.malformed_html_link_tag=<a> \u30BF\u30B0\u306E\u5F62\u5F0F\u304C\u4E0D\u6B63:\n"{0}"
+doclet.tag_misuse={0}\u30BF\u30B0\u306F{1}\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u5185\u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u4F7F\u7528\u3067\u304D\u308B\u306E\u306F\u6B21\u306E\u30BF\u30A4\u30D7\u306E\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u5185\u306E\u307F\u3067\u3059: {2}\u3002
+doclet.Package_Summary=\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\u6982\u8981
+doclet.Interface_Summary=\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u306E\u6982\u8981
+doclet.Annotation_Types_Summary=\u6CE8\u91C8\u578B\u306E\u6982\u8981
+doclet.Enum_Summary=\u5217\u6319\u578B\u306E\u6982\u8981
+doclet.Exception_Summary=\u4F8B\u5916\u306E\u6982\u8981
+doclet.Error_Summary=\u30A8\u30E9\u30FC\u306E\u6982\u8981
+doclet.Class_Summary=\u30AF\u30E9\u30B9\u306E\u6982\u8981
+doclet.Nested_Class_Summary=\u5165\u308C\u5B50\u306E\u30AF\u30E9\u30B9\u306E\u6982\u8981
+doclet.Annotation_Type_Optional_Member_Summary=\u4EFB\u610F\u8981\u7D20\u306E\u6982\u8981
+doclet.Annotation_Type_Required_Member_Summary=\u5FC5\u9808\u8981\u7D20\u306E\u6982\u8981
+doclet.Field_Summary=\u30D5\u30A3\u30FC\u30EB\u30C9\u306E\u6982\u8981
+doclet.Enum_Constant_Summary=\u5217\u6319\u578B\u5B9A\u6570\u306E\u6982\u8981
+doclet.Constructor_Summary=\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF\u306E\u6982\u8981
+doclet.Method_Summary=\u30E1\u30BD\u30C3\u30C9\u306E\u6982\u8981
+doclet.Factory_Method_Summary=static\u30D5\u30A1\u30AF\u30C8\u30EA\u30FB\u30E1\u30BD\u30C3\u30C9\u306E\u6982\u8981
+doclet.Interfaces=\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9
+doclet.Enums=\u5217\u6319\u578B
+doclet.AnnotationTypes=\u6CE8\u91C8\u578B
+doclet.Exceptions=\u4F8B\u5916
+doclet.Errors=\u30A8\u30E9\u30FC
+doclet.Classes=\u30AF\u30E9\u30B9
+doclet.Packages=\u30D1\u30C3\u30B1\u30FC\u30B8
+doclet.packages=\u30D1\u30C3\u30B1\u30FC\u30B8
+doclet.All_Classes=\u3059\u3079\u3066\u306E\u30AF\u30E9\u30B9
+doclet.All_Superinterfaces=\u3059\u3079\u3066\u306E\u30B9\u30FC\u30D1\u30FC\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9:
+doclet.All_Implemented_Interfaces=\u3059\u3079\u3066\u306E\u5B9F\u88C5\u3055\u308C\u305F\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9:
+doclet.All_classes_and_interfaces=\u3059\u3079\u3066\u306E\u30AF\u30E9\u30B9\u304A\u3088\u3073\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9(\u975Estatic\u306E\u5165\u308C\u5B50\u306B\u306A\u3063\u305F\u578B\u3092\u9664\u304F)
+doclet.Package_class_and_interface_descriptions=\u30D1\u30C3\u30B1\u30FC\u30B8\u3001\u30AF\u30E9\u30B9\u304A\u3088\u3073\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u306E\u8AAC\u660E
+doclet.Members=\u30E1\u30F3\u30D0\u30FC
+doclet.Interface=\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9
+doclet.Class=\u30AF\u30E9\u30B9
+doclet.AnnotationType=\u6CE8\u91C8\u578B
+doclet.annotationtype=\u6CE8\u91C8\u578B
+doclet.annotationtypes=\u6CE8\u91C8\u578B
+doclet.Enum=\u5217\u6319\u578B
 doclet.enum=\u5217\u6319
-doclet.enums=\u5217\u6319\u578b
-doclet.interface=\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9
-doclet.interfaces=\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9
-doclet.class=\u30af\u30e9\u30b9
-doclet.classes=\u30af\u30e9\u30b9
-doclet.Error=\u30a8\u30e9\u30fc
-doclet.error=\u30a8\u30e9\u30fc
-doclet.errors=\u30a8\u30e9\u30fc
-doclet.Exception=\u4f8b\u5916
-doclet.exception=\u4f8b\u5916
-doclet.exceptions=\u4f8b\u5916
-doclet.extended_by=\u4e0a\u4f4d\u3092\u62e1\u5f35
+doclet.enums=\u5217\u6319
+doclet.interface=\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9
+doclet.interfaces=\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9
+doclet.class=\u30AF\u30E9\u30B9
+doclet.classes=\u30AF\u30E9\u30B9
+doclet.Error=\u30A8\u30E9\u30FC
+doclet.error=\u30A8\u30E9\u30FC
+doclet.errors=\u30A8\u30E9\u30FC
+doclet.Exception=\u4F8B\u5916
+doclet.exception=\u4F8B\u5916
+doclet.exceptions=\u4F8B\u5916
+doclet.extended_by=\u4E0A\u4F4D\u3092\u62E1\u5F35
 doclet.extends=extends
 doclet.Package_private=(package private)
-doclet.implements=implementsdoclet.Same_package_name_used=\u30d1\u30c3\u30b1\u30fc\u30b8\u540d\u5f62\u5f0f\u304c 2 \u56de\u4f7f\u7528\u3055\u308c\u3066\u3044\u307e\u3059: {0}
-doclet.Nested_Classes_Interfaces_Inherited_From_Class=\u30af\u30e9\u30b9 {0} \u304b\u3089\u7d99\u627f\u3055\u308c\u305f\u5165\u308c\u5b50\u306e\u30af\u30e9\u30b9/\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9
-doclet.Nested_Classes_Interface_Inherited_From_Interface=\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9 {0} \u304b\u3089\u7d99\u627f\u3055\u308c\u305f\u5165\u308c\u5b50\u306e\u30af\u30e9\u30b9/\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9
-doclet.Methods_Inherited_From_Class=\u30af\u30e9\u30b9 {0} \u304b\u3089\u7d99\u627f\u3055\u308c\u305f\u30e1\u30bd\u30c3\u30c9
-doclet.Methods_Inherited_From_Interface=\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9 {0} \u304b\u3089\u7d99\u627f\u3055\u308c\u305f\u30e1\u30bd\u30c3\u30c9
-doclet.Fields_Inherited_From_Class=\u30af\u30e9\u30b9 {0} \u304b\u3089\u7d99\u627f\u3055\u308c\u305f\u30d5\u30a3\u30fc\u30eb\u30c9
-doclet.Fields_Inherited_From_Interface=\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9 {0} \u304b\u3089\u7d99\u627f\u3055\u308c\u305f\u30d5\u30a3\u30fc\u30eb\u30c9
-doclet.Serializable=\u76f4\u5217\u5316\u53ef\u80fd
-doclet.Externalizable=\u5916\u90e8\u5316\u53ef\u80fd
-doclet.Annotation_Type_Member_Detail=\u8981\u7d20\u306e\u8a73\u7d30
-doclet.Enum_Constant_Detail=\u5217\u6319\u578b\u5b9a\u6570\u306e\u8a73\u7d30
-doclet.Constants_Summary=\u5b9a\u6570\u30d5\u30a3\u30fc\u30eb\u30c9\u5024
-doclet.Field_Detail=\u30d5\u30a3\u30fc\u30eb\u30c9\u306e\u8a73\u7d30
-doclet.Method_Detail=\u30e1\u30bd\u30c3\u30c9\u306e\u8a73\u7d30
-doclet.Constructor_Detail=\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf\u306e\u8a73\u7d30
-doclet.Deprecated=\u63a8\u5968\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002
-doclet.Deprecated_class=\u3053\u306e\u30af\u30e9\u30b9\u306f\u63a8\u5968\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002
-doclet.Groupname_already_used=-group \u30aa\u30d7\u30b7\u30e7\u30f3\u3067\u3001\u30b0\u30eb\u30fc\u30d7\u540d\u304c\u65e2\u306b\u4f7f\u7528\u3055\u308c\u3066\u3044\u307e\u3059: {0}
-doclet.value_tag_invalid_reference={0} (@value \u30bf\u30b0\u306b\u3088\u308a\u53c2\u7167\u3055\u308c\u3066\u3044\u308b) \u306f\u672a\u77e5\u306e\u53c2\u7167\u3067\u3059\u3002
-doclet.value_tag_invalid_constant=@value \u30bf\u30b0 ({0} \u3092\u53c2\u7167\u3057\u3066\u3044\u308b) \u306f\u5b9a\u6570\u5185\u3067\u306e\u307f\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002
-doclet.dest_dir_create=\u5b9b\u5148\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u4f5c\u6210\u4e2d: "{0}"
-doclet.in={1} \u306e {0}
-doclet.Use_Table_Summary=\u8868\u3001\u4e00\u89a7 {0}\u3001\u8aac\u660e\u3092\u4f7f\u7528
-doclet.Constants_Table_Summary={0} \u8868\u3001\u5b9a\u6570\u30d5\u30a3\u30fc\u30eb\u30c9\u4e00\u89a7\u3001\u5024
-doclet.Member_Table_Summary={0} \u8868\u3001\u4e00\u89a7 {1}\u3001\u8aac\u660e
-doclet.fields=\u30d5\u30a3\u30fc\u30eb\u30c9
-doclet.constructors=\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf
-doclet.methods=\u30e1\u30bd\u30c3\u30c9
-doclet.annotation_type_optional_members=\u4efb\u610f\u8981\u7d20
-doclet.annotation_type_required_members=\u5fc5\u9808\u8981\u7d20
-doclet.enum_constants=\u5217\u6319\u578b\u5b9a\u6570
-doclet.nested_classes=\u5165\u308c\u5b50\u306e\u30af\u30e9\u30b9
-doclet.subclasses=\u30b5\u30d6\u30af\u30e9\u30b9
-doclet.subinterfaces=\u30b5\u30d6\u30a4\u30f3\u30bf\u30d5\u30a7\u30fc\u30b9
-doclet.Modifier=\u4fee\u98fe\u5b50
-doclet.Type=\u30bf\u30a4\u30d7
-doclet.Field=\u30d5\u30a3\u30fc\u30eb\u30c9
-doclet.Constructor=\u30b3\u30f3\u30b9\u30c8\u30e9\u30af\u30bf
-doclet.Method=\u30e1\u30bd\u30c3\u30c9
-doclet.Annotation_Type_Optional_Member=\u4efb\u610f\u8981\u7d20
-doclet.Annotation_Type_Required_Member=\u5fc5\u9808\u8981\u7d20
-doclet.Annotation_Type_Member=\u6ce8\u91c8\u578b\u8981\u7d20
-doclet.Enum_Constant=\u5217\u6319\u578b\u5b9a\u6570
-doclet.Class=\u30af\u30e9\u30b9
-doclet.Description=\u8aac\u660e
-doclet.ConstantField=\u5b9a\u6570\u30d5\u30a3\u30fc\u30eb\u30c9
+doclet.implements=implementsdoclet.Same_package_name_used=\u30D1\u30C3\u30B1\u30FC\u30B8\u540D\u5F62\u5F0F\u304C2\u56DE\u4F7F\u7528\u3055\u308C\u3066\u3044\u307E\u3059: {0}
+doclet.Nested_Classes_Interfaces_Inherited_From_Class=\u30AF\u30E9\u30B9{0}\u304B\u3089\u7D99\u627F\u3055\u308C\u305F\u5165\u308C\u5B50\u306E\u30AF\u30E9\u30B9/\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9
+doclet.Nested_Classes_Interface_Inherited_From_Interface=\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9{0}\u304B\u3089\u7D99\u627F\u3055\u308C\u305F\u5165\u308C\u5B50\u306E\u30AF\u30E9\u30B9/\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9
+doclet.Methods_Inherited_From_Class=\u30AF\u30E9\u30B9{0}\u304B\u3089\u7D99\u627F\u3055\u308C\u305F\u30E1\u30BD\u30C3\u30C9
+doclet.Methods_Inherited_From_Interface=\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9{0}\u304B\u3089\u7D99\u627F\u3055\u308C\u305F\u30E1\u30BD\u30C3\u30C9
+doclet.Fields_Inherited_From_Class=\u30AF\u30E9\u30B9{0}\u304B\u3089\u7D99\u627F\u3055\u308C\u305F\u30D5\u30A3\u30FC\u30EB\u30C9
+doclet.Fields_Inherited_From_Interface=\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9{0}\u304B\u3089\u7D99\u627F\u3055\u308C\u305F\u30D5\u30A3\u30FC\u30EB\u30C9
+doclet.Serializable=\u76F4\u5217\u5316\u53EF\u80FD
+doclet.Externalizable=\u5916\u90E8\u5316\u53EF\u80FD
+doclet.Annotation_Type_Member_Detail=\u8981\u7D20\u306E\u8A73\u7D30
+doclet.Enum_Constant_Detail=\u5217\u6319\u578B\u5B9A\u6570\u306E\u8A73\u7D30
+doclet.Constants_Summary=\u5B9A\u6570\u30D5\u30A3\u30FC\u30EB\u30C9\u5024
+doclet.Field_Detail=\u30D5\u30A3\u30FC\u30EB\u30C9\u306E\u8A73\u7D30
+doclet.Method_Detail=\u30E1\u30BD\u30C3\u30C9\u306E\u8A73\u7D30
+doclet.Constructor_Detail=\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF\u306E\u8A73\u7D30
+doclet.Deprecated=\u63A8\u5968\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002
+doclet.Deprecated_class=\u3053\u306E\u30AF\u30E9\u30B9\u306F\u63A8\u5968\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002
+doclet.Groupname_already_used=-group\u30AA\u30D7\u30B7\u30E7\u30F3\u306B\u304A\u3044\u3066\u3001\u3059\u3067\u306B\u30B0\u30EB\u30FC\u30D7\u540D\u304C\u4F7F\u7528\u3055\u308C\u3066\u3044\u307E\u3059: {0}
+doclet.value_tag_invalid_reference={0}(@value\u30BF\u30B0\u306B\u3088\u308A\u53C2\u7167\u3055\u308C\u3066\u3044\u308B)\u306F\u4E0D\u660E\u306A\u53C2\u7167\u3067\u3059\u3002
+doclet.value_tag_invalid_constant=@value\u30BF\u30B0({0}\u3092\u53C2\u7167\u3057\u3066\u3044\u308B)\u306F\u5B9A\u6570\u5185\u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059\u3002
+doclet.dest_dir_create=\u5B9B\u5148\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306E\u4F5C\u6210\u4E2D: "{0}"
+doclet.in={1}\u306E{0}
+doclet.Use_Table_Summary=\u8868\u3001{0}\u306E\u30EA\u30B9\u30C8\u304A\u3088\u3073\u8AAC\u660E\u306E\u4F7F\u7528
+doclet.Constants_Table_Summary={0}\u8868\u3001\u5B9A\u6570\u30D5\u30A3\u30FC\u30EB\u30C9\u306E\u30EA\u30B9\u30C8\u304A\u3088\u3073\u5024
+doclet.Member_Table_Summary={0}\u8868\u3001{1}\u306E\u30EA\u30B9\u30C8\u304A\u3088\u3073\u8AAC\u660E
+doclet.fields=\u30D5\u30A3\u30FC\u30EB\u30C9
+doclet.constructors=\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF
+doclet.methods=\u30E1\u30BD\u30C3\u30C9
+doclet.annotation_type_optional_members=\u4EFB\u610F\u8981\u7D20
+doclet.annotation_type_required_members=\u5FC5\u9808\u8981\u7D20
+doclet.enum_constants=\u5217\u6319\u578B\u5B9A\u6570
+doclet.nested_classes=\u5165\u308C\u5B50\u306E\u30AF\u30E9\u30B9
+doclet.subclasses=\u30B5\u30D6\u30AF\u30E9\u30B9
+doclet.subinterfaces=\u30B5\u30D6\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9
+doclet.Modifier=\u4FEE\u98FE\u5B50
+doclet.Type=\u30BF\u30A4\u30D7
+doclet.Field=\u30D5\u30A3\u30FC\u30EB\u30C9
+doclet.Constructor=\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF
+doclet.Method=\u30E1\u30BD\u30C3\u30C9
+doclet.Annotation_Type_Optional_Member=\u4EFB\u610F\u8981\u7D20
+doclet.Annotation_Type_Required_Member=\u5FC5\u9808\u8981\u7D20
+doclet.Annotation_Type_Member=\u6CE8\u91C8\u578B\u8981\u7D20
+doclet.Enum_Constant=\u5217\u6319\u578B\u5B9A\u6570
+doclet.Class=\u30AF\u30E9\u30B9
+doclet.Description=\u8AAC\u660E
+doclet.ConstantField=\u5B9A\u6570\u30D5\u30A3\u30FC\u30EB\u30C9
 doclet.Value=\u5024
-doclet.0_and_1={0} \u304a\u3088\u3073 {1}
+doclet.0_and_1={0}\u3068{1}
 
 #Documentation for Enums
-doclet.enum_values_doc=\n\u3053\u306e\u5217\u6319\u578b\u306e\u5b9a\u6570\u3092\u542b\u3080\u914d\u5217\u3092\u5ba3\u8a00\u3055\u308c\u3066\u3044\u308b\u9806\u5e8f\u3067\u8fd4\u3057\u307e\u3059\u3002\n\u3053\u306e\u30e1\u30bd\u30c3\u30c9\u306f\u6b21\u306e\u3088\u3046\u306b\u3057\u3066\u5b9a\u6570\u3092\u53cd\u5fa9\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3067\u304d\u307e\u3059:\n<pre>\nfor ({0} c : {0}.values())\n&nbsp;   System.out.println(c);\n</pre>\n@return \u3053\u306e\u5217\u6319\u578b\u306e\u5b9a\u6570\u3092\u5ba3\u8a00\u3055\u308c\u3066\u3044\u308b\u9806\u5e8f\u3067\u542b\u3080\u914d\u5217
+doclet.enum_values_doc=\n\u3053\u306E\u5217\u6319\u578B\u306E\u5B9A\u6570\u3092\u542B\u3080\u914D\u5217\u3092\u5BA3\u8A00\u3055\u308C\u3066\u3044\u308B\u9806\u5E8F\u3067\u8FD4\u3057\u307E\u3059\u3002\n\u3053\u306E\u30E1\u30BD\u30C3\u30C9\u306F\u6B21\u306E\u3088\u3046\u306B\u3057\u3066\u5B9A\u6570\u3092\u53CD\u5FA9\u3059\u308B\u305F\u3081\u306B\n\u4F7F\u7528\u3067\u304D\u307E\u3059:\n<pre>\nfor({0} c: {0}.values())\n&nbsp; System.out.println(c);\n</pre>\n@return\u3053\u306E\u5217\u6319\u578B\u306E\u5B9A\u6570\u3092\u5BA3\u8A00\u3055\u308C\u3066\u3044\u308B\u9806\u5E8F\u3067\n\u542B\u3080\u914D\u5217
 
-doclet.enum_valueof_doc=\n\u6307\u5b9a\u3057\u305f\u540d\u524d\u3092\u6301\u3064\u3053\u306e\u578b\u306e\u5217\u6319\u578b\u5b9a\u6570\u3092\u8fd4\u3057\u307e\u3059\u3002\n\u6587\u5b57\u5217\u306f\u3001\u3053\u306e\u578b\u306e\u5217\u6319\u578b\u5b9a\u6570\u3092\u5ba3\u8a00\u3059\u308b\u306e\u306b\u4f7f\u7528\u3057\u305f\u8b58\u5225\u5b50\u3068\u53b3\u5bc6\u306b\n\u4e00\u81f4\u3057\u3066\u3044\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059 (\u4f59\u5206\u306a\u7a7a\u767d\u6587\u5b57\u3092\u542b\u3081\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093)\u3002\n\n@param name \u8fd4\u3055\u308c\u308b\u5217\u6319\u578b\u5b9a\u6570\u306e\u540d\u524d\n@return \u6307\u5b9a\u3055\u308c\u305f\u540d\u524d\u3092\u6301\u3064\u5217\u6319\u578b\u5b9a\u6570\n@throws IllegalArgumentException \u6307\u5b9a\u3055\u308c\u305f\u540d\u524d\u3092\u6301\u3064\u5b9a\u6570\u3092\n\u3053\u306e\u5217\u6319\u578b\u304c\u6301\u3063\u3066\u3044\u306a\u3044\u5834\u5408\n@throws NullPointerException \u5f15\u6570\u304c null \u306e\u5834\u5408
+doclet.enum_valueof_doc=\n\u6307\u5B9A\u3057\u305F\u540D\u524D\u3092\u6301\u3064\u3053\u306E\u578B\u306E\u5217\u6319\u578B\u5B9A\u6570\u3092\u8FD4\u3057\u307E\u3059\u3002\n\u6587\u5B57\u5217\u306F\u3001\u3053\u306E\u578B\u306E\u5217\u6319\u578B\u5B9A\u6570\u3092\u5BA3\u8A00\u3059\u308B\u306E\u306B\u4F7F\u7528\u3057\u305F\u8B58\u5225\u5B50\u3068\u53B3\u5BC6\u306B\n\u4E00\u81F4\u3057\u3066\u3044\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\n(\u4F59\u5206\u306A\u7A7A\u767D\u6587\u5B57\u3092\u542B\u3081\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002)\n\n@param name\u8FD4\u3055\u308C\u308B\u5217\u6319\u578B\u5B9A\u6570\u306E\u540D\u524D\n@return\u6307\u5B9A\u3055\u308C\u305F\u540D\u524D\u3092\u6301\u3064\u5217\u6319\u578B\u5B9A\u6570\n@throws IllegalArgumentException\u6307\u5B9A\u3055\u308C\u305F\u540D\u524D\u3092\u6301\u3064\u5B9A\u6570\u3092\n\u3053\u306E\u5217\u6319\u578B\u304C\u6301\u3063\u3066\u3044\u306A\u3044\u5834\u5408\n@throws NullPointerException\u5F15\u6570\u304Cnull\u306E\u5834\u5408
--- a/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclets_zh_CN.properties	Wed Feb 23 16:39:34 2011 -0500
+++ b/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclets_zh_CN.properties	Thu Mar 10 18:42:31 2011 -0500
@@ -1,163 +1,163 @@
-doclet.Generating_0=\u6b63\u5728\u751f\u6210 {0}...
-doclet.Toolkit_Usage_Violation=\u53ea\u6709 {0} \u53ef\u4ee5\u4f7f\u7528 Doclet \u5de5\u5177\u7bb1
-doclet.MissingSerialTag=\u5728\u7c7b {0} \u4e2d\uff0c\u9ed8\u8ba4\u7684\u53ef\u5e8f\u5217\u5316\u5b57\u6bb5 {1} \u7f3a\u5c11 @serial \u6807\u8bb0\u3002
-doclet.MissingSerialDataTag=\u5728\u7c7b {0} \u4e2d\uff0c\u65b9\u6cd5 {1} \u4e2d\u7f3a\u5c11 @serialData \u6807\u8bb0\u3002
-doclet.Serializable_no_customization=\u672a\u58f0\u660e readObject \u6216 writeObject \u65b9\u6cd5\u3002
-doclet.Serialized_Form=\u5e8f\u5217\u5316\u8868\u683c
-doclet.Serialized_Form_methods=\u5e8f\u5217\u5316\u65b9\u6cd5
-doclet.Serialized_Form_fields=\u5e8f\u5217\u5316\u5b57\u6bb5
-doclet.Serialized_Form_class=\u5e8f\u5217\u5316\u6982\u8ff0
-doclet.Class_0_implements_serializable=\u7c7b {0} \u5b9e\u73b0 Serializable
-doclet.Class_0_extends_implements_serializable=\u7c7b {0} \u7ee7\u627f {1} \u5b9e\u73b0 Serializable
-doclet.Option_conflict=\u9009\u9879 {0} \u4e0e {1} \u51b2\u7a81
-doclet.Option_reuse=\u91cd\u590d\u4f7f\u7528\u7684\u9009\u9879\uff1a {0}
-doclet.exception_encountered= \u5c1d\u8bd5\u521b\u5efa\u6587\u4ef6 {1} \u65f6 \n\t\u9047\u5230 {0}
-doclet.perform_copy_exception_encountered= \u6267\u884c\u590d\u5236\u65f6 \n\u9047\u5230{0} \u3002
-doclet.File_not_found=\u627e\u4e0d\u5230\u6587\u4ef6\uff1a {0}
-doclet.Copy_Overwrite_warning=\u672a\u5c06\u6587\u4ef6 {0} \u590d\u5236\u5230 {1}\uff0c\u56e0\u4e3a\u73b0\u6709\u6587\u4ef6\u5177\u6709\u76f8\u540c\u540d\u79f0...
-doclet.Copying_File_0_To_Dir_1=\u6b63\u5728\u5c06\u6587\u4ef6 {0} \u590d\u5236\u5230\u76ee\u5f55 {1}...
-doclet.Copying_File_0_To_File_1=\u6b63\u5728\u5c06\u6587\u4ef6 {0} \u590d\u5236\u5230\u6587\u4ef6 {1}...
-doclet.No_Public_Classes_To_Document=\u627e\u4e0d\u5230\u53ef\u4ee5\u6587\u6863\u5316\u7684\u516c\u5171\u6216\u53d7\u4fdd\u62a4\u7684\u7c7b\u3002
-doclet.Unable_to_create_directory_0=\u65e0\u6cd5\u521b\u5efa\u76ee\u5f55 {0}
-doclet.destination_directory_not_found_0=\u627e\u4e0d\u5230\u76ee\u6807\u76ee\u5f55 {0}
-doclet.destination_directory_not_directory_0=\u76ee\u6807\u76ee\u5f55\u4e0d\u662f\u76ee\u5f55 {0}
-doclet.destination_directory_not_writable_0=\u76ee\u6807\u76ee\u5f55\u4e0d\u53ef\u5199\u5165 {0}
-doclet.Error_creating_tmp_file=\u4f7f\u7528\u9ed8\u8ba4\u5e73\u53f0\u7f16\u7801\u521b\u5efa\u4e34\u65f6\u6587\u4ef6\u65f6\u51fa\u9519\u3002
-doclet.Encoding_not_supported=\u4e0d\u652f\u6301\u7f16\u7801\uff1a {0}
-doclet.Building_Tree=\u6b63\u5728\u6784\u5efa\u6240\u6709\u8f6f\u4ef6\u5305\u548c\u7c7b\u7684\u6811...
-doclet.Building_Index=\u6b63\u5728\u6784\u5efa\u6240\u6709\u8f6f\u4ef6\u5305\u548c\u7c7b\u7684\u7d22\u5f15...
-doclet.Building_Index_For_All_Classes=\u6b63\u5728\u6784\u5efa\u6240\u6709\u7c7b\u7684\u7d22\u5f15...
-doclet.sourcetab_warning=-sourcetab \u7684\u53c2\u6570\u5fc5\u987b\u662f\u5927\u4e8e 0 \u7684\u6574\u6570\u3002
-doclet.Packages=\u8f6f\u4ef6\u5305
-doclet.Other_Packages=\u5176\u4ed6\u8f6f\u4ef6\u5305
-doclet.Notice_taglet_registered=\u6ce8\u518c\u7684 Taglet {0}...
-doclet.Notice_taglet_unseen=\u6ce8\u610f\uff1a\u672a\u627e\u5230\u7684\u81ea\u5b9a\u4e49\u6807\u8bb0\uff1a {0}
-doclet.Notice_taglet_overriden=\u6ce8\u610f\uff1a\u8986\u76d6\u6807\u51c6\u6807\u8bb0\u7684\u81ea\u5b9a\u4e49\u6807\u8bb0\uff1a {0}
-doclet.Notice_taglet_conflict_warn=\u6ce8\u610f\uff1a\u53ef\u80fd\u8986\u76d6\u5c06\u6765\u7684\u6807\u51c6\u6807\u8bb0\u7684\u81ea\u5b9a\u4e49\u6807\u8bb0\uff1a{0}\u3002\u4e3a\u4e86\u907f\u514d\u51fa\u73b0\u53ef\u80fd\u7684\u8986\u76d6\uff0c\u8bf7\u5728\u81ea\u5b9a\u4e49\u6807\u8bb0\u540d\u79f0\u4e2d\u81f3\u5c11\u4f7f\u7528\u4e00\u4e2a\u53e5\u70b9\u5b57\u7b26 (.)\u3002
-doclet.Error_taglet_not_registered=\u9519\u8bef - \u5c1d\u8bd5\u6ce8\u518c Taglet {1} \u65f6\u629b\u51fa\u5f02\u5e38 {0}...
-doclet.Error_invalid_custom_tag_argument=\u9519\u8bef - \u5bf9\u4e8e -tag \u9009\u9879\uff0c{0} \u662f\u65e0\u6548\u53c2\u6570...
-doclet.Author=\u4f5c\u8005\uff1a
-doclet.Default=\u9ed8\u8ba4\u503c\uff1a
-doclet.Parameters=\u53c2\u6570\uff1a
-doclet.TypeParameters=\u7c7b\u578b\u53c2\u6570\uff1a
-doclet.Parameters_warn=@param argument "{0}" \u4e0d\u662f\u53c2\u6570\u540d\u79f0\u3002
-doclet.Parameters_dup_warn=\u591a\u6b21\u5bf9\u53c2\u6570 "{0}" \u8fdb\u884c\u6587\u6863\u5316\u3002
-doclet.Type_Parameters_warn=@param argument "{0}" \u4e0d\u662f\u7c7b\u578b\u53c2\u6570\u540d\u79f0\u3002
-doclet.Type_Parameters_dup_warn=\u591a\u6b21\u5bf9\u7c7b\u578b\u53c2\u6570 "{0}" \u8fdb\u884c\u6587\u6863\u5316\u3002
-doclet.Returns=\u8fd4\u56de\uff1a
-doclet.Return_tag_on_void_method=\u4e0d\u80fd\u5728\u8fd4\u56de\u7c7b\u578b\u4e3a void \u7684\u65b9\u6cd5\u4e2d\u4f7f\u7528 @return \u6807\u8bb0\u3002
-doclet.See_Also=\u53e6\u8bf7\u53c2\u89c1\uff1a
-doclet.See=\u8bf7\u53c2\u89c1\uff1a
-doclet.SerialData=\u5e8f\u5217\u6570\u636e\uff1a
-doclet.Since=\u4ece\u4ee5\u4e0b\u7248\u672c\u5f00\u59cb\uff1a
-doclet.Throws=\u629b\u51fa\uff1a
-doclet.Version=\u7248\u672c\uff1a
-doclet.Factory=\u5de5\u5382\uff1a
-doclet.UnknownTag={0} \u662f\u672a\u77e5\u6807\u8bb0\u3002
-doclet.UnknownTagLowercase={0} \u662f\u672a\u77e5\u6807\u8bb0 - \u9664\u4e86\u5927\u5c0f\u5199\u4e4b\u5916\u5176\u4ed6\u65b9\u9762\u4e0e\u5df2\u77e5\u6807\u8bb0\u76f8\u540c\u3002
-doclet.noInheritedDoc=\u4f7f\u7528\u4e86 @inheritDoc\uff0c\u4f46 {0} \u672a\u8986\u76d6\u6216\u5b9e\u73b0\u4efb\u4f55\u65b9\u6cd5\u3002
-doclet.malformed_html_link_tag=<a> \u6807\u8bb0\u4e0d\u89c4\u5219\uff1a\n"{0}"
-doclet.tag_misuse=\u4e0d\u80fd\u5728 {1} \u6587\u6863\u4e2d\u4f7f\u7528\u6807\u8bb0 {0}\u3002\u53ea\u80fd\u5728\u4ee5\u4e0b\u7c7b\u578b\u7684\u6587\u6863\u4e2d\u4f7f\u7528\u8be5\u6807\u8bb0\uff1a{2}\u3002
-doclet.Package_Summary=\u8f6f\u4ef6\u5305\u6458\u8981
-doclet.Interface_Summary=\u63a5\u53e3\u6458\u8981
-doclet.Annotation_Types_Summary=\u6ce8\u91ca\u7c7b\u578b\u6458\u8981
-doclet.Enum_Summary=\u679a\u4e3e\u6458\u8981
-doclet.Exception_Summary=\u5f02\u5e38\u6458\u8981
-doclet.Error_Summary=\u9519\u8bef\u6458\u8981
-doclet.Class_Summary=\u7c7b\u6458\u8981
-doclet.Nested_Class_Summary=\u5d4c\u5957\u7c7b\u6458\u8981
-doclet.Annotation_Type_Optional_Member_Summary=\u53ef\u9009\u5143\u7d20\u6458\u8981
-doclet.Annotation_Type_Required_Member_Summary=\u5fc5\u9700\u5143\u7d20\u6458\u8981
-doclet.Field_Summary=\u5b57\u6bb5\u6458\u8981
-doclet.Enum_Constant_Summary=\u679a\u4e3e\u5e38\u91cf\u6458\u8981
-doclet.Constructor_Summary=\u6784\u9020\u65b9\u6cd5\u6458\u8981
-doclet.Method_Summary=\u65b9\u6cd5\u6458\u8981
-doclet.Factory_Method_Summary=\u9759\u6001\u5de5\u5382\u65b9\u6cd5\u6458\u8981
-doclet.Interfaces=\u63a5\u53e3
-doclet.Enums=\u679a\u4e3e
-doclet.AnnotationTypes=\u6ce8\u91ca\u7c7b\u578b
-doclet.Exceptions=\u5f02\u5e38
-doclet.Errors=\u9519\u8bef
-doclet.Classes=\u7c7b
-doclet.Packages=\u8f6f\u4ef6\u5305
-doclet.packages=\u8f6f\u4ef6\u5305
-doclet.All_Classes=\u6240\u6709\u7c7b
-doclet.All_Superinterfaces=\u6240\u6709\u8d85\u7ea7\u63a5\u53e3\uff1a
-doclet.All_Implemented_Interfaces=\u6240\u6709\u5df2\u5b9e\u73b0\u7684\u63a5\u53e3\uff1a
-doclet.All_classes_and_interfaces=\u6240\u6709\u7c7b\u548c\u63a5\u53e3\uff08\u9664\u4e86\u975e\u9759\u6001\u5d4c\u5957\u7c7b\u578b\uff09
-doclet.Package_class_and_interface_descriptions=\u8f6f\u4ef6\u5305\u3001\u7c7b\u548c\u63a5\u53e3\u63cf\u8ff0
+doclet.Generating_0=\u6B63\u5728\u751F\u6210{0}...
+doclet.Toolkit_Usage_Violation=\u53EA\u6709{0}\u53EF\u4EE5\u4F7F\u7528 Doclet \u5DE5\u5177\u7BB1
+doclet.MissingSerialTag=\u5728\u7C7B{0}\u4E2D, \u9ED8\u8BA4\u7684\u53EF\u5E8F\u5217\u5316\u5B57\u6BB5{1}\u7F3A\u5C11 @serial \u6807\u8BB0\u3002
+doclet.MissingSerialDataTag=\u5728\u7C7B{0}\u4E2D, \u65B9\u6CD5{1}\u4E2D\u7F3A\u5C11 @serialData \u6807\u8BB0\u3002
+doclet.Serializable_no_customization=\u672A\u58F0\u660E readObject \u6216 writeObject \u65B9\u6CD5\u3002
+doclet.Serialized_Form=\u5E8F\u5217\u5316\u8868\u683C
+doclet.Serialized_Form_methods=\u5E8F\u5217\u5316\u65B9\u6CD5
+doclet.Serialized_Form_fields=\u5E8F\u5217\u5316\u5B57\u6BB5
+doclet.Serialized_Form_class=\u5E8F\u5217\u5316\u6982\u89C8
+doclet.Class_0_implements_serializable=\u7C7B{0}\u5B9E\u73B0\u53EF\u5E8F\u5217\u5316
+doclet.Class_0_extends_implements_serializable=\u7C7B{0}\u6269\u5C55{1}\u5B9E\u73B0\u53EF\u5E8F\u5217\u5316
+doclet.Option_conflict=\u9009\u9879{0}\u4E0E{1}\u51B2\u7A81
+doclet.Option_reuse=\u91CD\u590D\u4F7F\u7528\u7684\u9009\u9879: {0}
+doclet.exception_encountered= \u5C1D\u8BD5\u521B\u5EFA\u6587\u4EF6{1}\u65F6 \n\t\u9047\u5230{0}
+doclet.perform_copy_exception_encountered= \u6267\u884C\u590D\u5236\u65F6 \n\u9047\u5230{0}\u3002
+doclet.File_not_found=\u627E\u4E0D\u5230\u6587\u4EF6: {0}
+doclet.Copy_Overwrite_warning=\u672A\u5C06\u6587\u4EF6{0}\u590D\u5236\u5230 {1}, \u56E0\u4E3A\u73B0\u6709\u6587\u4EF6\u5177\u6709\u76F8\u540C\u540D\u79F0...
+doclet.Copying_File_0_To_Dir_1=\u6B63\u5728\u5C06\u6587\u4EF6{0}\u590D\u5236\u5230\u76EE\u5F55 {1}...
+doclet.Copying_File_0_To_File_1=\u6B63\u5728\u5C06\u6587\u4EF6{0}\u590D\u5236\u5230\u6587\u4EF6{1}...
+doclet.No_Public_Classes_To_Document=\u627E\u4E0D\u5230\u53EF\u4EE5\u6587\u6863\u5316\u7684\u516C\u5171\u6216\u53D7\u4FDD\u62A4\u7684\u7C7B\u3002
+doclet.Unable_to_create_directory_0=\u65E0\u6CD5\u521B\u5EFA\u76EE\u5F55 {0}
+doclet.destination_directory_not_found_0=\u627E\u4E0D\u5230\u76EE\u6807\u76EE\u5F55 {0}
+doclet.destination_directory_not_directory_0=\u76EE\u6807\u76EE\u5F55\u4E0D\u662F\u76EE\u5F55 {0}
+doclet.destination_directory_not_writable_0=\u76EE\u6807\u76EE\u5F55\u4E0D\u53EF\u5199\u5165 {0}
+doclet.Error_creating_tmp_file=\u4F7F\u7528\u9ED8\u8BA4\u5E73\u53F0\u7F16\u7801\u521B\u5EFA\u4E34\u65F6\u6587\u4EF6\u65F6\u51FA\u9519\u3002
+doclet.Encoding_not_supported=\u4E0D\u652F\u6301\u7F16\u7801: {0}
+doclet.Building_Tree=\u6B63\u5728\u6784\u5EFA\u6240\u6709\u7A0B\u5E8F\u5305\u548C\u7C7B\u7684\u6811...
+doclet.Building_Index=\u6B63\u5728\u6784\u5EFA\u6240\u6709\u7A0B\u5E8F\u5305\u548C\u7C7B\u7684\u7D22\u5F15...
+doclet.Building_Index_For_All_Classes=\u6B63\u5728\u6784\u5EFA\u6240\u6709\u7C7B\u7684\u7D22\u5F15...
+doclet.sourcetab_warning=-sourcetab \u7684\u53C2\u6570\u5FC5\u987B\u662F\u5927\u4E8E 0 \u7684\u6574\u6570\u3002
+doclet.Packages=\u7A0B\u5E8F\u5305
+doclet.Other_Packages=\u5176\u4ED6\u7A0B\u5E8F\u5305
+doclet.Notice_taglet_registered=\u6CE8\u518C\u7684 Taglet {0}...
+doclet.Notice_taglet_unseen=\u6CE8: \u627E\u4E0D\u5230\u7684\u5B9A\u5236\u6807\u8BB0: {0}
+doclet.Notice_taglet_overriden=\u6CE8: \u8986\u76D6\u6807\u51C6\u6807\u8BB0\u7684\u5B9A\u5236\u6807\u8BB0: {0}
+doclet.Notice_taglet_conflict_warn=\u6CE8: \u53EF\u80FD\u8986\u76D6\u5C06\u6765\u7684\u6807\u51C6\u6807\u8BB0\u7684\u5B9A\u5236\u6807\u8BB0: {0}\u3002\u4E3A\u4E86\u907F\u514D\u51FA\u73B0\u53EF\u80FD\u7684\u8986\u76D6, \u8BF7\u5728\u5B9A\u5236\u6807\u8BB0\u540D\u79F0\u4E2D\u81F3\u5C11\u4F7F\u7528\u4E00\u4E2A\u53E5\u70B9\u5B57\u7B26 (.)\u3002
+doclet.Error_taglet_not_registered=\u9519\u8BEF - \u5C1D\u8BD5\u6CE8\u518C Taglet {1}\u65F6\u629B\u51FA\u5F02\u5E38\u9519\u8BEF{0}...
+doclet.Error_invalid_custom_tag_argument=\u9519\u8BEF - \u5BF9\u4E8E -tag \u9009\u9879, {0}\u662F\u65E0\u6548\u53C2\u6570...
+doclet.Author=\u4F5C\u8005:
+doclet.Default=\u9ED8\u8BA4\u503C:
+doclet.Parameters=\u53C2\u6570:
+doclet.TypeParameters=\u7C7B\u578B\u53C2\u6570:
+doclet.Parameters_warn=@param argument "{0}" \u4E0D\u662F\u53C2\u6570\u540D\u79F0\u3002
+doclet.Parameters_dup_warn=\u591A\u6B21\u5BF9\u53C2\u6570 "{0}" \u8FDB\u884C\u6587\u6863\u5316\u3002
+doclet.Type_Parameters_warn=@param argument "{0}" \u4E0D\u662F\u7C7B\u578B\u53C2\u6570\u540D\u79F0\u3002
+doclet.Type_Parameters_dup_warn=\u591A\u6B21\u5BF9\u7C7B\u578B\u53C2\u6570 "{0}" \u8FDB\u884C\u6587\u6863\u5316\u3002
+doclet.Returns=\u8FD4\u56DE:
+doclet.Return_tag_on_void_method=\u4E0D\u80FD\u5728\u8FD4\u56DE\u7C7B\u578B\u4E3A\u7A7A\u7684\u65B9\u6CD5\u4E2D\u4F7F\u7528 @return \u6807\u8BB0\u3002
+doclet.See_Also=\u53E6\u8BF7\u53C2\u9605:
+doclet.See=\u8BF7\u53C2\u9605:
+doclet.SerialData=\u5E8F\u5217\u6570\u636E:
+doclet.Since=\u4ECE\u4EE5\u4E0B\u7248\u672C\u5F00\u59CB:
+doclet.Throws=\u629B\u51FA:
+doclet.Version=\u7248\u672C:
+doclet.Factory=\u5DE5\u5382:
+doclet.UnknownTag={0}\u662F\u672A\u77E5\u6807\u8BB0\u3002
+doclet.UnknownTagLowercase={0}\u662F\u672A\u77E5\u6807\u8BB0 - \u9664\u4E86\u5927\u5C0F\u5199\u4E4B\u5916\u5176\u4ED6\u65B9\u9762\u4E0E\u5DF2\u77E5\u6807\u8BB0\u76F8\u540C\u3002
+doclet.noInheritedDoc=\u4F7F\u7528\u4E86 @inheritDoc, \u4F46{0}\u672A\u8986\u76D6\u6216\u5B9E\u73B0\u4EFB\u4F55\u65B9\u6CD5\u3002
+doclet.malformed_html_link_tag=<a> \u6807\u8BB0\u683C\u5F0F\u9519\u8BEF: \n"{0}"
+doclet.tag_misuse=\u4E0D\u80FD\u5728{1}\u6587\u6863\u4E2D\u4F7F\u7528\u6807\u8BB0{0}\u3002\u53EA\u80FD\u5728\u4EE5\u4E0B\u7C7B\u578B\u7684\u6587\u6863\u4E2D\u4F7F\u7528\u8BE5\u6807\u8BB0: {2}\u3002
+doclet.Package_Summary=\u7A0B\u5E8F\u5305\u6982\u8981
+doclet.Interface_Summary=\u63A5\u53E3\u6982\u8981
+doclet.Annotation_Types_Summary=\u6CE8\u91CA\u7C7B\u578B\u6982\u8981
+doclet.Enum_Summary=\u679A\u4E3E\u6982\u8981
+doclet.Exception_Summary=\u5F02\u5E38\u9519\u8BEF\u6982\u8981
+doclet.Error_Summary=\u9519\u8BEF\u6982\u8981
+doclet.Class_Summary=\u7C7B\u6982\u8981
+doclet.Nested_Class_Summary=\u5D4C\u5957\u7C7B\u6982\u8981
+doclet.Annotation_Type_Optional_Member_Summary=\u53EF\u9009\u5143\u7D20\u6982\u8981
+doclet.Annotation_Type_Required_Member_Summary=\u5FC5\u9700\u5143\u7D20\u6982\u8981
+doclet.Field_Summary=\u5B57\u6BB5\u6982\u8981
+doclet.Enum_Constant_Summary=\u679A\u4E3E\u5E38\u91CF\u6982\u8981
+doclet.Constructor_Summary=\u6784\u9020\u5668\u6982\u8981
+doclet.Method_Summary=\u65B9\u6CD5\u6982\u8981
+doclet.Factory_Method_Summary=\u9759\u6001\u5DE5\u5382\u65B9\u6CD5\u6982\u8981
+doclet.Interfaces=\u63A5\u53E3
+doclet.Enums=\u679A\u4E3E
+doclet.AnnotationTypes=\u6CE8\u91CA\u7C7B\u578B
+doclet.Exceptions=\u5F02\u5E38\u9519\u8BEF
+doclet.Errors=\u9519\u8BEF
+doclet.Classes=\u7C7B
+doclet.Packages=\u7A0B\u5E8F\u5305
+doclet.packages=\u7A0B\u5E8F\u5305
+doclet.All_Classes=\u6240\u6709\u7C7B
+doclet.All_Superinterfaces=\u6240\u6709\u8D85\u7EA7\u63A5\u53E3:
+doclet.All_Implemented_Interfaces=\u6240\u6709\u5DF2\u5B9E\u73B0\u7684\u63A5\u53E3:
+doclet.All_classes_and_interfaces=\u6240\u6709\u7C7B\u548C\u63A5\u53E3 (\u9664\u4E86\u975E\u9759\u6001\u5D4C\u5957\u7C7B\u578B)
+doclet.Package_class_and_interface_descriptions=\u7A0B\u5E8F\u5305, \u7C7B\u548C\u63A5\u53E3\u8BF4\u660E
 doclet.Members=\u6210\u5458
-doclet.Interface=\u63a5\u53e3
-doclet.Class=\u7c7b
-doclet.AnnotationType=\u6ce8\u91ca\u7c7b\u578b
-doclet.annotationtype=\u6ce8\u91ca\u7c7b\u578b
-doclet.annotationtypes=\u6ce8\u91ca\u7c7b\u578b
-doclet.Enum=\u679a\u4e3e
-doclet.enum=\u679a\u4e3e
-doclet.enums=\u679a\u4e3e
-doclet.interface=\u63a5\u53e3
-doclet.interfaces=\u63a5\u53e3
-doclet.class=\u7c7b
-doclet.classes=\u7c7b
-doclet.Error=\u9519\u8bef
-doclet.error=\u9519\u8bef
-doclet.errors=\u9519\u8bef
-doclet.Exception=\u5f02\u5e38
-doclet.exception=\u5f02\u5e38
-doclet.exceptions=\u5f02\u5e38
-doclet.extended_by=\u7ee7\u627f\u8005
-doclet.extends=\u7ee7\u627f
-doclet.Package_private=\uff08\u4e13\u7528\u8f6f\u4ef6\u5305\uff09
-doclet.implements=implementsdoclet.Same_package_name_used=\u8f6f\u4ef6\u5305\u540d\u79f0\u5f62\u5f0f\u4f7f\u7528\u4e86\u4e24\u6b21\uff1a {0}
-doclet.Nested_Classes_Interfaces_Inherited_From_Class=\u4ece\u7c7b {0} \u7ee7\u627f\u7684\u5d4c\u5957\u7c7b/\u63a5\u53e3
-doclet.Nested_Classes_Interface_Inherited_From_Interface=\u4ece\u63a5\u53e3 {0} \u7ee7\u627f\u7684\u5d4c\u5957\u7c7b/\u63a5\u53e3
-doclet.Methods_Inherited_From_Class=\u4ece\u7c7b {0} \u7ee7\u627f\u7684\u65b9\u6cd5
-doclet.Methods_Inherited_From_Interface=\u4ece\u63a5\u53e3 {0} \u7ee7\u627f\u7684\u65b9\u6cd5
-doclet.Fields_Inherited_From_Class=\u4ece\u7c7b {0} \u7ee7\u627f\u7684\u5b57\u6bb5
-doclet.Fields_Inherited_From_Interface=\u4ece\u63a5\u53e3 {0} \u7ee7\u627f\u7684\u5b57\u6bb5
-doclet.Serializable=Serializable
-doclet.Externalizable=Externalizable
-doclet.Annotation_Type_Member_Detail=\u5143\u7d20\u8be6\u7ec6\u4fe1\u606f
-doclet.Enum_Constant_Detail=\u679a\u4e3e\u5e38\u91cf\u8be6\u7ec6\u4fe1\u606f
-doclet.Constants_Summary=\u5e38\u91cf\u5b57\u6bb5\u503c
-doclet.Field_Detail=\u5b57\u6bb5\u8be6\u7ec6\u4fe1\u606f
-doclet.Method_Detail=\u65b9\u6cd5\u8be6\u7ec6\u4fe1\u606f
-doclet.Constructor_Detail=\u6784\u9020\u65b9\u6cd5\u8be6\u7ec6\u4fe1\u606f
-doclet.Deprecated=\u5df2\u8fc7\u65f6\u3002
-doclet.Deprecated_class=\u8be5\u7c7b\u5df2\u8fc7\u65f6\u3002
-doclet.Groupname_already_used=\u5728 -group \u9009\u9879\u4e2d\uff0cgroupname \u5df2\u4f7f\u7528\uff1a {0}
-doclet.value_tag_invalid_reference={0}\uff08\u7531 @value \u6807\u8bb0\u5f15\u7528\uff09\u4e3a\u672a\u77e5\u5f15\u7528\u3002
-doclet.value_tag_invalid_constant=@value \u6807\u8bb0\uff08\u5f15\u7528 {0}\uff09\u53ea\u80fd\u5728\u5e38\u91cf\u4e2d\u4f7f\u7528\u3002
-doclet.dest_dir_create=\u6b63\u5728\u521b\u5efa\u76ee\u6807\u76ee\u5f55\uff1a "{0}"
-doclet.in={1} \u4e2d\u7684 {0}
-doclet.Use_Table_Summary=\u4f7f\u7528\u8868\u683c\uff0c\u5217\u51fa {0} \u548c\u8bf4\u660e
-doclet.Constants_Table_Summary={0} \u8868\u683c\uff0c\u5217\u51fa\u5e38\u91cf\u5b57\u6bb5\u548c\u503c
-doclet.Member_Table_Summary={0} \u8868\u683c\uff0c\u5217\u51fa {1} \u548c\u8bf4\u660e
-doclet.fields=\u5b57\u6bb5
-doclet.constructors=\u6784\u9020\u51fd\u6570
-doclet.methods=\u65b9\u6cd5
-doclet.annotation_type_optional_members=\u53ef\u9009\u5143\u7d20
-doclet.annotation_type_required_members=\u5fc5\u9700\u5143\u7d20
-doclet.enum_constants=\u679a\u4e3e\u5e38\u91cf
-doclet.nested_classes=\u5d4c\u5957\u7c7b
-doclet.subclasses=\u5b50\u7c7b
-doclet.subinterfaces=\u5b50\u63a5\u53e3
-doclet.Modifier=\u4fee\u9970\u7b26
-doclet.Type=\u7c7b\u578b
-doclet.Field=\u5b57\u6bb5
-doclet.Constructor=\u6784\u9020\u51fd\u6570
-doclet.Method=\u65b9\u6cd5
-doclet.Annotation_Type_Optional_Member=\u53ef\u9009\u5143\u7d20
-doclet.Annotation_Type_Required_Member=\u5fc5\u9700\u5143\u7d20
-doclet.Annotation_Type_Member=\u6ce8\u91ca\u7c7b\u578b\u5143\u7d20
-doclet.Enum_Constant=\u679a\u4e3e\u5e38\u91cf
-doclet.Class=\u7c7b
-doclet.Description=\u63cf\u8ff0
-doclet.ConstantField=\u5e38\u91cf\u5b57\u6bb5
-doclet.Value=\u503c
-doclet.0_and_1={0} \u548c {1}
+doclet.Interface=\u63A5\u53E3
+doclet.Class=\u7C7B
+doclet.AnnotationType=\u6CE8\u91CA\u7C7B\u578B
+doclet.annotationtype=\u6CE8\u91CA\u7C7B\u578B
+doclet.annotationtypes=\u6CE8\u91CA\u7C7B\u578B
+doclet.Enum=\u679A\u4E3E
+doclet.enum=\u679A\u4E3E
+doclet.enums=\u679A\u4E3E
+doclet.interface=\u63A5\u53E3
+doclet.interfaces=\u63A5\u53E3
+doclet.class=\u7C7B
+doclet.classes=\u7C7B
+doclet.Error=\u9519\u8BEF
+doclet.error=\u9519\u8BEF
+doclet.errors=\u9519\u8BEF
+doclet.Exception=\u5F02\u5E38\u9519\u8BEF
+doclet.exception=\u5F02\u5E38\u9519\u8BEF
+doclet.exceptions=\u5F02\u5E38\u9519\u8BEF
+doclet.extended_by=\u6269\u5C55\u8005
+doclet.extends=\u6269\u5C55
+doclet.Package_private=(\u4E13\u7528\u7A0B\u5E8F\u5305)
+doclet.implements=implementsdoclet.Same_package_name_used=\u7A0B\u5E8F\u5305\u540D\u79F0\u5F62\u5F0F\u4F7F\u7528\u4E86\u4E24\u6B21: {0}
+doclet.Nested_Classes_Interfaces_Inherited_From_Class=\u4ECE\u7C7B{0}\u7EE7\u627F\u7684\u5D4C\u5957\u7C7B/\u63A5\u53E3
+doclet.Nested_Classes_Interface_Inherited_From_Interface=\u4ECE\u63A5\u53E3{0}\u7EE7\u627F\u7684\u5D4C\u5957\u7C7B/\u63A5\u53E3
+doclet.Methods_Inherited_From_Class=\u4ECE\u7C7B{0}\u7EE7\u627F\u7684\u65B9\u6CD5
+doclet.Methods_Inherited_From_Interface=\u4ECE\u63A5\u53E3{0}\u7EE7\u627F\u7684\u65B9\u6CD5
+doclet.Fields_Inherited_From_Class=\u4ECE\u7C7B{0}\u7EE7\u627F\u7684\u5B57\u6BB5
+doclet.Fields_Inherited_From_Interface=\u4ECE\u63A5\u53E3{0}\u7EE7\u627F\u7684\u5B57\u6BB5
+doclet.Serializable=\u53EF\u5E8F\u5217\u5316
+doclet.Externalizable=\u53EF\u5916\u90E8\u5316
+doclet.Annotation_Type_Member_Detail=\u5143\u7D20\u8BE6\u7EC6\u8D44\u6599
+doclet.Enum_Constant_Detail=\u679A\u4E3E\u5E38\u91CF\u8BE6\u7EC6\u8D44\u6599
+doclet.Constants_Summary=\u5E38\u91CF\u5B57\u6BB5\u503C
+doclet.Field_Detail=\u5B57\u6BB5\u8BE6\u7EC6\u8D44\u6599
+doclet.Method_Detail=\u65B9\u6CD5\u8BE6\u7EC6\u8D44\u6599
+doclet.Constructor_Detail=\u6784\u9020\u5668\u8BE6\u7EC6\u8D44\u6599
+doclet.Deprecated=\u5DF2\u8FC7\u65F6\u3002
+doclet.Deprecated_class=\u8BE5\u7C7B\u5DF2\u8FC7\u65F6\u3002
+doclet.Groupname_already_used=\u5728 -group \u9009\u9879\u4E2D, groupname \u5DF2\u4F7F\u7528: {0}
+doclet.value_tag_invalid_reference={0} (\u7531 @value \u6807\u8BB0\u5F15\u7528) \u4E3A\u672A\u77E5\u5F15\u7528\u3002
+doclet.value_tag_invalid_constant=@value \u6807\u8BB0 (\u5F15\u7528{0}) \u53EA\u80FD\u5728\u5E38\u91CF\u4E2D\u4F7F\u7528\u3002
+doclet.dest_dir_create=\u6B63\u5728\u521B\u5EFA\u76EE\u6807\u76EE\u5F55: "{0}"
+doclet.in={1}\u4E2D\u7684{0}
+doclet.Use_Table_Summary=\u4F7F\u7528\u8868, \u5217\u8868{0}\u548C\u89E3\u91CA
+doclet.Constants_Table_Summary={0}\u8868, \u5217\u8868\u5E38\u91CF\u5B57\u6BB5\u548C\u503C
+doclet.Member_Table_Summary={0}\u8868, \u5217\u8868{1}\u548C\u89E3\u91CA
+doclet.fields=\u5B57\u6BB5
+doclet.constructors=\u6784\u9020\u5668
+doclet.methods=\u65B9\u6CD5
+doclet.annotation_type_optional_members=\u53EF\u9009\u5143\u7D20
+doclet.annotation_type_required_members=\u5FC5\u9700\u7684\u5143\u7D20
+doclet.enum_constants=\u679A\u4E3E\u5E38\u91CF
+doclet.nested_classes=\u5D4C\u5957\u7C7B
+doclet.subclasses=\u5B50\u7C7B
+doclet.subinterfaces=\u5B50\u63A5\u53E3
+doclet.Modifier=\u9650\u5B9A\u7B26
+doclet.Type=\u7C7B\u578B
+doclet.Field=\u5B57\u6BB5
+doclet.Constructor=\u6784\u9020\u5668
+doclet.Method=\u65B9\u6CD5
+doclet.Annotation_Type_Optional_Member=\u53EF\u9009\u5143\u7D20
+doclet.Annotation_Type_Required_Member=\u5FC5\u9700\u7684\u5143\u7D20
+doclet.Annotation_Type_Member=\u6CE8\u91CA\u7C7B\u578B\u5143\u7D20
+doclet.Enum_Constant=\u679A\u4E3E\u5E38\u91CF
+doclet.Class=\u7C7B
+doclet.Description=\u8BF4\u660E
+doclet.ConstantField=\u5E38\u91CF\u5B57\u6BB5
+doclet.Value=\u503C
+doclet.0_and_1={0}\u548C{1}
 
 #Documentation for Enums
-doclet.enum_values_doc=\n\u6309\u7167\u58f0\u660e\u8be5\u679a\u4e3e\u7c7b\u578b\u7684\u5e38\u91cf\u7684\u987a\u5e8f\uff0c\u8fd4\u56de\n\u5305\u542b\u8fd9\u4e9b\u5e38\u91cf\u7684\u6570\u7ec4\u3002\u8be5\u65b9\u6cd5\u53ef\u7528\u4e8e\u8fed\u4ee3\n\u5e38\u91cf\uff0c\u5982\u4e0b\u6240\u793a\uff1a\n<pre>\nfor ({0} c : {0}.values())\n&nbsp;   System.out.println(c);\n</pre>\n@\u6309\u7167\u58f0\u660e\u8be5\u679a\u4e3e\u7c7b\u578b\u7684\u5e38\u91cf\u7684\u987a\u5e8f\uff0c\u8fd4\u56de\n\u5305\u542b\u8fd9\u4e9b\u5e38\u91cf\u7684\u6570\u7ec4
+doclet.enum_values_doc=\n\u6309\u7167\u58F0\u660E\u8BE5\u679A\u4E3E\u7C7B\u578B\u7684\u5E38\u91CF\u7684\u987A\u5E8F, \u8FD4\u56DE\n\u5305\u542B\u8FD9\u4E9B\u5E38\u91CF\u7684\u6570\u7EC4\u3002\u8BE5\u65B9\u6CD5\u53EF\u7528\u4E8E\u8FED\u4EE3\n\u5E38\u91CF, \u5982\u4E0B\u6240\u793A:\n<pre>\nfor ({0} c : {0}.values())\n&nbsp;   System.out.println(c);\n</pre>\n@\u6309\u7167\u58F0\u660E\u8BE5\u679A\u4E3E\u7C7B\u578B\u7684\u5E38\u91CF\u7684\u987A\u5E8F, \u8FD4\u56DE\n\u5305\u542B\u8FD9\u4E9B\u5E38\u91CF\u7684\u6570\u7EC4
 
-doclet.enum_valueof_doc=\n\u8fd4\u56de\u5e26\u6709\u6307\u5b9a\u540d\u79f0\u7684\u8be5\u7c7b\u578b\u7684\u679a\u4e3e\u5e38\u91cf\u3002\n\u5b57\u7b26\u4e32\u5fc5\u987b\u4e0e\u7528\u4e8e\u58f0\u660e\u8be5\u7c7b\u578b\u7684\u679a\u4e3e\u5e38\u91cf\u7684\n\u6807\u8bc6\u7b26<I>\u5b8c\u5168</I>\u5339\u914d\u3002\uff08\u4e0d\u5141\u8bb8\u6709\u591a\u4f59\n\u7684\u7a7a\u683c\u3002\uff09\n\n@param name \u8981\u8fd4\u56de\u7684\u679a\u4e3e\u5e38\u91cf\u7684\u540d\u79f0\u3002\n@return \u8fd4\u56de\u5e26\u6709\u6307\u5b9a\u540d\u79f0\u7684\u679a\u4e3e\u5e38\u91cf\n@throws \u5982\u679c\u8be5\u679a\u4e3e\u7c7b\u578b\u6ca1\u6709\u5e26\u6709\u6307\u5b9a\u540d\u79f0\u7684\u5e38\u91cf\uff0c\n\u5219\u629b\u51fa IllegalArgumentException
+doclet.enum_valueof_doc=\n\u8FD4\u56DE\u5E26\u6709\u6307\u5B9A\u540D\u79F0\u7684\u8BE5\u7C7B\u578B\u7684\u679A\u4E3E\u5E38\u91CF\u3002\n\u5B57\u7B26\u4E32\u5FC5\u987B\u4E0E\u7528\u4E8E\u58F0\u660E\u8BE5\u7C7B\u578B\u7684\u679A\u4E3E\u5E38\u91CF\u7684\n\u6807\u8BC6\u7B26<I>\u5B8C\u5168</I>\u5339\u914D\u3002(\u4E0D\u5141\u8BB8\u6709\u591A\u4F59\n\u7684\u7A7A\u683C\u5B57\u7B26\u3002)\n\n@param name \u8981\u8FD4\u56DE\u7684\u679A\u4E3E\u5E38\u91CF\u7684\u540D\u79F0\u3002\n@return \u8FD4\u56DE\u5E26\u6709\u6307\u5B9A\u540D\u79F0\u7684\u679A\u4E3E\u5E38\u91CF\n@throws \u5982\u679C\u8BE5\u679A\u4E3E\u7C7B\u578B\u6CA1\u6709\u5E26\u6709\u6307\u5B9A\u540D\u79F0\u7684\u5E38\u91CF, \n\u5219\u629B\u51FA IllegalArgumentException\n@throws \u5982\u679C\u53C2\u6570\u4E3A\u7A7A\u503C, \u5219\u629B\u51FA NullPointerException\u3002
--- a/src/share/classes/com/sun/tools/javac/Main.java	Wed Feb 23 16:39:34 2011 -0500
+++ b/src/share/classes/com/sun/tools/javac/Main.java	Thu Mar 10 18:42:31 2011 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -43,12 +43,6 @@
  */
 public class Main {
 
-    static {
-        ClassLoader loader = Main.class.getClassLoader();
-        if (loader != null)
-            loader.setPackageAssertionStatus("com.sun.tools.javac", true);
-    }
-
     /** Unsupported command line interface.
      * @param args   The command line parameters.
      */
--- a/src/share/classes/com/sun/tools/javac/code/Attribute.java	Wed Feb 23 16:39:34 2011 -0500
+++ b/src/share/classes/com/sun/tools/javac/code/Attribute.java	Thu Mar 10 18:42:31 2011 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -204,21 +204,6 @@
         }
     }
 
-    public static class TypeCompound extends Compound {
-        public TypeAnnotationPosition position;
-        public TypeCompound(Compound compound,
-                TypeAnnotationPosition position) {
-            this(compound.type, compound.values, position);
-        }
-        public TypeCompound(Type type,
-                List<Pair<MethodSymbol, Attribute>> values,
-                TypeAnnotationPosition position) {
-            super(type, values);
-            this.position = position;
-        }
-
-    }
-
     /** The value for an annotation element of an array type.
      */
     public static class Array extends Attribute {
@@ -255,8 +240,7 @@
         public VarSymbol value;
         public Enum(Type type, VarSymbol value) {
             super(type);
-            assert value != null;
-            this.value = value;
+            this.value = Assert.checkNonNull(value);
         }
         public void accept(Visitor v) { v.visitEnum(this); }
         public String toString() {
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/share/classes/com/sun/tools/javac/code/DeferredLintHandler.java	Thu Mar 10 18:42:31 2011 -0500
@@ -0,0 +1,95 @@
+/*
+ * 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.  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.tools.javac.code;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import com.sun.tools.javac.util.Assert;
+import com.sun.tools.javac.util.Context;
+import com.sun.tools.javac.util.ListBuffer;
+import com.sun.tools.javac.util.JCDiagnostic.DiagnosticPosition;
+
+/**
+ *
+ * <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.
+ * This code and its internal interfaces are subject to change or
+ * deletion without notice.</b>
+ */
+public class DeferredLintHandler {
+    protected static final Context.Key<DeferredLintHandler> deferredLintHandlerKey =
+        new Context.Key<DeferredLintHandler>();
+
+    public static DeferredLintHandler instance(Context context) {
+        DeferredLintHandler instance = context.get(deferredLintHandlerKey);
+        if (instance == null)
+            instance = new DeferredLintHandler(context);
+        return instance;
+    }
+
+    protected DeferredLintHandler(Context context) {
+        context.put(deferredLintHandlerKey, this);
+    }
+
+    private DeferredLintHandler() {}
+
+    public interface LintLogger {
+        void report();
+    }
+
+    private DiagnosticPosition currentPos;
+    private Map<DiagnosticPosition, ListBuffer<LintLogger>> loggersQueue = new HashMap<DiagnosticPosition, ListBuffer<LintLogger>>();
+
+    public void report(LintLogger logger) {
+        ListBuffer<LintLogger> loggers = loggersQueue.get(currentPos);
+        Assert.checkNonNull(loggers);
+        loggers.append(logger);
+    }
+
+    public void flush(DiagnosticPosition pos) {
+        ListBuffer<LintLogger> loggers = loggersQueue.get(pos);
+        if (loggers != null) {
+            for (LintLogger lintLogger : loggers) {
+                lintLogger.report();
+            }
+            loggersQueue.remove(pos);
+        }
+    }
+
+    public DeferredLintHandler setPos(DiagnosticPosition currentPos) {
+        this.currentPos = currentPos;
+        loggersQueue.put(currentPos, ListBuffer.<LintLogger>lb());
+        return this;
+    }
+
+    public static final DeferredLintHandler immediateHandler = new DeferredLintHandler() {
+        @Override
+        public void report(LintLogger logger) {
+            logger.report();
+        }
+    };
+}
--- a/src/share/classes/com/sun/tools/javac/code/Flags.java	Wed Feb 23 16:39:34 2011 -0500
+++ b/src/share/classes/com/sun/tools/javac/code/Flags.java	Thu Mar 10 18:42:31 2011 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -254,7 +254,7 @@
 
     /**
      * Flag that marks a signature-polymorphic invoke method.
-     * (These occur inside java.dyn.MethodHandle.)
+     * (These occur inside java.lang.invoke.MethodHandle.)
      */
     public static final long POLYMORPHIC_SIGNATURE = 1L<<43;
 
@@ -279,6 +279,11 @@
      */
     public static final long OVERRIDE_BRIDGE = 1L<<47;
 
+    /**
+     * Flag that marks non-override equivalent methods with the same signature
+     */
+    public static final long CLASH = 1L<<43;
+
     /** Modifier masks.
      */
     public static final int
--- a/src/share/classes/com/sun/tools/javac/code/Printer.java	Wed Feb 23 16:39:34 2011 -0500
+++ b/src/share/classes/com/sun/tools/javac/code/Printer.java	Thu Mar 10 18:42:31 2011 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 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
@@ -106,7 +106,7 @@
     }
 
     /**
-     * * Get a localized string represenation for all the symbols in the input list.
+     * * Get a localized string representation for all the symbols in the input list.
      *
      * @param ts symbols to be displayed
      * @param locale the locale in which the string is to be rendered
--- a/src/share/classes/com/sun/tools/javac/code/Scope.java	Wed Feb 23 16:39:34 2011 -0500
+++ b/src/share/classes/com/sun/tools/javac/code/Scope.java	Thu Mar 10 18:42:31 2011 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -72,49 +72,10 @@
      */
     int nelems = 0;
 
-    /** A timestamp - useful to quickly check whether a scope has changed or not
-     */
-    public ScopeCounter scopeCounter;
-
-    static ScopeCounter dummyCounter = new ScopeCounter() {
-        @Override
-        public void inc() {
-            //do nothing
-        }
-    };
-
     /** A list of scopes to be notified if items are to be removed from this scope.
      */
     List<Scope> listeners = List.nil();
 
-    public static class ScopeCounter {
-        protected static final Context.Key<ScopeCounter> scopeCounterKey =
-            new Context.Key<ScopeCounter>();
-
-        public static ScopeCounter instance(Context context) {
-            ScopeCounter instance = context.get(scopeCounterKey);
-            if (instance == null)
-                instance = new ScopeCounter(context);
-            return instance;
-        }
-
-        protected ScopeCounter(Context context) {
-            context.put(scopeCounterKey, this);
-        }
-
-        private ScopeCounter() {};
-
-        private long val = 0;
-
-        public void inc() {
-            val++;
-        }
-
-        public long val() {
-            return val;
-        }
-    }
-
     /** Use as a "not-found" result for lookup.
      * Also used to mark deleted entries in the table.
      */
@@ -126,35 +87,30 @@
 
     /** A value for the empty scope.
      */
-    public static final Scope emptyScope = new Scope(null, null, new Entry[]{}, dummyCounter);
+    public static final Scope emptyScope = new Scope(null, null, new Entry[]{});
 
     /** Construct a new scope, within scope next, with given owner, using
      *  given table. The table's length must be an exponent of 2.
      */
-    private Scope(Scope next, Symbol owner, Entry[] table, ScopeCounter scopeCounter) {
+    private Scope(Scope next, Symbol owner, Entry[] table) {
         this.next = next;
-        assert emptyScope == null || owner != null;
+        Assert.check(emptyScope == null || owner != null);
         this.owner = owner;
         this.table = table;
         this.hashMask = table.length - 1;
-        this.scopeCounter = scopeCounter;
     }
 
     /** Convenience constructor used for dup and dupUnshared. */
-    private Scope(Scope next, Symbol owner, Entry[] table) {
-        this(next, owner, table, next.scopeCounter);
-        this.nelems = next.nelems;
+    private Scope(Scope next, Symbol owner, Entry[] table, int nelems) {
+        this(next, owner, table);
+        this.nelems = nelems;
     }
 
     /** Construct a new scope, within scope next, with given owner,
      *  using a fresh table of length INITIAL_SIZE.
      */
     public Scope(Symbol owner) {
-        this(owner, dummyCounter);
-    }
-
-    protected Scope(Symbol owner, ScopeCounter scopeCounter) {
-        this(null, owner, new Entry[INITIAL_SIZE], scopeCounter);
+        this(null, owner, new Entry[INITIAL_SIZE]);
     }
 
     /** Construct a fresh scope within this scope, with same owner,
@@ -172,7 +128,7 @@
      *  of fresh tables.
      */
     public Scope dup(Symbol newOwner) {
-        Scope result = new Scope(this, newOwner, this.table);
+        Scope result = new Scope(this, newOwner, this.table, this.nelems);
         shared++;
         // System.out.println("====> duping scope " + this.hashCode() + " owned by " + newOwner + " to " + result.hashCode());
         // new Error().printStackTrace(System.out);
@@ -184,23 +140,23 @@
      *  the table of its outer scope.
      */
     public Scope dupUnshared() {
-        return new Scope(this, this.owner, this.table.clone());
+        return new Scope(this, this.owner, this.table.clone(), this.nelems);
     }
 
     /** Remove all entries of this scope from its table, if shared
      *  with next.
      */
     public Scope leave() {
-        assert shared == 0;
+        Assert.check(shared == 0);
         if (table != next.table) return next;
         while (elems != null) {
             int hash = getIndex(elems.sym.name);
             Entry e = table[hash];
-            assert e == elems : elems.sym;
+            Assert.check(e == elems, elems.sym);
             table[hash] = elems.shadowed;
             elems = elems.sibling;
         }
-        assert next.shared > 0;
+        Assert.check(next.shared > 0);
         next.shared--;
         next.nelems = nelems;
         // System.out.println("====> leaving scope " + this.hashCode() + " owned by " + this.owner + " to " + next.hashCode());
@@ -211,12 +167,12 @@
     /** Double size of hash table.
      */
     private void dble() {
-        assert shared == 0;
+        Assert.check(shared == 0);
         Entry[] oldtable = table;
         Entry[] newtable = new Entry[oldtable.length * 2];
         for (Scope s = this; s != null; s = s.next) {
             if (s.table == oldtable) {
-                assert s == this || s.shared != 0;
+                Assert.check(s == this || s.shared != 0);
                 s.table = newtable;
                 s.hashMask = newtable.length - 1;
             }
@@ -237,7 +193,7 @@
     /** Enter symbol sym in this scope.
      */
     public void enter(Symbol sym) {
-        assert shared == 0;
+        Assert.check(shared == 0);
         enter(sym, this);
     }
 
@@ -251,7 +207,7 @@
      * arguments are only used in import scopes.
      */
     public void enter(Symbol sym, Scope s, Scope origin) {
-        assert shared == 0;
+        Assert.check(shared == 0);
         if (nelems * 3 >= hashMask * 2)
             dble();
         int hash = getIndex(sym.name);
@@ -263,7 +219,6 @@
         Entry e = makeEntry(sym, old, elems, s, origin);
         table[hash] = e;
         elems = e;
-        scopeCounter.inc();
     }
 
     Entry makeEntry(Symbol sym, Entry shadowed, Entry sibling, Scope scope, Scope origin) {
@@ -274,12 +229,10 @@
      *  attribute tells us that the class isn't a package member.
      */
     public void remove(Symbol sym) {
-        assert shared == 0;
+        Assert.check(shared == 0);
         Entry e = lookup(sym.name);
         if (e.scope == null) return;
 
-        scopeCounter.inc();
-
         // remove e from table and shadowed list;
         int i = getIndex(sym.name);
         Entry te = table[i];
@@ -314,7 +267,7 @@
     /** Enter symbol sym in this scope if not already there.
      */
     public void enterIfAbsent(Symbol sym) {
-        assert shared == 0;
+        Assert.check(shared == 0);
         Entry e = lookup(sym.name);
         while (e.scope == this && e.sym.kind != sym.kind) e = e.next();
         if (e.scope != this) enter(sym);
@@ -559,7 +512,7 @@
         public static final Entry[] emptyTable = new Entry[0];
 
         public DelegatedScope(Scope outer) {
-            super(outer, outer.owner, emptyTable, outer.scopeCounter);
+            super(outer, outer.owner, emptyTable);
             delegatee = outer;
         }
         public Scope dup() {
@@ -585,22 +538,10 @@
         }
     }
 
-    /** A class scope, for which a scope counter should be provided */
-    public static class ClassScope extends Scope {
-
-        ClassScope(Scope next, Symbol owner, Entry[] table, ScopeCounter scopeCounter) {
-            super(next, owner, table, scopeCounter);
-        }
-
-        public ClassScope(Symbol owner, ScopeCounter scopeCounter) {
-            super(owner, scopeCounter);
-        }
-    }
-
     /** An error scope, for which the owner should be an error symbol. */
     public static class ErrorScope extends Scope {
         ErrorScope(Scope next, Symbol errSymbol, Entry[] table) {
-            super(next, /*owner=*/errSymbol, table, dummyCounter);
+            super(next, /*owner=*/errSymbol, table);
         }
         public ErrorScope(Symbol errSymbol) {
             super(errSymbol);
--- a/src/share/classes/com/sun/tools/javac/code/Symbol.java	Wed Feb 23 16:39:34 2011 -0500
+++ b/src/share/classes/com/sun/tools/javac/code/Symbol.java	Thu Mar 10 18:42:31 2011 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -81,8 +81,7 @@
      *  method to make sure that the class symbol is loaded.
      */
     public List<Attribute.Compound> getAnnotationMirrors() {
-        assert attributes_field != null;
-        return attributes_field;
+        return Assert.checkNonNull(attributes_field);
     }
 
     /** Fetch a particular annotation from a symbol. */
@@ -100,17 +99,6 @@
      */
     public Type type;
 
-    /** The type annotations targeted to a tree directly owned by this symbol
-     */
-    // type annotations are stored here for two purposes:
-    //  - convenient location to store annotations for generation after erasure
-    //  - a private interface for accessing type annotations parsed from
-    //    classfiles
-    //  the field is populated for the following declaration only
-    //  class, field, variable and type parameters
-    //
-    public List<Attribute.TypeCompound> typeAnnotations;
-
     /** The owner of this symbol.
      */
     public Symbol owner;
@@ -133,7 +121,6 @@
         this.completer = null;
         this.erasure_field = null;
         this.attributes_field = List.nil();
-        this.typeAnnotations = List.nil();
         this.name = name;
     }
 
@@ -608,7 +595,7 @@
         }
 
         public <R, P> R accept(ElementVisitor<R, P> v, P p) {
-            assert type.tag == TYPEVAR; // else override will be invoked
+            Assert.check(type.tag == TYPEVAR); // else override will be invoked
             return v.visitTypeParameter(this, p);
         }
 
@@ -682,8 +669,7 @@
                 if (attributes_field.isEmpty())
                     attributes_field = package_info.attributes_field;
             }
-            assert attributes_field != null;
-            return attributes_field;
+            return Assert.checkNonNull(attributes_field);
         }
 
         /** A package "exists" if a type or package that exists has
@@ -743,6 +729,10 @@
          */
         public Pool pool;
 
+        /** members closure cache (set by Types.membersClosure)
+         */
+        Scope membersClosure;
+
         public ClassSymbol(long flags, Name name, Type type, Symbol owner) {
             super(flags, name, type, owner);
             this.members_field = null;
@@ -780,8 +770,7 @@
 
         public List<Attribute.Compound> getAnnotationMirrors() {
             if (completer != null) complete();
-            assert attributes_field != null;
-            return attributes_field;
+            return Assert.checkNonNull(attributes_field);
         }
 
         public Type erasure(Types types) {
@@ -976,22 +965,12 @@
         }
 
         public void setLazyConstValue(final Env<AttrContext> env,
-                                      final Log log,
                                       final Attr attr,
                                       final JCTree.JCExpression initializer)
         {
             setData(new Callable<Object>() {
                 public Object call() {
-                    JavaFileObject source = log.useSource(env.toplevel.sourcefile);
-                    try {
-                        Type itype = attr.attribExpr(initializer, env, type);
-                        if (itype.constValue() != null)
-                            return attr.coerce(itype, type).constValue();
-                        else
-                            return null;
-                    } finally {
-                        log.useSource(source);
-                    }
+                    return attr.attribLazyConstantValue(env, initializer, type);
                 }
             });
         }
@@ -1025,6 +1004,7 @@
                 try {
                     data = eval.call();
                 } catch (Exception ex) {
+                    ex.printStackTrace();
                     throw new AssertionError(ex);
                 }
             }
@@ -1032,7 +1012,7 @@
         }
 
         public void setData(Object data) {
-            assert !(data instanceof Env<?>) : this;
+            Assert.check(!(data instanceof Env<?>), this);
             this.data = data;
         }
 
@@ -1069,7 +1049,7 @@
          */
         public MethodSymbol(long flags, Name name, Type type, Symbol owner) {
             super(MTH, flags, name, type, owner);
-            assert owner.type.tag != TYPEVAR : owner + "." + name;
+            if (owner.type.tag == TYPEVAR) Assert.error(owner + "." + name);
         }
 
         /** Clone this symbol with new owner.
@@ -1256,7 +1236,7 @@
             };
 
         public MethodSymbol implementation(TypeSymbol origin, Types types, boolean checkResult, Filter<Symbol> implFilter) {
-            MethodSymbol res = types.implementation(this, origin, types, checkResult, implFilter);
+            MethodSymbol res = types.implementation(this, origin, checkResult, implFilter);
             if (res != null)
                 return res;
             // if origin is derived from a raw type, we might have missed
--- a/src/share/classes/com/sun/tools/javac/code/Symtab.java	Wed Feb 23 16:39:34 2011 -0500
+++ b/src/share/classes/com/sun/tools/javac/code/Symtab.java	Thu Mar 10 18:42:31 2011 -0500
@@ -74,7 +74,6 @@
     public final JCNoType voidType = new JCNoType(TypeTags.VOID);
 
     private final Names names;
-    private final Scope.ScopeCounter scopeCounter;
     private final ClassReader reader;
     private final Target target;
 
@@ -132,7 +131,6 @@
     public final Type methodTypeType;
     public final Type methodHandleLookupType;
     public final Type methodHandlesType;
-    public final Type invokeDynamicType;
     public final Type throwableType;
     public final Type errorType;
     public final Type illegalArgumentExceptionType;
@@ -159,7 +157,7 @@
     public final Type inheritedType;
     public final Type proprietaryType;
     public final Type systemType;
-	public final Type autoCloseableType;
+    public final Type autoCloseableType;
     public final Type trustMeType;
     public final Type proxyHelper;
     public final Type defenderMethodType;
@@ -294,6 +292,15 @@
         return reader.enterClass(names.fromString(s)).type;
     }
 
+    private Type enter292Class(String s) {
+        try {
+            return enterClass("java.dyn." + s);
+        } catch (CompletionFailure cf) {
+            return enterClass("java.lang.invoke." + s);
+        }
+    }
+
+
     public void synthesizeEmptyInterfaceIfMissing(final Type type) {
         final Completer completer = type.tsym.completer;
         if (completer != null) {
@@ -350,7 +357,6 @@
         context.put(symtabKey, this);
 
         names = Names.instance(context);
-        scopeCounter = Scope.ScopeCounter.instance(context);
         target = Target.instance(context);
 
         // Create the unknown type
@@ -400,7 +406,7 @@
 
         // Create class to hold all predefined constants and operations.
         predefClass = new ClassSymbol(PUBLIC|ACYCLIC, names.empty, rootPackage);
-        Scope scope = new Scope.ClassScope(predefClass, scopeCounter);
+        Scope scope = new Scope(predefClass);
         predefClass.members_field = scope;
 
         // Enter symbols for basic types.
@@ -431,12 +437,11 @@
         cloneableType = enterClass("java.lang.Cloneable");
         throwableType = enterClass("java.lang.Throwable");
         serializableType = enterClass("java.io.Serializable");
-        methodHandleType = enterClass("java.dyn.MethodHandle");
-        polymorphicSignatureType = enterClass("java.dyn.MethodHandle$PolymorphicSignature");
-        methodTypeType = enterClass("java.dyn.MethodType");
-        methodHandleLookupType = enterClass("java.dyn.MethodType.Lookup");
-        methodHandlesType = enterClass("java.dyn.MethodHandles");
-        invokeDynamicType = enterClass("java.dyn.InvokeDynamic");
+        methodHandleType = enter292Class("MethodHandle");
+        methodTypeType = enter292Class("MethodType");
+        methodHandlesType = enter292Class("MethodHandles");
+        methodHandleLookupType = enter292Class("MethodHandleLookup");
+        polymorphicSignatureType = enter292Class("MethodHandle$PolymorphicSignature");
         errorType = enterClass("java.lang.Error");
         illegalArgumentExceptionType = enterClass("java.lang.IllegalArgumentException");
         exceptionType = enterClass("java.lang.Exception");
@@ -496,7 +501,7 @@
         proprietarySymbol.completer = null;
         proprietarySymbol.flags_field = PUBLIC|ACYCLIC|ANNOTATION|INTERFACE;
         proprietarySymbol.erasure_field = proprietaryType;
-        proprietarySymbol.members_field = new Scope.ClassScope(proprietarySymbol, scopeCounter);
+        proprietarySymbol.members_field = new Scope(proprietarySymbol);
         proprietaryType.typarams_field = List.nil();
         proprietaryType.allparams_field = List.nil();
         proprietaryType.supertype_field = annotationType;
@@ -508,7 +513,7 @@
         ClassType arrayClassType = (ClassType)arrayClass.type;
         arrayClassType.supertype_field = objectType;
         arrayClassType.interfaces_field = List.of(cloneableType, serializableType);
-        arrayClass.members_field = new Scope.ClassScope(arrayClass, scopeCounter);
+        arrayClass.members_field = new Scope(arrayClass);
         lengthVar = new VarSymbol(
             PUBLIC | FINAL,
             names.length,
--- a/src/share/classes/com/sun/tools/javac/code/Type.java	Wed Feb 23 16:39:34 2011 -0500
+++ b/src/share/classes/com/sun/tools/javac/code/Type.java	Thu Mar 10 18:42:31 2011 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -142,7 +142,7 @@
      */
     public Type constType(Object constValue) {
         final Object value = constValue;
-        assert tag <= BOOLEAN;
+        Assert.check(tag <= BOOLEAN);
         return new Type(tag, tsym) {
                 @Override
                 public Object constValue() {
@@ -206,13 +206,13 @@
      * The constant value of this type, converted to String
      */
     public String stringValue() {
-        assert constValue() != null;
+        Object cv = Assert.checkNonNull(constValue());
         if (tag == BOOLEAN)
-            return ((Integer) constValue()).intValue() == 0 ? "false" : "true";
+            return ((Integer) cv).intValue() == 0 ? "false" : "true";
         else if (tag == CHAR)
-            return String.valueOf((char) ((Integer) constValue()).intValue());
+            return String.valueOf((char) ((Integer) cv).intValue());
         else
-            return constValue().toString();
+            return cv.toString();
     }
 
     /**
@@ -369,6 +369,16 @@
         return false;
     }
 
+    public static List<Type> filter(List<Type> ts, Filter<Type> tf) {
+        ListBuffer<Type> buf = ListBuffer.lb();
+        for (Type t : ts) {
+            if (tf.accepts(t)) {
+                buf.append(t);
+            }
+        }
+        return buf.toList();
+    }
+
     public boolean isSuperBound() { return false; }
     public boolean isExtendsBound() { return false; }
     public boolean isUnbound() { return false; }
@@ -432,9 +442,8 @@
 
         public WildcardType(Type type, BoundKind kind, TypeSymbol tsym) {
             super(WILDCARD, tsym);
-            assert(type != null);
+            this.type = Assert.checkNonNull(type);
             this.kind = kind;
-            this.type = type;
         }
         public WildcardType(WildcardType t, TypeVar bound) {
             this(t.type, t.kind, t.tsym, bound);
@@ -1161,9 +1170,8 @@
                             Type lower,
                             WildcardType wildcard) {
             super(name, owner, lower);
-            assert lower != null;
+            this.lower = Assert.checkNonNull(lower);
             this.bound = upper;
-            this.lower = lower;
             this.wildcard = wildcard;
         }
 
--- a/src/share/classes/com/sun/tools/javac/code/TypeAnnotations.java	Wed Feb 23 16:39:34 2011 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,403 +0,0 @@
-/*
- * Copyright (c) 2009, 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.tools.javac.code;
-
-import javax.lang.model.element.ElementKind;
-
-import com.sun.tools.javac.code.Symbol.VarSymbol;
-import com.sun.tools.javac.tree.JCTree;
-import com.sun.tools.javac.tree.TreeInfo;
-import com.sun.tools.javac.tree.TreeScanner;
-import com.sun.tools.javac.tree.JCTree.*;
-import com.sun.tools.javac.util.Context;
-import com.sun.tools.javac.util.List;
-import com.sun.tools.javac.util.ListBuffer;
-
-/**
- * Contains operations specific to processing type annotations
- */
-public class TypeAnnotations {
-    private static final Context.Key<TypeAnnotations> key
-        = new Context.Key<TypeAnnotations>();
-
-    public static TypeAnnotations instance(Context context) {
-        TypeAnnotations instance = context.get(key);
-        if (instance == null)
-            instance = new TypeAnnotations(context);
-        return instance;
-    }
-
-    protected TypeAnnotations(Context context) {
-        context.put(key, this);
-    }
-
-    public void taFillAndLift(JCClassDecl tree, boolean visitBodies) {
-//308        new TypeAnnotationPositions().scan(tree);
-//308        new TypeAnnotationLift().scan(tree);
-    }
-
-    private static class TypeAnnotationPositions extends TreeScanner {
-
-        private ListBuffer<JCTree> frames = ListBuffer.lb();
-        private void push(JCTree t) { frames = frames.prepend(t); }
-        private JCTree pop() { return frames.next(); }
-        private JCTree peek2() { return frames.toList().tail.head; }
-
-        @Override
-        public void scan(JCTree tree) {
-            push(tree);
-            super.scan(tree);
-            pop();
-        }
-
-        private boolean inClass = false;
-
-        @Override
-        public void visitClassDef(JCClassDecl tree) {
-           if (!inClass) {
-               // Do not recurse into nested and inner classes since
-               // TransTypes.visitClassDef makes an invocation for each class
-               // separately.
-               inClass = true;
-               try {
-                   super.visitClassDef(tree);
-               } finally {
-                   inClass = false;
-               }
-           }
-        }
-
-        private TypeAnnotationPosition resolveFrame(JCTree tree, JCTree frame,
-                List<JCTree> path, TypeAnnotationPosition p) {
-            switch (frame.getKind()) {
-                case TYPE_CAST:
-                    p.type = TargetType.TYPECAST;
-                    p.pos = frame.pos;
-                    return p;
-
-                case INSTANCE_OF:
-                    p.type = TargetType.INSTANCEOF;
-                    p.pos = frame.pos;
-                    return p;
-
-                case NEW_CLASS:
-                    p.type = TargetType.NEW;
-                    p.pos = frame.pos;
-                    return p;
-
-                case NEW_ARRAY:
-                    p.type = TargetType.NEW;
-                    p.pos = frame.pos;
-                    return p;
-
-                case ANNOTATION_TYPE:
-                case CLASS:
-                case ENUM:
-                case INTERFACE:
-                    p.pos = frame.pos;
-                    if (((JCClassDecl)frame).extending == tree) {
-                        p.type = TargetType.CLASS_EXTENDS;
-                        p.type_index = -1;
-                    } else if (((JCClassDecl)frame).implementing.contains(tree)) {
-                        p.type = TargetType.CLASS_EXTENDS;
-                        p.type_index = ((JCClassDecl)frame).implementing.indexOf(tree);
-                    } else if (((JCClassDecl)frame).typarams.contains(tree)) {
-                        p.type = TargetType.CLASS_TYPE_PARAMETER;
-                        p.parameter_index = ((JCClassDecl)frame).typarams.indexOf(tree);
-                    } else
-                        throw new AssertionError();
-                    return p;
-
-                case METHOD: {
-                    JCMethodDecl frameMethod = (JCMethodDecl)frame;
-                    p.pos = frame.pos;
-                    if (frameMethod.receiverAnnotations.contains(tree))
-                        p.type = TargetType.METHOD_RECEIVER;
-                    else if (frameMethod.thrown.contains(tree)) {
-                        p.type = TargetType.THROWS;
-                        p.type_index = frameMethod.thrown.indexOf(tree);
-                    } else if (((JCMethodDecl)frame).restype == tree) {
-                        p.type = TargetType.METHOD_RETURN_GENERIC_OR_ARRAY;
-                    } else if (frameMethod.typarams.contains(tree)) {
-                        p.type = TargetType.METHOD_TYPE_PARAMETER;
-                        p.parameter_index = frameMethod.typarams.indexOf(tree);
-                    } else
-                        throw new AssertionError();
-                    return p;
-                }
-                case MEMBER_SELECT: {
-                    JCFieldAccess fieldFrame = (JCFieldAccess)frame;
-                    if ("class".contentEquals(fieldFrame.name)) {
-                        p.type = TargetType.CLASS_LITERAL;
-                        p.pos = TreeInfo.innermostType(fieldFrame.selected).pos;
-                    } else
-                        throw new AssertionError();
-                    return p;
-                }
-                case PARAMETERIZED_TYPE: {
-                    TypeAnnotationPosition nextP;
-                    if (((JCTypeApply)frame).clazz == tree)
-                        nextP = p; // generic: RAW; noop
-                    else if (((JCTypeApply)frame).arguments.contains(tree))
-                        p.location = p.location.prepend(
-                                ((JCTypeApply)frame).arguments.indexOf(tree));
-                    else
-                        throw new AssertionError();
-
-                    List<JCTree> newPath = path.tail;
-                    return resolveFrame(newPath.head, newPath.tail.head, newPath, p);
-                }
-
-                case ARRAY_TYPE: {
-                    p.location = p.location.prepend(0);
-                    List<JCTree> newPath = path.tail;
-                    return resolveFrame(newPath.head, newPath.tail.head, newPath, p);
-                }
-
-                case TYPE_PARAMETER:
-                    if (path.tail.tail.head.getTag() == JCTree.CLASSDEF) {
-                        JCClassDecl clazz = (JCClassDecl)path.tail.tail.head;
-                        p.type = TargetType.CLASS_TYPE_PARAMETER_BOUND;
-                        p.parameter_index = clazz.typarams.indexOf(path.tail.head);
-                        p.bound_index = ((JCTypeParameter)frame).bounds.indexOf(tree);
-                    } else if (path.tail.tail.head.getTag() == JCTree.METHODDEF) {
-                        JCMethodDecl method = (JCMethodDecl)path.tail.tail.head;
-                        p.type = TargetType.METHOD_TYPE_PARAMETER_BOUND;
-                        p.parameter_index = method.typarams.indexOf(path.tail.head);
-                        p.bound_index = ((JCTypeParameter)frame).bounds.indexOf(tree);
-                    } else
-                        throw new AssertionError();
-                    p.pos = frame.pos;
-                    return p;
-
-                case VARIABLE:
-                    VarSymbol v = ((JCVariableDecl)frame).sym;
-                    p.pos = frame.pos;
-                    switch (v.getKind()) {
-                        case LOCAL_VARIABLE:
-                            p.type = TargetType.LOCAL_VARIABLE; break;
-                        case FIELD:
-                            p.type = TargetType.FIELD_GENERIC_OR_ARRAY; break;
-                        case PARAMETER:
-                            p.type = TargetType.METHOD_PARAMETER_GENERIC_OR_ARRAY;
-                            p.parameter_index = methodParamIndex(path, frame);
-                            break;
-                        default: throw new AssertionError();
-                    }
-                    return p;
-
-//308                case ANNOTATED_TYPE: {
-//308                    List<JCTree> newPath = path.tail;
-//308                    return resolveFrame(newPath.head, newPath.tail.head,
-//308                            newPath, p);
-//308                }
-
-                case METHOD_INVOCATION: {
-                    JCMethodInvocation invocation = (JCMethodInvocation)frame;
-                    if (!invocation.typeargs.contains(tree))
-                        throw new AssertionError("{" + tree + "} is not an argument in the invocation: " + invocation);
-                    p.type = TargetType.METHOD_TYPE_ARGUMENT;
-                    p.pos = invocation.pos;
-                    p.type_index = invocation.typeargs.indexOf(tree);
-                    return p;
-                }
-
-                case EXTENDS_WILDCARD:
-                case SUPER_WILDCARD: {
-                    p.type = TargetType.WILDCARD_BOUND;
-                    List<JCTree> newPath = path.tail;
-
-                    TypeAnnotationPosition wildcard =
-                        resolveFrame(newPath.head, newPath.tail.head, newPath,
-                                new TypeAnnotationPosition());
-                    if (!wildcard.location.isEmpty())
-                        wildcard.type = wildcard.type.getGenericComplement();
-                    p.wildcard_position = wildcard;
-                    p.pos = frame.pos;
-                    return p;
-                }
-            }
-            return p;
-        }
-
-        private void setTypeAnnotationPos(List<JCTypeAnnotation> annotations, TypeAnnotationPosition position) {
-            for (JCTypeAnnotation anno : annotations) {
-                anno.annotation_position = position;
-                anno.attribute_field.position = position;
-            }
-        }
-
-        @Override
-        public void visitNewArray(JCNewArray tree) {
-            findPosition(tree, tree, tree.annotations);
-            int dimAnnosCount = tree.dimAnnotations.size();
-
-            // handle annotations associated with dimentions
-            for (int i = 0; i < dimAnnosCount; ++i) {
-                TypeAnnotationPosition p = new TypeAnnotationPosition();
-                p.type = TargetType.NEW_GENERIC_OR_ARRAY;
-                p.pos = tree.pos;
-                p.location = p.location.append(i);
-                setTypeAnnotationPos(tree.dimAnnotations.get(i), p);
-            }
-
-            // handle "free" annotations
-            int i = dimAnnosCount == 0 ? 0 : dimAnnosCount - 1;
-            JCExpression elemType = tree.elemtype;
-            while (elemType != null) {
-                if (elemType.getTag() == JCTree.ANNOTATED_TYPE) {
-                    JCAnnotatedType at = (JCAnnotatedType)elemType;
-                    TypeAnnotationPosition p = new TypeAnnotationPosition();
-                    p.type = TargetType.NEW_GENERIC_OR_ARRAY;
-                    p.pos = tree.pos;
-                    p.location = p.location.append(i);
-                    setTypeAnnotationPos(at.annotations, p);
-                    elemType = at.underlyingType;
-                } else if (elemType.getTag() == JCTree.TYPEARRAY) {
-                    ++i;
-                    elemType = ((JCArrayTypeTree)elemType).elemtype;
-                } else
-                    break;
-            }
-
-            // find annotations locations of initializer elements
-            scan(tree.elems);
-        }
-
-        @Override
-        public void visitAnnotatedType(JCAnnotatedType tree) {
-            findPosition(tree, peek2(), tree.annotations);
-            super.visitAnnotatedType(tree);
-        }
-
-        @Override
-        public void visitMethodDef(JCMethodDecl tree) {
-            TypeAnnotationPosition p = new TypeAnnotationPosition();
-            p.type = TargetType.METHOD_RECEIVER;
-            setTypeAnnotationPos(tree.receiverAnnotations, p);
-            super.visitMethodDef(tree);
-        }
-        @Override
-        public void visitTypeParameter(JCTypeParameter tree) {
-            findPosition(tree, peek2(), tree.annotations);
-            super.visitTypeParameter(tree);
-        }
-
-        void findPosition(JCTree tree, JCTree frame, List<JCTypeAnnotation> annotations) {
-            if (!annotations.isEmpty()) {
-                TypeAnnotationPosition p =
-                        resolveFrame(tree, frame, frames.toList(),
-                                new TypeAnnotationPosition());
-                if (!p.location.isEmpty())
-                    p.type = p.type.getGenericComplement();
-                setTypeAnnotationPos(annotations, p);
-            }
-        }
-
-        private int methodParamIndex(List<JCTree> path, JCTree param) {
-            List<JCTree> curr = path;
-            if (curr.head != param)
-                curr = path.tail;
-            JCMethodDecl method = (JCMethodDecl)curr.tail.head;
-            return method.params.indexOf(param);
-        }
-    }
-
-    private static class TypeAnnotationLift extends TreeScanner {
-        List<Attribute.TypeCompound> recordedTypeAnnotations = List.nil();
-
-        boolean isInner = false;
-        @Override
-        public void visitClassDef(JCClassDecl tree) {
-            if (isInner) {
-                // tree is an inner class tree.  stop now.
-                // TransTypes.visitClassDef makes an invocation for each class
-                // separately.
-                return;
-            }
-            isInner = true;
-            List<Attribute.TypeCompound> prevTAs = recordedTypeAnnotations;
-            recordedTypeAnnotations = List.nil();
-            try {
-                super.visitClassDef(tree);
-            } finally {
-                tree.sym.typeAnnotations = tree.sym.typeAnnotations.appendList(recordedTypeAnnotations);
-                recordedTypeAnnotations = prevTAs;
-            }
-        }
-
-        @Override
-        public void visitMethodDef(JCMethodDecl tree) {
-            List<Attribute.TypeCompound> prevTAs = recordedTypeAnnotations;
-            recordedTypeAnnotations = List.nil();
-            try {
-                super.visitMethodDef(tree);
-            } finally {
-                tree.sym.typeAnnotations = tree.sym.typeAnnotations.appendList(recordedTypeAnnotations);
-                recordedTypeAnnotations = prevTAs;
-            }
-        }
-
-        @Override
-        public void visitVarDef(JCVariableDecl tree) {
-            List<Attribute.TypeCompound> prevTAs = recordedTypeAnnotations;
-            recordedTypeAnnotations = List.nil();
-            ElementKind kind = tree.sym.getKind();
-            if (kind == ElementKind.LOCAL_VARIABLE && tree.mods.annotations.nonEmpty()) {
-                // need to lift the annotations
-                TypeAnnotationPosition position = new TypeAnnotationPosition();
-                position.pos = tree.pos;
-                position.type = TargetType.LOCAL_VARIABLE;
-                for (Attribute.Compound attribute : tree.sym.attributes_field) {
-                    Attribute.TypeCompound tc =
-                        new Attribute.TypeCompound(attribute.type, attribute.values, position);
-                    recordedTypeAnnotations = recordedTypeAnnotations.append(tc);
-                }
-            }
-            try {
-                super.visitVarDef(tree);
-            } finally {
-                if (kind.isField() || kind == ElementKind.LOCAL_VARIABLE)
-                    tree.sym.typeAnnotations = tree.sym.typeAnnotations.appendList(recordedTypeAnnotations);
-                recordedTypeAnnotations = kind.isField() ? prevTAs : prevTAs.appendList(recordedTypeAnnotations);
-            }
-        }
-
-        @Override
-        public void visitApply(JCMethodInvocation tree) {
-            scan(tree.meth);
-            scan(tree.typeargs);
-            scan(tree.args);
-        }
-
-        public void visitAnnotation(JCAnnotation tree) {
-            if (tree instanceof JCTypeAnnotation)
-                recordedTypeAnnotations = recordedTypeAnnotations.append(((JCTypeAnnotation)tree).attribute_field);
-            super.visitAnnotation(tree);
-        }
-    }
-
-}
--- a/src/share/classes/com/sun/tools/javac/code/Types.java	Wed Feb 23 16:39:34 2011 -0500
+++ b/src/share/classes/com/sun/tools/javac/code/Types.java	Thu Mar 10 18:42:31 2011 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -39,6 +39,7 @@
 import com.sun.tools.javac.comp.Resolve;
 import com.sun.tools.javac.comp.AttrContext;
 
+import static com.sun.tools.javac.code.Scope.*;
 import static com.sun.tools.javac.code.Type.*;
 import static com.sun.tools.javac.code.TypeTags.*;
 import static com.sun.tools.javac.code.Symbol.*;
@@ -73,10 +74,10 @@
         new Context.Key<Types>();
 
     final Symtab syms;
-    final Scope.ScopeCounter scopeCounter;
     final JavacMessages messages;
     final Names names;
     final boolean allowBoxing;
+    final boolean allowAbstractClassInSamConversion;
     final ClassReader reader;
     final Source source;
     final Check chk;
@@ -95,7 +96,6 @@
     protected Types(Context context) {
         context.put(typesKey, this);
         syms = Symtab.instance(context);
-        scopeCounter = Scope.ScopeCounter.instance(context);
         names = Names.instance(context);
         allowBoxing = Source.instance(context).allowBoxing();
         reader = ClassReader.instance(context);
@@ -104,6 +104,8 @@
         capturedName = names.fromString("<captured wildcard>");
         messages = JavacMessages.instance(context);
         conversionException = new ConversionException();
+        Options opts = Options.instance(context);
+        allowAbstractClassInSamConversion = opts.isSet("abstractSAM");
     }
     // </editor-fold>
 
@@ -410,7 +412,12 @@
      */
     public SAMResult findSAM(Type t, Env<AttrContext> env) {
         Type site = env.enclClass.type;
-        if (t.tsym.kind != Kinds.TYP || (t.tsym.flags() & ABSTRACT) == 0) {
+
+        if (!t.tsym.isInterface() && !allowAbstractClassInSamConversion) {
+            //t must be an abstract class or an interface
+            return new SAMResult(site, t, "target.for.lambda.conv.must.be.interface");
+        }
+        else if (t.tsym.kind != Kinds.TYP || (t.tsym.flags() & ABSTRACT) == 0) {
             //t must be an abstract class or an interface
             return new SAMResult(site, t, "target.for.lambda.conv.must.be.abstract");
         }
@@ -456,13 +463,16 @@
                     (e.sym.flags() & DEFENDER) == 0 &&
                     (!t.isInterface() || !overridesObjectMethod(e.sym, t.tsym))) {
                 MethodSymbol msym = (MethodSymbol)e.sym;
-                if (buf.isEmpty() ||
-                        (msym.name == buf.first().name &&
-                        msym.implementation(site.tsym, this, false) != null &&
-                        overrideEquivalent(msym.implementation(site.tsym, this, false).type, buf.first().type))) {
-                    buf.append(e.sym);
+                Symbol impl = msym.implementation(site.tsym, this, false);
+                if (impl == null || (impl.flags() & ABSTRACT) != 0) {
+                    count++;
+                    Type mtype = memberType(site, msym);
+                    if (buf.isEmpty() ||
+                            (msym.name == buf.first().name &&
+                            overrideEquivalent(mtype, memberType(site, buf.first())))) {
+                        buf.append(e.sym);
+                    }
                 }
-                count++;
             }
         }
         count += findSAM(site, supertype(t), buf, seenTypes);
@@ -906,7 +916,10 @@
                     ((DisjunctiveType)s).alternatives :
                     List.of(s);
 
-                return chk.unhandled(t.alternatives, ss).isEmpty();
+                for (Type alternative : t.alternatives) {
+                    if (!chk.subset(alternative, ss)) return false;
+                }
+                return true;
             }
 
             @Override
@@ -1563,8 +1576,9 @@
                             highSub = (lowSub == null) ? null : asSub(bHigh, aHigh.tsym);
                         }
                         if (highSub != null) {
-                            assert a.tsym == highSub.tsym && a.tsym == lowSub.tsym
-                                : a.tsym + " != " + highSub.tsym + " != " + lowSub.tsym;
+                            if (!(a.tsym == highSub.tsym && a.tsym == lowSub.tsym)) {
+                                Assert.error(a.tsym + " != " + highSub.tsym + " != " + lowSub.tsym);
+                            }
                             if (!disjointTypes(aHigh.allparams(), highSub.allparams())
                                 && !disjointTypes(aHigh.allparams(), lowSub.allparams())
                                 && !disjointTypes(aLow.allparams(), highSub.allparams())
@@ -2265,9 +2279,9 @@
             bt.supertype_field = bounds.head;
             bt.interfaces_field = bounds.tail;
         }
-        assert bt.supertype_field.tsym.completer != null
-            || !bt.supertype_field.isInterface()
-            : bt.supertype_field;
+        Assert.check(bt.supertype_field.tsym.completer != null
+                || !bt.supertype_field.isInterface(),
+            bt.supertype_field);
         return bt;
     }
 
@@ -2401,7 +2415,7 @@
                         // t.interfaces_field is null after
                         // completion, we can assume that t is not the
                         // type of a class/interface declaration.
-                        assert t != t.tsym.type : t.toString();
+                        Assert.check(t != t.tsym.type, t);
                         List<Type> actuals = t.allparams();
                         List<Type> formals = t.tsym.type.allparams();
                         if (t.hasErasedSupertypes()) {
@@ -2592,26 +2606,22 @@
             final MethodSymbol cachedImpl;
             final Filter<Symbol> implFilter;
             final boolean checkResult;
-            final Scope.ScopeCounter scopeCounter;
 
             public Entry(MethodSymbol cachedImpl,
                     Filter<Symbol> scopeFilter,
-                    boolean checkResult,
-                    Scope.ScopeCounter scopeCounter) {
+                    boolean checkResult) {
                 this.cachedImpl = cachedImpl;
                 this.implFilter = scopeFilter;
                 this.checkResult = checkResult;
-                this.scopeCounter = scopeCounter;
             }
 
-            boolean matches(Filter<Symbol> scopeFilter, boolean checkResult, Scope.ScopeCounter scopeCounter) {
+            boolean matches(Filter<Symbol> scopeFilter, boolean checkResult) {
                 return this.implFilter == scopeFilter &&
-                        this.checkResult == checkResult &&
-                        this.scopeCounter.val() >= scopeCounter.val();
+                        this.checkResult == checkResult;
             }
         }
 
-        MethodSymbol get(MethodSymbol ms, TypeSymbol origin, boolean checkResult, Filter<Symbol> implFilter, Scope.ScopeCounter scopeCounter) {
+        MethodSymbol get(MethodSymbol ms, TypeSymbol origin, boolean checkResult, Filter<Symbol> implFilter) {
             SoftReference<Map<TypeSymbol, Entry>> ref_cache = _map.get(ms);
             Map<TypeSymbol, Entry> cache = ref_cache != null ? ref_cache.get() : null;
             if (cache == null) {
@@ -2620,7 +2630,7 @@
             }
             Entry e = cache.get(origin);
             if (e == null ||
-                    !e.matches(implFilter, checkResult, scopeCounter)) {
+                    !e.matches(implFilter, checkResult)) {
                 MethodSymbol impl = implementationInternal(ms, origin, checkResult, implFilter);
                 if ((impl == null || (impl.flags() & ABSTRACT) != 0) &&
                         source.allowDefenderMethods()) {
@@ -2629,7 +2639,7 @@
                     if (newImpl != null)
                         impl = newImpl; //we found a suitable defender impl
                 }
-                cache.put(origin, new Entry(impl, implFilter, checkResult, scopeCounter));
+                cache.put(origin, new Entry(impl, implFilter, checkResult));
                 return impl;
             }
             else {
@@ -2656,9 +2666,55 @@
 
     private ImplementationCache implCache = new ImplementationCache();
 
-    public MethodSymbol implementation(MethodSymbol ms, TypeSymbol origin, Types types, boolean checkResult, Filter<Symbol> implFilter) {
-        return implCache.get(ms, origin, checkResult, implFilter, scopeCounter);
+    public MethodSymbol implementation(MethodSymbol ms, TypeSymbol origin, boolean checkResult, Filter<Symbol> implFilter) {
+        return implCache.get(ms, origin, checkResult, implFilter);
     }
+    // </editor-fold>
+
+    // <editor-fold defaultstate="collapsed" desc="compute transitive closure of all members in given site">
+    public Scope membersClosure(Type site) {
+        return membersClosure.visit(site);
+    }
+
+    UnaryVisitor<Scope> membersClosure = new UnaryVisitor<Scope>() {
+
+        public Scope visitType(Type t, Void s) {
+            return null;
+        }
+
+        @Override
+        public Scope visitClassType(ClassType t, Void s) {
+            ClassSymbol csym = (ClassSymbol)t.tsym;
+            if (csym.membersClosure == null) {
+                Scope membersClosure = new Scope(csym);
+                for (Type i : interfaces(t)) {
+                    enterAll(visit(i), membersClosure);
+                }
+                enterAll(visit(supertype(t)), membersClosure);
+                enterAll(csym.members(), membersClosure);
+                csym.membersClosure = membersClosure;
+            }
+            return csym.membersClosure;
+        }
+
+        @Override
+        public Scope visitTypeVar(TypeVar t, Void s) {
+            return visit(t.getUpperBound());
+        }
+
+        public void enterAll(Scope s, Scope to) {
+            if (s == null) return;
+            List<Symbol> syms = List.nil();
+            for (Scope.Entry e = s.elems ; e != null ; e = e.sibling) {
+                syms = syms.prepend(e.sym);
+            }
+            for (Symbol sym : syms) {
+                to.enter(sym);
+            }
+        }
+    };
+    // </editor-fold>
+
 
     //where
     public List<MethodSymbol> findCompatibleDefendersInSite(Type site, MethodSymbol ms) {
@@ -2906,6 +2962,13 @@
 
         @Override
         public Type visitForAll(ForAll t, Void ignored) {
+            if (Type.containsAny(to, t.tvars)) {
+                //perform alpha-renaming of free-variables in 't'
+                //if 'to' types contain variables that are free in 't'
+                List<Type> freevars = newInstances(t.tvars);
+                t = new ForAll(freevars,
+                        Types.this.subst(t.qtype, t.tvars, freevars));
+            }
             List<Type> tvars1 = substBounds(t.tvars, from, to);
             Type qtype1 = subst(t.qtype);
             if (tvars1 == t.tvars && qtype1 == t.qtype) {
@@ -3302,7 +3365,7 @@
                 act2 = act2.tail;
                 typarams = typarams.tail;
             }
-            assert(act1.isEmpty() && act2.isEmpty() && typarams.isEmpty());
+            Assert.check(act1.isEmpty() && act2.isEmpty() && typarams.isEmpty());
             return new ClassType(class1.getEnclosingType(), merged.toList(), class1.tsym);
         }
 
@@ -3419,7 +3482,7 @@
             // calculate lub(A, B)
             while (ts.head.tag != CLASS && ts.head.tag != TYPEVAR)
                 ts = ts.tail;
-            assert !ts.isEmpty();
+            Assert.check(!ts.isEmpty());
             List<Type> cl = closure(ts.head);
             for (Type t : ts.tail) {
                 if (t.tag == CLASS || t.tag == TYPEVAR)
@@ -3799,7 +3862,7 @@
         boolean reverse = false;
         Type target = to;
         if ((to.tsym.flags() & INTERFACE) == 0) {
-            assert (from.tsym.flags() & INTERFACE) != 0;
+            Assert.check((from.tsym.flags() & INTERFACE) != 0);
             reverse = true;
             to = from;
             from = target;
@@ -3834,12 +3897,12 @@
         boolean reverse = false;
         Type target = to;
         if ((to.tsym.flags() & INTERFACE) == 0) {
-            assert (from.tsym.flags() & INTERFACE) != 0;
+            Assert.check((from.tsym.flags() & INTERFACE) != 0);
             reverse = true;
             to = from;
             from = target;
         }
-        assert (from.tsym.flags() & FINAL) != 0;
+        Assert.check((from.tsym.flags() & FINAL) != 0);
         Type t1 = asSuper(from, to.tsym);
         if (t1 == null) return false;
         Type t2 = to;
--- a/src/share/classes/com/sun/tools/javac/comp/Attr.java	Wed Feb 23 16:39:34 2011 -0500
+++ b/src/share/classes/com/sun/tools/javac/comp/Attr.java	Thu Mar 10 18:42:31 2011 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -85,6 +85,7 @@
     final Types types;
     final JCDiagnostic.Factory diags;
     final Annotate annotate;
+    final DeferredLintHandler deferredLintHandler;
     final HashMap<JCTree, Env<AttrContext>> lambdaEnvs = new HashMap<JCTree, Env<AttrContext>>();
 
     public static Attr instance(Context context) {
@@ -112,6 +113,7 @@
         types = Types.instance(context);
         diags = JCDiagnostic.Factory.instance(context);
         annotate = Annotate.instance(context);
+        deferredLintHandler = DeferredLintHandler.instance(context);
 
         Options options = Options.instance(context);
 
@@ -132,7 +134,6 @@
         findDiamonds = options.get("findDiamond") != null &&
                  source.allowDiamond();
         useBeforeDeclarationWarning = options.isSet("useBeforeDeclarationWarning");
-        enableSunApiLintControl = options.isSet("enableSunApiLintControl");
         identifyLambdaCandidate = options.isSet("identifyLambdaCandidate") &&
                 options.get("identifyLambdaCandidate").equals("true") ; //default disabled
     }
@@ -187,12 +188,6 @@
     boolean useBeforeDeclarationWarning;
 
     /**
-     * Switch: allow lint infrastructure to control proprietary
-     * API warnings.
-     */
-    boolean enableSunApiLintControl;
-
-    /**
      * Switch: generate warnings whenever an anonymous inner class that is convertible
      * to a lambda expression is found
      */
@@ -606,7 +601,7 @@
             if (bound != null && bound.tsym instanceof ClassSymbol) {
                 ClassSymbol c = (ClassSymbol)bound.tsym;
                 if ((c.flags_field & COMPOUND) != 0) {
-                    assert (c.flags_field & UNATTRIBUTED) != 0 : c;
+                    Assert.check((c.flags_field & UNATTRIBUTED) != 0, c);
                     attribClass(typaram.pos(), c);
                 }
             }
@@ -624,6 +619,41 @@
         }
     }
 
+    /**
+     * Attribute a "lazy constant value".
+     *  @param env         The env for the const value
+     *  @param initializer The initializer for the const value
+     *  @param type        The expected type, or null
+     *  @see VarSymbol#setlazyConstValue
+     */
+    public Object attribLazyConstantValue(Env<AttrContext> env,
+                                      JCTree.JCExpression initializer,
+                                      Type type) {
+
+        // in case no lint value has been set up for this env, scan up
+        // env stack looking for smallest enclosing env for which it is set.
+        Env<AttrContext> lintEnv = env;
+        while (lintEnv.info.lint == null)
+            lintEnv = lintEnv.next;
+
+        // Having found the enclosing lint value, we can initialize the lint value for this class
+        env.info.lint = lintEnv.info.lint.augment(env.info.enclVar.attributes_field, env.info.enclVar.flags());
+
+        Lint prevLint = chk.setLint(env.info.lint);
+        JavaFileObject prevSource = log.useSource(env.toplevel.sourcefile);
+
+        try {
+            Type itype = attribExpr(initializer, env, type);
+            if (itype.constValue() != null)
+                return coerce(itype, type).constValue();
+            else
+                return null;
+        } finally {
+            env.info.lint = prevLint;
+            log.useSource(prevSource);
+        }
+    }
+
     /** Attribute type reference in an `extends' or `implements' clause.
      *  Supertypes of anonymous inner classes are usually already attributed.
      *
@@ -716,13 +746,18 @@
         Lint prevLint = chk.setLint(lint);
         MethodSymbol prevMethod = chk.setMethod(m);
         try {
+            deferredLintHandler.flush(tree.pos());
             chk.checkDeprecatedAnnotation(tree.pos(), m);
 
             attribBounds(tree.typarams);
 
             // If we override any other methods, check that we do so properly.
             // JLS ???
-            chk.checkClashes(tree.pos(), env.enclClass.type, m);
+            if (m.isStatic()) {
+                chk.checkHideClashes(tree.pos(), env.enclClass.type, m);
+            } else {
+                chk.checkOverrideClashes(tree.pos(), env.enclClass.type, m);
+            }
             chk.checkOverride(tree, m);
 
             // Create a new environment with local scope
@@ -864,6 +899,7 @@
 
         // Check that the variable's declared type is well-formed.
         chk.validate(tree.vartype, env);
+        deferredLintHandler.flush(tree.pos());
 
         try {
             chk.checkDeprecatedAnnotation(tree.pos(), v);
@@ -957,7 +993,10 @@
             // or perhaps expr implements Iterable<T>?
             Type base = types.asSuper(exprType, syms.iterableType.tsym);
             if (base == null) {
-                log.error(tree.expr.pos(), "foreach.not.applicable.to.type");
+                log.error(tree.expr.pos(),
+                        "foreach.not.applicable.to.type",
+                        exprType,
+                        diags.fragment("type.req.array.or.iterable"));
                 elemtype = types.createErrorType(exprType);
             } else {
                 List<Type> iterableParams = base.allparams();
@@ -1023,7 +1062,7 @@
                 if (enumSwitch) {
                     Symbol sym = enumConstant(c.pat, seltype);
                     if (sym == null) {
-                        log.error(c.pat.pos(), "enum.const.req");
+                        log.error(c.pat.pos(), "enum.label.must.be.unqualified.enum");
                     } else if (!labels.add(sym)) {
                         log.error(c.pos(), "duplicate.case.label");
                     }
@@ -1410,7 +1449,6 @@
 
         // The types of the actual method type arguments.
         List<Type> typeargtypes = null;
-        boolean typeargtypesNonRefOK = false;
 
         Name methName = TreeInfo.name(tree.meth);
 
@@ -1522,7 +1560,7 @@
                     mpt,
                     "incompatible.types");
             if (localEnv.info.varArgs)
-                assert mtype.isErroneous() || tree.varargsElement != null;
+                Assert.check(mtype.isErroneous() || tree.varargsElement != null);
 
             // Compute the result type.
             Type restype = mtype.getReturnType();
@@ -1554,23 +1592,9 @@
                               restype.tsym);
             }
 
-            // Special case logic for JSR 292 types.
-            if (rs.allowTransitionalJSR292 &&
-                    tree.meth.getTag() == JCTree.SELECT &&
-                    !typeargtypes.isEmpty()) {
-                JCFieldAccess mfield = (JCFieldAccess) tree.meth;
-                // MethodHandle.<T>invoke(abc) and InvokeDynamic.<T>foo(abc)
-                // has type <T>, and T can be a primitive type.
-                if (mfield.sym != null &&
-                        mfield.sym.isPolymorphicSignatureInstance())
-                    typeargtypesNonRefOK = true;
-            }
-
-            if (!(rs.allowTransitionalJSR292 && typeargtypesNonRefOK)) {
-                chk.checkParameterTypes(tree.typeargs,
-                        typeargtypes,
-                        TreeInfo.symbol(tree.meth).type.getTypeArguments());
-            }
+            chk.checkParameterTypes(tree.typeargs,
+                    typeargtypes,
+                    TreeInfo.symbol(tree.meth).type.getTypeArguments());
 
             // Check that value of resulting type is admissible in the
             // current context.  Also, capture the return type
@@ -1762,7 +1786,7 @@
                         typeargtypes,
                         localEnv.info.varArgs);
                 if (localEnv.info.varArgs)
-                    assert tree.constructorType.isErroneous() || tree.varargsElement != null;
+                    Assert.check(tree.constructorType.isErroneous() || tree.varargsElement != null);
             }
 
             if (cdef != null) {
@@ -1798,7 +1822,6 @@
                 //       }
                 //       ...
                 //     }
-
                 if (Resolve.isStatic(env)) cdef.mods.flags |= STATIC;
 
                 if (clazztype.tsym.isInterface()) {
@@ -1825,7 +1848,7 @@
                 Symbol sym = rs.resolveConstructor(
                     tree.pos(), localEnv, clazztype, argtypes,
                     typeargtypes, true, tree.varargsElement != null);
-                assert sym.kind < AMBIGUOUS || tree.constructor.type.isErroneous();
+                Assert.check(sym.kind < AMBIGUOUS || tree.constructor.type.isErroneous());
                 tree.constructor = sym;
                 if (tree.constructor.kind > ERRONEOUS) {
                     tree.constructorType =  syms.errType;
@@ -2517,7 +2540,9 @@
             tree.pos(), tree.getTag() - JCTree.ASGOffset, env,
             owntype, operand);
 
-        if (operator.kind == MTH) {
+        if (operator.kind == MTH &&
+                !owntype.isErroneous() &&
+                !operand.isErroneous()) {
             chk.checkOperator(tree.pos(),
                               (OperatorSymbol)operator,
                               tree.getTag() - JCTree.ASGOffset,
@@ -2542,7 +2567,8 @@
             rs.resolveUnaryOperator(tree.pos(), tree.getTag(), env, argtype);
 
         Type owntype = types.createErrorType(tree.type);
-        if (operator.kind == MTH) {
+        if (operator.kind == MTH &&
+                !argtype.isErroneous()) {
             owntype = (JCTree.PREINC <= tree.getTag() && tree.getTag() <= JCTree.POSTDEC)
                 ? tree.arg.type
                 : operator.type.getReturnType();
@@ -2578,7 +2604,9 @@
             rs.resolveBinaryOperator(tree.pos(), tree.getTag(), env, left, right);
 
         Type owntype = types.createErrorType(tree.type);
-        if (operator.kind == MTH) {
+        if (operator.kind == MTH &&
+                !left.isErroneous() &&
+                !right.isErroneous()) {
             owntype = operator.type.getReturnType();
             int opc = chk.checkOperator(tree.lhs.pos(),
                                         (OperatorSymbol)operator,
@@ -2862,11 +2890,10 @@
 
         // Determine the symbol represented by the selection.
         env.info.varArgs = false;
-        Symbol sym = selectSym(tree, site, env, pt, pkind);
-
+        Symbol sym = selectSym(tree, sitesym, site, env, pt, pkind);
         if (sym.exists() && !isType(sym) && (pkind & (PCK | TYP)) != 0) {
             site = capture(site);
-            sym = selectSym(tree, site, env, pt, pkind);
+            sym = selectSym(tree, sitesym, site, env, pt, pkind);
         }
         boolean varArgs = env.info.varArgs;
         tree.sym = sym;
@@ -2956,23 +2983,30 @@
          *  @param pkind  The expected kind(s) of the Select expression.
          */
         private Symbol selectSym(JCFieldAccess tree,
+                                     Type site,
+                                     Env<AttrContext> env,
+                                     Type pt,
+                                     int pkind) {
+            return selectSym(tree, site.tsym, site, env, pt, pkind);
+        }
+        private Symbol selectSym(JCFieldAccess tree,
+                                 Symbol location,
                                  Type site,
                                  Env<AttrContext> env,
                                  Type pt,
                                  int pkind) {
             DiagnosticPosition pos = tree.pos();
             Name name = tree.name;
-
             switch (site.tag) {
             case PACKAGE:
                 return rs.access(
                     rs.findIdentInPackage(env, site.tsym, name, pkind),
-                    pos, site, name, true);
+                    pos, location, site, name, true);
             case ARRAY:
             case CLASS:
                 if (pt.tag == METHOD || pt.tag == FORALL) {
                     return rs.resolveQualifiedMethod(
-                        pos, env, site, name, pt.getParameterTypes(), pt.getTypeArguments());
+                        pos, env, location, site, name, pt.getParameterTypes(), pt.getTypeArguments());
                 } else if (name == names._this || name == names._super) {
                     return ((site.tsym.flags() & DEFENDER) != 0 &&
                             types.asSuper(env.enclClass.type, site.tsym) != null) ?
@@ -2992,7 +3026,7 @@
                     // We are seeing a plain identifier as selector.
                     Symbol sym = rs.findIdentInType(env, site, name, pkind);
                     if ((pkind & ERRONEOUS) == 0)
-                        sym = rs.access(sym, pos, site, name, true);
+                        sym = rs.access(sym, pos, location, site, name, true);
                     return sym;
                 }
             case WILDCARD:
@@ -3000,12 +3034,12 @@
             case TYPEVAR:
                 // Normally, site.getUpperBound() shouldn't be null.
                 // It should only happen during memberEnter/attribBase
-                // when determining the super type which *must* be
+                // when determining the super type which *must* beac
                 // done before attributing the type variables.  In
                 // other words, we are seeing this illegal program:
                 // class B<T> extends A<T.foo> {}
                 Symbol sym = (site.getUpperBound() != null)
-                    ? selectSym(tree, capture(site.getUpperBound()), env, pt, pkind)
+                    ? selectSym(tree, location, capture(site.getUpperBound()), env, pt, pkind)
                     : null;
                 if (sym == null) {
                     log.error(pos, "type.var.cant.be.deref");
@@ -3014,7 +3048,7 @@
                     Symbol sym2 = (sym.flags() & Flags.PRIVATE) != 0 ?
                         rs.new AccessError(env, site, sym) :
                                 sym;
-                    rs.access(sym2, pos, site, name, true);
+                    rs.access(sym2, pos, location, site, name, true);
                     return sym;
                 }
             case DISJOINT: {
@@ -3176,17 +3210,10 @@
             // Test (1): emit a `deprecation' warning if symbol is deprecated.
             // (for constructors, the error was given when the constructor was
             // resolved)
-            if (sym.name != names.init &&
-                (sym.flags() & DEPRECATED) != 0 &&
-                (env.info.scope.owner.flags() & DEPRECATED) == 0 &&
-                sym.outermostClass() != env.info.scope.owner.outermostClass())
-                chk.warnDeprecated(tree.pos(), sym);
-
-            if ((sym.flags() & PROPRIETARY) != 0) {
-                if (enableSunApiLintControl)
-                  chk.warnSunApi(tree.pos(), "sun.proprietary", sym);
-                else
-                  log.strictWarning(tree.pos(), "sun.proprietary", sym);
+
+            if (sym.name != names.init) {
+                chk.checkDeprecated(tree.pos(), env.info.scope.owner, sym);
+                chk.checkSunAPI(tree.pos(), sym);
             }
 
             // Test (3): if symbol is a variable, check that its type and
@@ -3626,7 +3653,7 @@
                 extending, implementing, List.<JCTree>nil());
 
             ClassSymbol c = (ClassSymbol)a.getUpperBound().tsym;
-            assert (c.flags() & COMPOUND) != 0;
+            Assert.check((c.flags() & COMPOUND) != 0);
             cd.sym = c;
             c.sourcefile = env.toplevel.sourcefile;
 
@@ -3657,10 +3684,6 @@
         result = tree.type = syms.errType;
     }
 
-    public void visitAnnotatedType(JCAnnotatedType tree) {
-        result = tree.type = attribType(tree.getUnderlyingType(), env);
-    }
-
     public void visitErroneous(JCErroneous tree) {
         if (tree.errs != null)
             for (JCTree err : tree.errs)
@@ -3765,7 +3788,7 @@
     /** Finish the attribution of a class. */
     private void attribClassBody(Env<AttrContext> env, ClassSymbol c) {
         JCClassDecl tree = (JCClassDecl)env.tree;
-        assert c == tree.sym;
+        Assert.check(c == tree.sym);
 
         // Validate annotations
         chk.validateAnnotations(tree.mods.annotations, c);
@@ -3806,12 +3829,9 @@
 
         tree.type = c.type;
 
-        boolean assertsEnabled = false;
-        assert assertsEnabled = true;
-        if (assertsEnabled) {
-            for (List<JCTypeParameter> l = tree.typarams;
-                 l.nonEmpty(); l = l.tail)
-                assert env.info.scope.lookup(l.head.name).scope != null;
+        for (List<JCTypeParameter> l = tree.typarams;
+             l.nonEmpty(); l = l.tail) {
+             Assert.checkNonNull(env.info.scope.lookup(l.head.name).scope);
         }
 
         // Check that a generic class doesn't extend Throwable
@@ -3835,7 +3855,7 @@
                 if (sym == null ||
                     sym.kind != VAR ||
                     ((VarSymbol) sym).getConstValue() == null)
-                    log.error(l.head.pos(), "icls.cant.have.static.decl");
+                    log.error(l.head.pos(), "icls.cant.have.static.decl", c);
             }
         }
 
@@ -3852,9 +3872,6 @@
             (c.flags() & ABSTRACT) == 0) {
             checkSerialVersionUID(tree, c);
         }
-
-        // Check type annotations applicability rules
-        validateTypeAnnotations(tree);
     }
         // where
         /** check if a class is a subtype of Serializable, if that is available. */
@@ -3902,35 +3919,6 @@
         return types.capture(type);
     }
 
-    private void validateTypeAnnotations(JCTree tree) {
-        tree.accept(typeAnnotationsValidator);
-    }
-    //where
-    private final JCTree.Visitor typeAnnotationsValidator =
-        new TreeScanner() {
-        public void visitAnnotation(JCAnnotation tree) {
-            if (tree instanceof JCTypeAnnotation) {
-                chk.validateTypeAnnotation((JCTypeAnnotation)tree, false);
-            }
-            super.visitAnnotation(tree);
-        }
-        public void visitTypeParameter(JCTypeParameter tree) {
-            chk.validateTypeAnnotations(tree.annotations, true);
-            // don't call super. skip type annotations
-            scan(tree.bounds);
-        }
-        public void visitMethodDef(JCMethodDecl tree) {
-            // need to check static methods
-            if ((tree.sym.flags() & Flags.STATIC) != 0) {
-                for (JCTypeAnnotation a : tree.receiverAnnotations) {
-                    if (chk.isTypeAnnotation(a, false))
-                        log.error(a.pos(), "annotation.type.not.applicable");
-                }
-            }
-            super.visitMethodDef(tree);
-        }
-    };
-
     // <editor-fold desc="post-attribution visitor">
 
     /**
--- a/src/share/classes/com/sun/tools/javac/comp/Check.java	Wed Feb 23 16:39:34 2011 -0500
+++ b/src/share/classes/com/sun/tools/javac/comp/Check.java	Thu Mar 10 18:42:31 2011 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -68,6 +68,7 @@
     private final boolean skipAnnotations;
     private boolean warnOnSyntheticConflicts;
     private boolean suppressAbortOnBadClassFile;
+    private boolean enableSunApiLintControl;
     private final TreeInfo treeinfo;
 
     // The set of lint options currently in effect. It is initialized
@@ -110,13 +111,13 @@
         skipAnnotations = options.isSet("skipAnnotations");
         warnOnSyntheticConflicts = options.isSet("warnOnSyntheticConflicts");
         suppressAbortOnBadClassFile = options.isSet("suppressAbortOnBadClassFile");
+        enableSunApiLintControl = options.isSet("enableSunApiLintControl");
 
         Target target = Target.instance(context);
         syntheticNameChar = target.syntheticNameChar();
 
         boolean verboseDeprecated = lint.isEnabled(LintCategory.DEPRECATION);
         boolean verboseUnchecked = lint.isEnabled(LintCategory.UNCHECKED);
-        boolean verboseVarargs = lint.isEnabled(LintCategory.VARARGS);
         boolean verboseSunApi = lint.isEnabled(LintCategory.SUNAPI);
         boolean enforceMandatoryWarnings = source.enforceMandatoryWarnings();
 
@@ -124,10 +125,10 @@
                 enforceMandatoryWarnings, "deprecated", LintCategory.DEPRECATION);
         uncheckedHandler = new MandatoryWarningHandler(log, verboseUnchecked,
                 enforceMandatoryWarnings, "unchecked", LintCategory.UNCHECKED);
-        unsafeVarargsHandler = new MandatoryWarningHandler(log, verboseVarargs,
-                enforceMandatoryWarnings, "varargs", LintCategory.VARARGS);
         sunApiHandler = new MandatoryWarningHandler(log, verboseSunApi,
                 enforceMandatoryWarnings, "sunapi", null);
+
+        deferredLintHandler = DeferredLintHandler.immediateHandler;
     }
 
     /** Switch: generics enabled?
@@ -171,14 +172,14 @@
      */
     private MandatoryWarningHandler uncheckedHandler;
 
-    /** A handler for messages about unchecked or unsafe vararg method decl.
-     */
-    private MandatoryWarningHandler unsafeVarargsHandler;
-
     /** A handler for messages about using proprietary API.
      */
     private MandatoryWarningHandler sunApiHandler;
 
+    /** A handler for deferred lint warnings.
+     */
+    private DeferredLintHandler deferredLintHandler;
+
 /* *************************************************************************
  * Errors and Warnings
  **************************************************************************/
@@ -189,6 +190,12 @@
         return prev;
     }
 
+    DeferredLintHandler setDeferredLintHandler(DeferredLintHandler newDeferredLintHandler) {
+        DeferredLintHandler prev = deferredLintHandler;
+        deferredLintHandler = newDeferredLintHandler;
+        return prev;
+    }
+
     MethodSymbol setMethod(MethodSymbol newMethod) {
         MethodSymbol prev = method;
         method = newMethod;
@@ -534,7 +541,7 @@
      *  @param a             The type that should be bounded by bs.
      *  @param bs            The bound.
      */
-    private boolean checkExtends(JCExpression tree, Type a, TypeVar bs) {
+    private Type checkExtends(Type a, TypeVar bs) {
         Type s = a.tag == WILDCARD ?
             a.isExtendsBound() ?
                 types.upperBound(a) :
@@ -544,23 +551,15 @@
         BoundKind bk = a.tag == WILDCARD ?
             ((WildcardType)a).kind :
             null;
-        tree = bk != null && bk != BoundKind.UNBOUND ?
-            TreeInfo.typeIn(((JCWildcard)TreeInfo.typeIn(tree)).getBound()) :
-            tree;        
         List<Type> ss = s.tag == DISJOINT ?
             ((DisjunctiveType)s).alternatives :
             List.of(s);
-        boolean isOk = true;
         for (Type s2 : ss) {
             if (!checkExtends1(s2, f, bk)) {
-                DiagnosticPosition pos = tree.getTag() == JCTree.TYPEDISJUNCTION ?
-                    ((JCTypeDisjunction)tree).alternativesFromTypeMap.get(s2).pos() :
-                    tree.pos();
-                log.error(pos, "not.within.bounds", s2, types.getBounds(bs));
-                isOk = false;
+                return s.tag == DISJOINT ? s2 : a;
             }
         }
-        return isOk;
+        return null;
     }
 
     boolean checkExtends1(Type s, Type f, BoundKind bk) {
@@ -897,6 +896,105 @@
         }
     }
 
+    /**
+     * Check that type 't' is a valid instantiation of a generic class
+     * (see JLS 4.5)
+     *
+     * @param t class type to be checked
+     * @return true if 't' is well-formed
+     */
+    public boolean checkValidGenericType(Type t) {
+        return firstIncompatibleTypeArg(t) == null;
+    }
+    //WHERE
+        private Type firstIncompatibleTypeArg(Type type) {
+            List<Type> formals = type.tsym.type.allparams();
+            List<Type> actuals = type.allparams();
+            List<Type> args = type.getTypeArguments();
+            List<Type> forms = type.tsym.type.getTypeArguments();
+            ListBuffer<Type> tvars_buf = new ListBuffer<Type>();
+
+            // For matching pairs of actual argument types `a' and
+            // formal type parameters with declared bound `b' ...
+            while (args.nonEmpty() && forms.nonEmpty()) {
+                // exact type arguments needs to know their
+                // bounds (for upper and lower bound
+                // calculations).  So we create new TypeVars with
+                // bounds substed with actuals.
+                tvars_buf.append(types.substBound(((TypeVar)forms.head),
+                                                  formals,
+                                                  actuals));
+                args = args.tail;
+                forms = forms.tail;
+            }
+
+            args = type.getTypeArguments();
+            List<Type> tvars_cap = types.substBounds(formals,
+                                      formals,
+                                      types.capture(type).allparams());
+            while (args.nonEmpty() && tvars_cap.nonEmpty()) {
+                // Let the actual arguments know their bound
+                args.head.withTypeVar((TypeVar)tvars_cap.head);
+                args = args.tail;
+                tvars_cap = tvars_cap.tail;
+            }
+
+            args = type.getTypeArguments();
+            List<Type> tvars = tvars_buf.toList();
+
+            while (args.nonEmpty() && tvars.nonEmpty()) {
+                Type actual = types.subst(args.head,
+                    type.tsym.type.getTypeArguments(),
+                    tvars_buf.toList());
+                if (!isTypeArgErroneous(actual) &&
+                        !tvars.head.getUpperBound().isErroneous() &&
+                        checkExtends(actual, (TypeVar)tvars.head) != null) {
+                    return checkExtends(actual, (TypeVar)tvars.head);
+                }
+                args = args.tail;
+                tvars = tvars.tail;
+            }
+
+            args = type.getTypeArguments();
+            tvars = tvars_buf.toList();
+
+            for (Type arg : types.capture(type).getTypeArguments()) {
+                if (arg.tag == TYPEVAR &&
+                        arg.getUpperBound().isErroneous() &&
+                        !tvars.head.getUpperBound().isErroneous() &&
+                        !isTypeArgErroneous(args.head)) {
+                    return args.head;
+                }
+                tvars = tvars.tail;
+                args = args.tail;
+            }
+
+            return null;
+        }
+        //where
+        boolean isTypeArgErroneous(Type t) {
+            return isTypeArgErroneous.visit(t);
+        }
+
+        Types.UnaryVisitor<Boolean> isTypeArgErroneous = new Types.UnaryVisitor<Boolean>() {
+            public Boolean visitType(Type t, Void s) {
+                return t.isErroneous();
+            }
+            @Override
+            public Boolean visitTypeVar(TypeVar t, Void s) {
+                return visit(t.getUpperBound());
+            }
+            @Override
+            public Boolean visitCapturedType(CapturedType t, Void s) {
+                return visit(t.getUpperBound()) ||
+                        visit(t.getLowerBound());
+            }
+            @Override
+            public Boolean visitWildcardType(WildcardType t, Void s) {
+                return visit(t.type);
+            }
+        };
+
     /** Check that given modifiers are legal for given symbol and
      *  return modifiers together with any implicit modififiers for that symbol.
      *  Warning: we can't use flags() here since this method
@@ -1116,11 +1214,23 @@
         @Override
         public void visitTypeApply(JCTypeApply tree) {
             if (tree.type.tag == CLASS) {
-                List<Type> formals = tree.type.tsym.type.allparams();
-                List<Type> actuals = tree.type.allparams();
                 List<JCExpression> args = tree.arguments;
                 List<Type> forms = tree.type.tsym.type.getTypeArguments();
-                ListBuffer<Type> tvars_buf = new ListBuffer<Type>();
+
+                Type incompatibleArg = firstIncompatibleTypeArg(tree.type);
+                if (incompatibleArg != null) {
+                    for (JCTree arg : tree.arguments) {
+                        DiagnosticPosition pos = arg.getTag() == JCTree.TYPEDISJUNCTION ?
+                                    ((JCTypeDisjunction)args.head).alternativesFromTypeMap.get(incompatibleArg).pos() :
+                                    (arg.type == incompatibleArg ? arg.pos() : null);
+                        if (pos != null) {
+                            log.error(pos, "not.within.bounds", arg.type, forms.head);
+                        }
+                        forms = forms.tail;
+                     }
+                 }
+
+                forms = tree.type.tsym.type.getTypeArguments();
 
                 boolean is_java_lang_Class = tree.type.tsym.flatName() == names.java_lang_Class;
 
@@ -1139,49 +1249,10 @@
                         env.info.allowsDisjointTypes = prevAllowsThrowsTyparams;
                     }
 
-                    // exact type arguments needs to know their
-                    // bounds (for upper and lower bound
-                    // calculations).  So we create new TypeVars with
-                    // bounds substed with actuals.
-                    tvars_buf.append(types.substBound(((TypeVar)forms.head),
-                                                      formals,
-                                                      actuals));
-
                     args = args.tail;
                     forms = forms.tail;
                 }
 
-                args = tree.arguments;
-                List<Type> tvars_cap = types.substBounds(formals,
-                                          formals,
-                                          types.capture(tree.type).allparams());
-                while (args.nonEmpty() && tvars_cap.nonEmpty()) {
-                    // Let the actual arguments know their bound
-                    args.head.type.withTypeVar((TypeVar)tvars_cap.head);
-                    args = args.tail;
-                    tvars_cap = tvars_cap.tail;
-                }
-
-                args = tree.arguments;
-                List<Type> tvars = tvars_buf.toList();
-                boolean isOk = true;
-
-                while (args.nonEmpty() && tvars.nonEmpty()) {
-                    Type actual = types.subst(args.head.type,
-                         tree.type.tsym.type.getTypeArguments(),
-                         tvars_buf.toList());
-                    if (!checkExtends(args.head,
-                                  actual, (TypeVar)tvars.head))
-                        isOk = false;
-                    args = args.tail;
-                    tvars = tvars.tail;
-                }
-
-                if (isOk) {
-                    //avoid redundant diagnostics
-                    checkCapture(tree);
-                }
-
                 // Check that this type is either fully parameterized, or
                 // not parameterized at all.
                 if (tree.type.getEnclosingType().isRaw())
@@ -1230,6 +1301,7 @@
                     log.error(tree.pos(), "improperly.formed.type.param.missing");
             }
         }
+
         public void visitSelectInternal(JCFieldAccess tree) {
             if (tree.type.tsym.isStatic() &&
                 tree.selected.type.isParameterized()) {
@@ -1243,11 +1315,6 @@
             }
         }
 
-        @Override
-        public void visitAnnotatedType(JCAnnotatedType tree) {
-            tree.underlyingType.accept(this);
-        }
-
         /** Default visitor method: do nothing.
          */
         @Override
@@ -1294,7 +1361,7 @@
 
     /** Is given type a subtype of some of the types in given list?
      */
-    boolean subset(Type t, List<Type> ts) {
+    public boolean subset(Type t, List<Type> ts) {
         for (List<Type> l = ts; l.nonEmpty(); l = l.tail)
             if (types.isSubtype(t, l.head)) return true;
         return false;
@@ -1621,11 +1688,8 @@
         }
 
         // Warn if a deprecated method overridden by a non-deprecated one.
-        if ((other.flags() & DEPRECATED) != 0
-            && (m.flags() & DEPRECATED) == 0
-            && m.outermostClass() != other.outermostClass()
-            && !isDeprecatedOverrideIgnorable(other, origin)) {
-            warnDeprecated(TreeInfo.diagnosticPositionFor(m, tree), other);
+        if (!isDeprecatedOverrideIgnorable(other, origin)) {
+            checkDeprecated(TreeInfo.diagnosticPositionFor(m, tree), m, other);
         }
     }
     // where
@@ -1827,7 +1891,7 @@
                             "(" + types.memberType(diagType2, s2).getParameterTypes() + ")");
                         return s2;
                     }
-                } else if (!checkNameClash((ClassSymbol)site.tsym, s1, s2)) {
+                } else if (checkNameClash((ClassSymbol)site.tsym, s1, s2)) {
                     log.error(pos,
                             "name.clash.same.erasure.no.override",
                             s1, s1.location(),
@@ -1909,18 +1973,10 @@
     }
 
     private boolean checkNameClash(ClassSymbol origin, Symbol s1, Symbol s2) {
-        if (s1.kind == MTH &&
-                    s1.isInheritedIn(origin, types) &&
-                    (s1.flags() & SYNTHETIC) == 0 &&
-                    !s2.isConstructor()) {
-            Type er1 = s2.erasure(types);
-            Type er2 = s1.erasure(types);
-            if (types.isSameTypes(er1.getParameterTypes(),
-                    er2.getParameterTypes())) {
-                    return false;
-            }
-        }
-        return true;
+        ClashFilter cf = new ClashFilter(origin.type);
+        return (cf.accepts(s1) &&
+                cf.accepts(s2) &&
+                types.hasSameArgs(s1.erasure(types), s2.erasure(types)));
     }
 
 
@@ -2259,52 +2315,82 @@
      *  @param site The class whose methods are checked.
      *  @param sym  The method symbol to be checked.
      */
-    void checkClashes(DiagnosticPosition pos, Type site, Symbol sym) {
-        List<Type> supertypes = types.closure(site);
-        for (List<Type> l = supertypes; l.nonEmpty(); l = l.tail) {
-            for (List<Type> m = supertypes; m.nonEmpty(); m = m.tail) {
-                checkClashes(pos, l.head, m.head, site, sym);
+    void checkOverrideClashes(DiagnosticPosition pos, Type site, MethodSymbol sym) {
+         ClashFilter cf = new ClashFilter(site);
+         //for each method m1 that is a member of 'site'...
+         for (Scope.Entry e1 = types.membersClosure(site).lookup(sym.name, cf) ;
+                e1.scope != null ; e1 = e1.next(cf)) {
+            //...find another method m2 that is overridden (directly or indirectly)
+            //by method 'sym' in 'site'
+            for (Scope.Entry e2 = types.membersClosure(site).lookup(sym.name, cf) ;
+                    e2.scope != null ; e2 = e2.next(cf)) {
+                if (e1.sym == e2.sym || !sym.overrides(e2.sym, site.tsym, types, false)) continue;
+                //if (i) the signature of 'sym' is not a subsignature of m1 (seen as
+                //a member of 'site') and (ii) m1 has the same erasure as m2, issue an error
+                if (!types.isSubSignature(sym.type, types.memberType(site, e1.sym)) &&
+                        types.hasSameArgs(e1.sym.erasure(types), e2.sym.erasure(types))) {
+                    sym.flags_field |= CLASH;
+                    String key = e2.sym == sym ?
+                            "name.clash.same.erasure.no.override" :
+                            "name.clash.same.erasure.no.override.1";
+                    log.error(pos,
+                            key,
+                            sym, sym.location(),
+                            e1.sym, e1.sym.location(),
+                            e2.sym, e2.sym.location());
+                    return;
+                }
             }
         }
     }
 
-    /** Reports an error whenever 'sym' seen as a member of type 't1' clashes with
-     *  some unrelated method defined in 't2'.
+    /** Check that all static methods accessible from 'site' are
+     *  mutually compatible (JLS 8.4.8).
+     *
+     *  @param pos  Position to be used for error reporting.
+     *  @param site The class whose methods are checked.
+     *  @param sym  The method symbol to be checked.
      */
-    private void checkClashes(DiagnosticPosition pos, Type t1, Type t2, Type site, Symbol s1) {
+    void checkHideClashes(DiagnosticPosition pos, Type site, MethodSymbol sym) {
         ClashFilter cf = new ClashFilter(site);
-        s1 = ((MethodSymbol)s1).implementedIn(t1.tsym, types);
-        if (s1 == null) return;
-        Type st1 = types.memberType(site, s1);
-        for (Scope.Entry e2 = t2.tsym.members().lookup(s1.name, cf); e2.scope != null; e2 = e2.next(cf)) {
-            Symbol s2 = e2.sym;
-            if (s1 == s2) continue;
-            Type st2 = types.memberType(site, s2);
-            if (!types.overrideEquivalent(st1, st2) &&
-                    !checkNameClash((ClassSymbol)site.tsym, s1, s2)) {
+        //for each method m1 that is a member of 'site'...
+        for (Scope.Entry e = types.membersClosure(site).lookup(sym.name, cf) ;
+                e.scope != null ; e = e.next(cf)) {
+            //if (i) the signature of 'sym' is not a subsignature of m1 (seen as
+            //a member of 'site') and (ii) 'sym' has the same erasure as m1, issue an error
+            if (!types.isSubSignature(sym.type, types.memberType(site, e.sym)) &&
+                    types.hasSameArgs(e.sym.erasure(types), sym.erasure(types))) {
                 log.error(pos,
-                        "name.clash.same.erasure.no.override",
-                        s1, s1.location(),
-                        s2, s2.location());
-            }
-        }
-    }
-    //where
-    private class ClashFilter implements Filter<Symbol> {
+                        "name.clash.same.erasure.no.hide",
+                        sym, sym.location(),
+                        e.sym, e.sym.location());
+                return;
+             }
+         }
+     }
 
-        Type site;
+     //where
+     private class ClashFilter implements Filter<Symbol> {
 
-        ClashFilter(Type site) {
-            this.site = site;
-        }
+         Type site;
 
-        public boolean accepts(Symbol s) {
-            return s.kind == MTH &&
-                    (s.flags() & SYNTHETIC) == 0 &&
-                    s.isInheritedIn(site.tsym, types) &&
-                    !s.isConstructor();
-        }
-    }
+         ClashFilter(Type site) {
+             this.site = site;
+         }
+
+         boolean shouldSkip(Symbol s) {
+             return (s.flags() & CLASH) != 0 &&
+                s.owner == site.tsym;
+         }
+
+         public boolean accepts(Symbol s) {
+             return s.kind == MTH &&
+                     (s.flags() & SYNTHETIC) == 0 &&
+                     !shouldSkip(s) &&
+                     s.isInheritedIn(site.tsym, types) &&
+                     !s.isConstructor();
+         }
+     }
 
     /** Report a conflict between a user symbol and a synthetic symbol.
      */
@@ -2434,14 +2520,6 @@
             validateAnnotation(a, s);
     }
 
-    /** Check the type annotations
-     */
-    public void validateTypeAnnotations(List<JCTypeAnnotation> annotations, boolean isTypeParameter) {
-        if (skipAnnotations) return;
-        for (JCTypeAnnotation a : annotations)
-            validateTypeAnnotation(a, isTypeParameter);
-    }
-
     /** Check an annotation of a symbol.
      */
     public void validateAnnotation(JCAnnotation a, Symbol s) {
@@ -2456,15 +2534,6 @@
         }
     }
 
-    public void validateTypeAnnotation(JCTypeAnnotation a, boolean isTypeParameter) {
-        if (a.type == null)
-            throw new AssertionError("annotation tree hasn't been attributed yet: " + a);
-        validateAnnotationTree(a);
-
-        if (!isTypeAnnotation(a, isTypeParameter))
-            log.error(a.pos(), "annotation.type.not.applicable");
-    }
-
     /** Is s a method symbol that overrides a method in a superclass? */
     boolean isOverrider(Symbol s) {
         if (s.kind != MTH || s.isStatic())
@@ -2483,25 +2552,6 @@
         return false;
     }
 
-    /** Is the annotation applicable to type annotations */
-    boolean isTypeAnnotation(JCTypeAnnotation a, boolean isTypeParameter) {
-        Attribute.Compound atTarget =
-            a.annotationType.type.tsym.attribute(syms.annotationTargetType.tsym);
-        if (atTarget == null) return true;
-        Attribute atValue = atTarget.member(names.value);
-        if (!(atValue instanceof Attribute.Array)) return true; // error recovery
-        Attribute.Array arr = (Attribute.Array) atValue;
-        for (Attribute app : arr.values) {
-            if (!(app instanceof Attribute.Enum)) return true; // recovery
-            Attribute.Enum e = (Attribute.Enum) app;
-            if (!isTypeParameter && e.value.name == names.TYPE_USE)
-                return true;
-            else if (isTypeParameter && e.value.name == names.TYPE_PARAMETER)
-                return true;
-        }
-        return false;
-    }
-
     /** Is the annotation applicable to the symbol? */
     boolean annotationApplicable(JCAnnotation a, Symbol s) {
         Attribute.Compound atTarget =
@@ -2625,6 +2675,32 @@
         }
     }
 
+    void checkDeprecated(final DiagnosticPosition pos, final Symbol other, final Symbol s) {
+        if ((s.flags() & DEPRECATED) != 0 &&
+                (other.flags() & DEPRECATED) == 0 &&
+                s.outermostClass() != other.outermostClass()) {
+            deferredLintHandler.report(new DeferredLintHandler.LintLogger() {
+                @Override
+                public void report() {
+                    warnDeprecated(pos, s);
+                }
+            });
+        };
+    }
+
+    void checkSunAPI(final DiagnosticPosition pos, final Symbol s) {
+        if ((s.flags() & PROPRIETARY) != 0) {
+            deferredLintHandler.report(new DeferredLintHandler.LintLogger() {
+                public void report() {
+                    if (enableSunApiLintControl)
+                      warnSunApi(pos, "sun.proprietary", s);
+                    else
+                      log.strictWarning(pos, "sun.proprietary", s);
+                }
+            });
+        }
+    }
+
 /* *************************************************************************
  * Check for recursive annotation elements.
  **************************************************************************/
@@ -2633,7 +2709,7 @@
      */
     void checkNonCyclicElements(JCClassDecl tree) {
         if ((tree.sym.flags_field & ANNOTATION) == 0) return;
-        assert (tree.sym.flags_field & LOCKED) == 0;
+        Assert.check((tree.sym.flags_field & LOCKED) == 0);
         try {
             tree.sym.flags_field |= LOCKED;
             for (JCTree def : tree.defs) {
@@ -2750,9 +2826,9 @@
                        Type right) {
         if (operator.opcode == ByteCodes.error) {
             log.error(pos,
-                      "operator.cant.be.applied",
+                      "operator.cant.be.applied.1",
                       treeinfo.operatorName(tag),
-                      List.of(left, right));
+                      left, right);
         }
         return operator.opcode;
     }
@@ -2796,21 +2872,35 @@
         if (sym.owner.name == names.any) return false;
         for (Scope.Entry e = s.lookup(sym.name); e.scope == s; e = e.next()) {
             if (sym != e.sym &&
-                sym.kind == e.sym.kind &&
-                sym.name != names.error &&
-                (sym.kind != MTH || types.hasSameArgs(types.erasure(sym.type), types.erasure(e.sym.type)))) {
-                if ((sym.flags() & VARARGS) != (e.sym.flags() & VARARGS))
+                    (e.sym.flags() & CLASH) == 0 &&
+                    sym.kind == e.sym.kind &&
+                    sym.name != names.error &&
+                    (sym.kind != MTH || types.hasSameArgs(types.erasure(sym.type), types.erasure(e.sym.type)))) {
+                if ((sym.flags() & VARARGS) != (e.sym.flags() & VARARGS)) {
                     varargsDuplicateError(pos, sym, e.sym);
-                else if (sym.kind == MTH && !types.overrideEquivalent(sym.type, e.sym.type))
+                    return true;
+                } else if (sym.kind == MTH && !hasSameSignature(sym.type, e.sym.type)) {
                     duplicateErasureError(pos, sym, e.sym);
-                else
+                    sym.flags_field |= CLASH;
+                    return true;
+                } else {
                     duplicateError(pos, e.sym);
-                return false;
+                    return false;
+                }
             }
         }
         return true;
     }
     //where
+        boolean hasSameSignature(Type mt1, Type mt2) {
+            if (mt1.tag == FORALL && mt2.tag == FORALL) {
+                ForAll fa1 = (ForAll)mt1;
+                ForAll fa2 = (ForAll)mt2;
+                mt2 = types.subst(fa2, fa2.tvars, fa1.tvars);
+            }
+            return types.hasSameArgs(mt1.asMethodType(types), mt2.asMethodType(types));
+        }
+
     /** Report duplicate declaration error.
      */
     void duplicateErasureError(DiagnosticPosition pos, Symbol sym1, Symbol sym2) {
--- a/src/share/classes/com/sun/tools/javac/comp/Enter.java	Wed Feb 23 16:39:34 2011 -0500
+++ b/src/share/classes/com/sun/tools/javac/comp/Enter.java	Thu Mar 10 18:42:31 2011 -0500
@@ -95,7 +95,6 @@
 
     Log log;
     Symtab syms;
-    Scope.ScopeCounter scopeCounter;
     Check chk;
     TreeMaker make;
     ClassReader reader;
@@ -123,7 +122,6 @@
         reader = ClassReader.instance(context);
         make = TreeMaker.instance(context);
         syms = Symtab.instance(context);
-        scopeCounter = Scope.ScopeCounter.instance(context);
         chk = Check.instance(context);
         memberEnter = MemberEnter.instance(context);
         types = Types.instance(context);
@@ -192,7 +190,7 @@
      */
     public Env<AttrContext> classEnv(JCClassDecl tree, Env<AttrContext> env) {
         Env<AttrContext> localEnv =
-            env.dup(tree, env.info.dup(new Scope.ClassScope(tree.sym, scopeCounter)));
+            env.dup(tree, env.info.dup(new Scope(tree.sym)));
         localEnv.enclClass = tree;
         localEnv.outer = env;
         localEnv.info.isSelfCall = false;
@@ -328,7 +326,7 @@
             c.flatname = names.fromString(tree.packge + "." + name);
             c.sourcefile = tree.sourcefile;
             c.completer = null;
-            c.members_field = new Scope.ClassScope(c, scopeCounter);
+            c.members_field = new Scope(c);
             tree.packge.package_info = c;
         }
         classEnter(tree.defs, topEnv);
@@ -396,7 +394,7 @@
         c.completer = memberEnter;
         c.flags_field = chk.checkFlags(tree.pos(), tree.mods.flags, c, tree);
         c.sourcefile = env.toplevel.sourcefile;
-        c.members_field = new Scope.ClassScope(c, scopeCounter);
+        c.members_field = new Scope(c);
 
         setEnclosingType(c, owner);
 
--- a/src/share/classes/com/sun/tools/javac/comp/Flow.java	Wed Feb 23 16:39:34 2011 -0500
+++ b/src/share/classes/com/sun/tools/javac/comp/Flow.java	Thu Mar 10 18:42:31 2011 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -38,7 +38,6 @@
 
 import com.sun.tools.javac.code.Symbol.*;
 import com.sun.tools.javac.code.Type.*;
-import com.sun.tools.javac.comp.Resolve;
 import com.sun.tools.javac.tree.JCTree.*;
 
 import static com.sun.tools.javac.code.Flags.*;
@@ -735,7 +734,7 @@
 
         lint = lint.augment(tree.sym.attributes_field);
 
-        assert pendingExits.isEmpty();
+        Assert.check(pendingExits.isEmpty());
 
         try {
             boolean isInitialConstructor =
@@ -773,7 +772,7 @@
                 PendingExit exit = exits.head;
                 exits = exits.tail;
                 if (exit.thrown == null) {
-                    assert exit.tree.getTag() == JCTree.RETURN;
+                    Assert.check(exit.tree.getTag() == JCTree.RETURN);
                     if (isInitialConstructor) {
                         inits = exit.inits;
                         for (int i = firstadr; i < nextadr; i++)
@@ -1441,11 +1440,6 @@
         }
     }
 
-    public void visitAnnotatedType(JCAnnotatedType tree) {
-        // annotations don't get scanned
-        tree.underlyingType.accept(this);
-    }
-
     public void visitIdent(JCIdent tree) {
         if (tree.sym.kind == VAR) {
             checkInit(tree.pos(), (VarSymbol)tree.sym);
@@ -1465,7 +1459,6 @@
         if (!tree.type.isErroneous()
             && lint.isEnabled(Lint.LintCategory.CAST)
             && types.isSameType(tree.expr.type, tree.clazz.type)
-            && !(ignoreAnnotatedCasts && containsTypeAnnotation(tree.clazz))
             && !is292targetTypeCast(tree)) {
             log.warning(Lint.LintCategory.CAST,
                     tree.pos(), "redundant.cast", tree.expr.type);
@@ -1474,8 +1467,9 @@
     //where
         private boolean is292targetTypeCast(JCTypeCast tree) {
             boolean is292targetTypeCast = false;
-            if (tree.expr.getTag() == JCTree.APPLY) {
-                JCMethodInvocation apply = (JCMethodInvocation)tree.expr;
+            JCExpression expr = TreeInfo.skipParens(tree.expr);
+            if (expr.getTag() == JCTree.APPLY) {
+                JCMethodInvocation apply = (JCMethodInvocation)expr;
                 Symbol sym = TreeInfo.symbol(apply.meth);
                 is292targetTypeCast = sym != null &&
                     sym.kind == MTH &&
@@ -1489,23 +1483,6 @@
     }
 
 /**************************************************************************
- * utility methods for ignoring type-annotated casts lint checking
- *************************************************************************/
-    private static final boolean ignoreAnnotatedCasts = true;
-    private static class AnnotationFinder extends TreeScanner {
-        public boolean foundTypeAnno = false;
-        public void visitAnnotation(JCAnnotation tree) {
-            foundTypeAnno = foundTypeAnno || (tree instanceof JCTypeAnnotation);
-        }
-    }
-
-    private boolean containsTypeAnnotation(JCTree e) {
-        AnnotationFinder finder = new AnnotationFinder();
-        finder.scan(e);
-        return finder.foundTypeAnno;
-    }
-
-/**************************************************************************
  * main method
  *************************************************************************/
 
--- a/src/share/classes/com/sun/tools/javac/comp/Infer.java	Wed Feb 23 16:39:34 2011 -0500
+++ b/src/share/classes/com/sun/tools/javac/comp/Infer.java	Thu Mar 10 18:42:31 2011 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -27,6 +27,7 @@
 
 import com.sun.tools.javac.tree.JCTree;
 import com.sun.tools.javac.tree.JCTree.JCTypeCast;
+import com.sun.tools.javac.tree.TreeInfo;
 import com.sun.tools.javac.util.*;
 import com.sun.tools.javac.util.List;
 import com.sun.tools.javac.code.*;
@@ -206,19 +207,20 @@
      *  Throw a NoInstanceException if this not possible.
      */
     void maximizeInst(UndetVar that, Warner warn) throws NoInstanceException {
+        List<Type> hibounds = Type.filter(that.hibounds, errorFilter);
         if (that.inst == null) {
-            if (that.hibounds.isEmpty())
+            if (hibounds.isEmpty())
                 that.inst = syms.objectType;
-            else if (that.hibounds.tail.isEmpty())
-                that.inst = that.hibounds.head;
+            else if (hibounds.tail.isEmpty())
+                that.inst = hibounds.head;
             else
-                that.inst = types.glb(that.hibounds);
+                that.inst = types.glb(hibounds);
         }
         if (that.inst == null ||
             that.inst.isErroneous())
             throw ambiguousNoInstanceException
                 .setMessage("no.unique.maximal.instance.exists",
-                            that.qtype, that.hibounds);
+                            that.qtype, hibounds);
     }
     //where
         private boolean isSubClass(Type t, final List<Type> ts) {
@@ -242,38 +244,47 @@
             return true;
         }
 
+    private Filter<Type> errorFilter = new Filter<Type>() {
+        @Override
+        public boolean accepts(Type t) {
+            return !t.isErroneous();
+        }
+    };
+
     /** Instantiate undetermined type variable to the lub of all its lower bounds.
      *  Throw a NoInstanceException if this not possible.
      */
     void minimizeInst(UndetVar that, Warner warn) throws NoInstanceException {
+        List<Type> lobounds = Type.filter(that.lobounds, errorFilter);
         if (that.inst == null) {
-            if (that.lobounds.isEmpty())
+            if (lobounds.isEmpty())
                 that.inst = syms.botType;
             else if ((that.qtype.tsym.flags() & Flags.THROWS) != 0 ) {
-                List<Type> compTypes = List.filter(that.lobounds, syms.voidType);
+                List<Type> compTypes = List.filter(lobounds, syms.voidType);
                 that.inst = new DisjunctiveType(chk.union(compTypes), types);
             } else {
-                that.inst = types.lub(that.lobounds);
+                that.inst = types.lub(lobounds);
             }
             if (that.inst == null || that.inst.tag == ERROR)
                     throw ambiguousNoInstanceException
                         .setMessage("no.unique.minimal.instance.exists",
-                                    that.qtype, that.lobounds);
+                                    that.qtype, lobounds);
             // VGJ: sort of inlined maximizeInst() below.  Adding
             // bounds can cause lobounds that are above hibounds.
-            if (that.hibounds.isEmpty())
+            List<Type> hibounds = Type.filter(that.hibounds, errorFilter);
+            if (hibounds.isEmpty())
                 return;
             Type hb = null;
-            if (that.hibounds.tail.isEmpty())
-                hb = that.hibounds.head;
-            else for (List<Type> bs = that.hibounds;
+            if (hibounds.tail.isEmpty())
+                hb = hibounds.head;
+            else for (List<Type> bs = hibounds;
                       bs.nonEmpty() && hb == null;
                       bs = bs.tail) {
-                if (isSubClass(bs.head, that.hibounds))
+                if (isSubClass(bs.head, hibounds))
                     hb = types.fromUnknownFun.apply(bs.head);
             }
             if (hb == null ||
-                !types.isSubtypeUnchecked(hb, that.hibounds, warn) ||
+                !types.isSubtypeUnchecked(hb, hibounds, warn) ||
                 !types.isSubtypeUnchecked(that.inst, hb, warn))
                 throw ambiguousNoInstanceException;
         }
@@ -388,7 +399,7 @@
         boolean forcePostCheck = false;
         //need to capture exactly once - otherwise subsequent
         //applicability checks might fail
-        ListBuffer<Type> capturedArgs = ListBuffer.lb();
+        final ListBuffer<Type> capturedArgs = ListBuffer.lb();
         List<Type> actuals = argtypes;
         List<Type> actualsNoCapture = argtypes;
         // instantiate all polymorphic argument types and
@@ -438,7 +449,9 @@
 
             // for varargs arguments as well
             if (useVarargs) {
-                Type elemType = types.elemtype(varargsFormal);
+                //note: if applicability check is triggered by most specific test,
+                //the last argument of a varargs is _not_ an array type (see JLS 15.12.2.5)
+                Type elemType = types.elemtypeOrType(varargsFormal);
                 Type elemUndet = types.subst(elemType, tvars, undetvars);
                 while (actuals.nonEmpty()) {
                     Type actual = actuals.head.baseType();
@@ -539,11 +552,8 @@
                         inferred2 = inferred2.tail;
                     }
                     List<Type> formals = types.subst(mt2.argtypes, tvars, inferred);
-                    if (!rs.argumentsAcceptable(env, capturedArgs2, formals,
-                           allowBoxing, useVarargs, warn, phase)) {
-                      // inferred method is not applicable
-                      throw invalidInstanceException.setMessage("inferred.do.not.conform.to.params", formals, argtypes);
-                    }
+                    // check that actuals conform to inferred formals
+                    checkArgumentsAcceptable(env, capturedArgs.toList(), formals, allowBoxing, useVarargs, warn, phase);
                     // check that inferred bounds conform to their bounds
                     checkWithinBounds(all_tvars,
                            types.subst(inferredTypes, tvars, inferred), warn);
@@ -557,17 +567,26 @@
             }};
             return mt2;
         }
-        else if (!rs.argumentsAcceptable(env, capturedArgs.toList(), types.subst(mt.getParameterTypes(), tvars, insttypes.toList()),
-                allowBoxing, useVarargs, warn, ForAll.InstantiationPhase.RESOLUTION)) {
-            // inferred method is not applicable
-            throw invalidInstanceException.setMessage("inferred.do.not.conform.to.params", mt.getParameterTypes(), argtypes);
-        }
         else {
+            // check that actuals conform to inferred formals
+            checkArgumentsAcceptable(env, capturedArgs.toList(), mt.getParameterTypes(), allowBoxing, useVarargs, warn, ForAll.InstantiationPhase.RESOLUTION);
             // return instantiated version of method type
             return mt;
         }
     }
     //where
+
+    private void checkArgumentsAcceptable(Env<AttrContext> env, List<Type> actuals, List<Type> formals,
+                boolean allowBoxing, boolean useVarargs, Warner warn, ForAll.InstantiationPhase phase) {
+            try {
+                rs.checkRawArgumentsAcceptable(env, actuals, formals,
+                       allowBoxing, useVarargs, warn, phase);
+            }
+            catch (Resolve.InapplicableMethodException ex) {
+                // inferred method is not applicable
+                throw invalidInstanceException.setMessage(ex.getDiagnostic());
+            }
+        }
     private ForAll makeUnknownArgumentForAll(final ForAll fa, final List<Type> undetvars) {
         return new ForAll(fa.tvars, fa.qtype) {
             @Override
@@ -663,7 +682,8 @@
         for (List<Type> tvs = tvars, args = arguments;
              tvs.nonEmpty();
              tvs = tvs.tail, args = args.tail) {
-            if (args.head instanceof UndetVar) continue;
+            if (args.head instanceof UndetVar ||
+                    tvars.head.getUpperBound().isErroneous()) continue;
             List<Type> bounds = types.subst(types.getBounds((TypeVar)tvs.head), tvars, arguments);
             if (!types.isSubtypeUnchecked(args.head, bounds, warn))
                 throw invalidInstanceException
@@ -674,43 +694,39 @@
 
     /**
      * Compute a synthetic method type corresponding to the requested polymorphic
-     * method signature. If no explicit return type is supplied, a provisional
-     * return type is computed (just Object in case of non-transitional 292)
+     * method signature. The target return type is computed from the immediately
+     * enclosing scope surrounding the polymorphic-signature call.
      */
     Type instantiatePolymorphicSignatureInstance(Env<AttrContext> env, Type site,
                                             Name name,
                                             MethodSymbol spMethod,  // sig. poly. method or null if none
-                                            List<Type> argtypes,
-                                            List<Type> typeargtypes) {
+                                            List<Type> argtypes) {
         final Type restype;
-        if (rs.allowTransitionalJSR292 && typeargtypes.nonEmpty()) {
-            restype = typeargtypes.head;
-        } else {
-            //The return type for a polymorphic signature call is computed from
-            //the enclosing tree E, as follows: if E is a cast, then use the
-            //target type of the cast expression as a return type; if E is an
-            //expression statement, the return type is 'void' - otherwise the
-            //return type is simply 'Object'. A correctness check ensures that
-            //env.next refers to the lexically enclosing environment in which
-            //the polymorphic signature call environment is nested.
 
-            switch (env.next.tree.getTag()) {
-                case JCTree.TYPECAST:
-                    JCTypeCast castTree = (JCTypeCast)env.next.tree;
-                    restype = (castTree.expr == env.tree) ?
-                        castTree.clazz.type :
-                        syms.objectType;
-                    break;
-                case JCTree.EXEC:
-                    JCTree.JCExpressionStatement execTree =
-                            (JCTree.JCExpressionStatement)env.next.tree;
-                    restype = (execTree.expr == env.tree) ?
-                        syms.voidType :
-                        syms.objectType;
-                    break;
-                default:
-                    restype = syms.objectType;
-            }
+        //The return type for a polymorphic signature call is computed from
+        //the enclosing tree E, as follows: if E is a cast, then use the
+        //target type of the cast expression as a return type; if E is an
+        //expression statement, the return type is 'void' - otherwise the
+        //return type is simply 'Object'. A correctness check ensures that
+        //env.next refers to the lexically enclosing environment in which
+        //the polymorphic signature call environment is nested.
+
+        switch (env.next.tree.getTag()) {
+            case JCTree.TYPECAST:
+                JCTypeCast castTree = (JCTypeCast)env.next.tree;
+                restype = (TreeInfo.skipParens(castTree.expr) == env.tree) ?
+                    castTree.clazz.type :
+                    syms.objectType;
+                break;
+            case JCTree.EXEC:
+                JCTree.JCExpressionStatement execTree =
+                        (JCTree.JCExpressionStatement)env.next.tree;
+                restype = (TreeInfo.skipParens(execTree.expr) == env.tree) ?
+                    syms.voidType :
+                    syms.objectType;
+                break;
+            default:
+                restype = syms.objectType;
         }
 
         List<Type> paramtypes = Type.map(argtypes, implicitArgType);
--- a/src/share/classes/com/sun/tools/javac/comp/Lower.java	Wed Feb 23 16:39:34 2011 -0500
+++ b/src/share/classes/com/sun/tools/javac/comp/Lower.java	Thu Mar 10 18:42:31 2011 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -86,7 +86,6 @@
     private final Name classDollar;
     private Types types;
     private boolean debugLower;
-    private Scope.ScopeCounter scopeCounter;
     private PkgInfo pkginfoOpt;
     private boolean emitDefenderMethodAnnos;
     private final boolean useMethodHandleLDC;
@@ -96,7 +95,6 @@
         names = Names.instance(context);
         log = Log.instance(context);
         syms = Symtab.instance(context);
-        scopeCounter = Scope.ScopeCounter.instance(context);
         rs = Resolve.instance(context);
         chk = Check.instance(context);
         attr = Attr.instance(context);
@@ -599,7 +597,7 @@
         c.flatname = chk.localClassName(c);
         c.sourcefile = owner.sourcefile;
         c.completer = null;
-        c.members_field = new Scope.ClassScope(c, scopeCounter);
+        c.members_field = new Scope(c);
         c.flags_field = flags;
         ClassType ctype = (ClassType) c.type;
         ctype.supertype_field = syms.objectType;
@@ -721,7 +719,9 @@
     /** Look up an implicit method in a given scope (such as MethodHandle.invoke()).
      */
     private MethodSymbol lookupImplicitMethod(DiagnosticPosition pos, Name name, Type qual, List<Type> args, Type restype) {
-        return rs.resolveInternalMethod(pos, attrEnv, qual, name, args, List.of(restype));
+        MethodSymbol msym = rs.resolveInternalMethod(pos, attrEnv, qual, name, args, List.<Type>nil());
+        ((MethodType)msym.type).restype = restype;
+        return msym;
     }
 
     /** Look up a field.
@@ -1092,8 +1092,7 @@
             }
             // Otherwise replace the variable by its proxy.
             sym = proxies.lookup(proxyName(sym.name)).sym;
-            assert sym != null &&
-                    (sym.flags_field & (FINAL | EFFECTIVELY_FINAL)) != 0;
+            Assert.check(sym != null && (FINAL | EFFECTIVELY_FINAL) != 0);
             tree = make.at(tree.pos).Ident(sym);
         }
         JCExpression base = (tree.getTag() == JCTree.SELECT) ? ((JCFieldAccess) tree).selected : null;
@@ -1245,7 +1244,7 @@
      */
     void makeAccessible(Symbol sym) {
         JCClassDecl cdef = classDef(sym.owner.enclClass());
-        assert cdef != null : "class def not found: " + sym + " in " + sym.owner;
+        if (cdef == null) Assert.error("class def not found: " + sym + " in " + sym.owner);
         if (sym.name == names.init) {
             cdef.defs = cdef.defs.prepend(
                 accessConstructorDef(cdef.pos, sym, accessConstrs.get(sym)));
@@ -1518,7 +1517,7 @@
             expr = make.Ident(var.sym).setType(resource.type);
             stats.add(var);
         } else {
-            assert resource instanceof JCExpression;
+            Assert.check(resource instanceof JCExpression);
             VarSymbol syntheticTwrVar =
             new VarSymbol(SYNTHETIC | FINAL,
                           makeSyntheticName(names.fromString("twrVar" +
@@ -1612,7 +1611,7 @@
         List<VarSymbol> ots = outerThisStack;
         if (ots.isEmpty()) {
             log.error(pos, "no.encl.instance.of.type.in.scope", c);
-            assert false;
+            Assert.error();
             return makeNull();
         }
         VarSymbol ot = ots.head;
@@ -1625,14 +1624,14 @@
                     log.error(pos,
                               "no.encl.instance.of.type.in.scope",
                               c);
-                    assert false; // should have been caught in Attr
+                    Assert.error(); // should have been caught in Attr
                     return tree;
                 }
                 ot = ots.head;
             } while (ot.owner != otc);
             if (otc.owner.kind != PCK && !otc.hasOuterInstance()) {
                 chk.earlyRefError(pos, c);
-                assert false; // should have been caught in Attr
+                Assert.error(); // should have been caught in Attr
                 return makeNull();
             }
             tree = access(make.at(pos).Select(tree, ot));
@@ -1676,7 +1675,7 @@
         List<VarSymbol> ots = outerThisStack;
         if (ots.isEmpty()) {
             log.error(pos, "no.encl.instance.of.type.in.scope", c);
-            assert false;
+            Assert.error();
             return makeNull();
         }
         VarSymbol ot = ots.head;
@@ -1689,7 +1688,7 @@
                     log.error(pos,
                         "no.encl.instance.of.type.in.scope",
                         c);
-                    assert false;
+                    Assert.error();
                     return tree;
                 }
                 ot = ots.head;
@@ -1706,9 +1705,9 @@
     JCStatement initField(int pos, Name name) {
         Scope.Entry e = proxies.lookup(name);
         Symbol rhs = e.sym;
-        assert rhs.owner.kind == MTH;
+        Assert.check(rhs.owner.kind == MTH);
         Symbol lhs = e.next().sym;
-        assert rhs.owner.owner == lhs.owner;
+        Assert.check(rhs.owner.owner == lhs.owner);
         make.at(pos);
         return
             make.Exec(
@@ -1721,9 +1720,9 @@
      */
     JCStatement initOuterThis(int pos) {
         VarSymbol rhs = outerThisStack.head;
-        assert rhs.owner.kind == MTH;
+        Assert.check(rhs.owner.kind == MTH);
         VarSymbol lhs = outerThisStack.tail.head;
-        assert rhs.owner.owner == lhs.owner;
+        Assert.check(rhs.owner.owner == lhs.owner);
         make.at(pos);
         return
             make.Exec(
@@ -1923,7 +1922,7 @@
     
     /** Create an attributed tree of the form left.name(). */
     private JCMethodInvocation makeCall(JCExpression left, Name name, List<JCExpression> args) {
-        assert left.type != null;
+        Assert.checkNonNull(left.type);
         Symbol funcsym = lookupMethod(make_pos, name, left.type,
                                       TreeInfo.types(args));
         return make.App(make.Select(left, funcsym), args);
@@ -2539,7 +2538,7 @@
                          names.valueOf,
                          tree.sym.type,
                          List.of(syms.stringType));
-        assert (valueOfSym.flags() & STATIC) != 0;
+        Assert.check((valueOfSym.flags() & STATIC) != 0);
         VarSymbol nameArgSym = valueOfSym.params.head;
         JCIdent nameVal = make.Ident(nameArgSym);
         JCStatement enum_ValueOf =
@@ -2745,11 +2744,6 @@
         result = tree;
     }
 
-    public void visitAnnotatedType(JCAnnotatedType tree) {
-        tree.underlyingType = translate(tree.underlyingType);
-        result = tree.underlyingType;
-    }
-
     public void visitTypeCast(JCTypeCast tree) {
         tree.clazz = translate(tree.clazz);
         if (tree.type.isPrimitive() != tree.expr.type.isPrimitive() ||
@@ -2990,7 +2984,7 @@
 
     void visitLambdaCall(JCMethodInvocation tree, Symbol meth) {
         JCExpression translatedCall = makeCall(((JCFieldAccess)tree.meth).selected,
-                names.invokeVarargs,
+                names.invokeWithArguments,
                 List.<JCExpression>of(makeArray(syms.objectType, tree.args)));
         Type expectedType = meth.type.getReturnType();
         if (expectedType != syms.voidType) {
@@ -3738,7 +3732,7 @@
                 if (expression != null) { // expression for a "default" case is null
                     String labelExpr = (String) expression.type.constValue();
                     Integer mapping = caseLabelToPosition.put(labelExpr, casePosition);
-                    assert mapping == null;
+                    Assert.checkNull(mapping);
                     int hashCode = labelExpr.hashCode();
 
                     Set<String> stringSet = hashToString.get(hashCode);
@@ -3748,7 +3742,7 @@
                         hashToString.put(hashCode, stringSet);
                     } else {
                         boolean added = stringSet.add(labelExpr);
-                        assert added;
+                        Assert.check(added);
                     }
                 }
                 casePosition++;
@@ -3800,7 +3794,7 @@
             for(Map.Entry<Integer, Set<String>> entry : hashToString.entrySet()) {
                 int hashCode = entry.getKey();
                 Set<String> stringsWithHashCode = entry.getValue();
-                assert stringsWithHashCode.size() >= 1;
+                Assert.check(stringsWithHashCode.size() >= 1);
 
                 JCStatement elsepart = null;
                 for(String caseLabel : stringsWithHashCode ) {
@@ -4233,8 +4227,7 @@
                                          cdef.type,
                                          List.<Type>nil());
 
-        assert(ordinalSym != null);
-        assert(ordinalSym instanceof MethodSymbol);
+        Assert.check(ordinalSym instanceof MethodSymbol);
 
         JCStatement ret = make.Return(make.Ident(ordinalSymbol));
         cdef.defs = cdef.defs.append(make.MethodDef((MethodSymbol)ordinalSym,
@@ -4250,8 +4243,7 @@
                                    cdef.type,
                                    List.<Type>nil());
 
-        assert(nameSym != null);
-        assert(nameSym instanceof MethodSymbol);
+        Assert.check(nameSym instanceof MethodSymbol);
 
         JCStatement ret = make.Return(make.Ident(nameSymbol));
 
@@ -4302,8 +4294,7 @@
                                    cdef.type,
                                    List.of(cdef.sym.type));
 
-        assert(compareToSym != null);
-        assert(compareToSym instanceof MethodSymbol);
+        Assert.check(compareToSym instanceof MethodSymbol);
 
         JCMethodDecl compareToDecl = (JCMethodDecl) TreeInfo.declarationFor(compareToSym, cdef);
 
--- a/src/share/classes/com/sun/tools/javac/comp/MemberEnter.java	Wed Feb 23 16:39:34 2011 -0500
+++ b/src/share/classes/com/sun/tools/javac/comp/MemberEnter.java	Thu Mar 10 18:42:31 2011 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -67,7 +67,6 @@
     private final Check chk;
     private final Attr attr;
     private final Symtab syms;
-    private final Scope.ScopeCounter scopeCounter;
     private final TreeMaker make;
     private final ClassReader reader;
     private final Todo todo;
@@ -75,9 +74,9 @@
     private final Types types;
     private final JCDiagnostic.Factory diags;
     private final Target target;
+    private final DeferredLintHandler deferredLintHandler;
 
     private final boolean skipAnnotations;
-    private final boolean allowSimplifiedVarargs;
 
     public static MemberEnter instance(Context context) {
         MemberEnter instance = context.get(memberEnterKey);
@@ -94,7 +93,6 @@
         chk = Check.instance(context);
         attr = Attr.instance(context);
         syms = Symtab.instance(context);
-        scopeCounter = Scope.ScopeCounter.instance(context);
         make = TreeMaker.instance(context);
         reader = ClassReader.instance(context);
         todo = Todo.instance(context);
@@ -102,10 +100,9 @@
         types = Types.instance(context);
         diags = JCDiagnostic.Factory.instance(context);
         target = Target.instance(context);
+        deferredLintHandler = DeferredLintHandler.instance(context);
         Options options = Options.instance(context);
         skipAnnotations = options.isSet("skipAnnotations");
-        Source source = Source.instance(context);
-        allowSimplifiedVarargs = source.allowSimplifiedVarargs();
     }
 
     /** A queue for classes whose members still need to be entered into the
@@ -608,18 +605,23 @@
 
         Env<AttrContext> localEnv = methodEnv(tree, env);
 
-        // Compute the method type
-        m.type = signature(tree.typarams, tree.params,
-                           tree.restype, tree.thrown,
-                           localEnv);
+        DeferredLintHandler prevLintHandler =
+                chk.setDeferredLintHandler(deferredLintHandler.setPos(tree.pos()));
+        try {
+            // Compute the method type
+            m.type = signature(tree.typarams, tree.params,
+                               tree.restype, tree.thrown,
+                               localEnv);
+        } finally {
+            chk.setDeferredLintHandler(prevLintHandler);
+        }
 
         // Set m.params
         ListBuffer<VarSymbol> params = new ListBuffer<VarSymbol>();
         JCVariableDecl lastParam = null;
         for (List<JCVariableDecl> l = tree.params; l.nonEmpty(); l = l.tail) {
             JCVariableDecl param = lastParam = l.head;
-            assert param.sym != null;
-            params.append(param.sym);
+            params.append(Assert.checkNonNull(param.sym));
         }
         m.params = params.toList();
 
@@ -656,7 +658,14 @@
             localEnv = env.dup(tree, env.info.dup());
             localEnv.info.staticLevel++;
         }
-        attr.attribType(tree.vartype, localEnv);
+        DeferredLintHandler prevLintHandler =
+                chk.setDeferredLintHandler(deferredLintHandler.setPos(tree.pos()));
+        try {
+            attr.attribType(tree.vartype, localEnv);
+        } finally {
+            chk.setDeferredLintHandler(prevLintHandler);
+        }
+
         if ((tree.mods.flags & VARARGS) != 0) {
             //if we are entering a varargs parameter, we need to replace its type
             //(a plain array type) with the more precise VarargsType --- we need
@@ -677,7 +686,7 @@
                     tree.init.getTag() != JCTree.LAMBDA) {
                 Env<AttrContext> initEnv = getInitEnv(tree, env);
                 initEnv.info.enclVar = v;
-                v.setLazyConstValue(initEnv(tree, initEnv), log, attr, tree.init);
+                v.setLazyConstValue(initEnv(tree, initEnv), attr, tree.init);
             }
         }
         if (chk.checkUnique(tree.pos(), v, enclScope)) {
@@ -738,7 +747,7 @@
  *********************************************************************/
 
     Type attribImportType(JCTree tree, Env<AttrContext> env) {
-        assert completionEnabled;
+        Assert.check(completionEnabled);
         try {
             // To prevent deep recursion, suppress completion of some
             // types.
@@ -764,7 +773,7 @@
                     return "annotate " + annotations + " onto " + s + " in " + s.owner;
                 }
                 public void enterAnnotation() {
-                    assert s.kind == PCK || s.attributes_field == null;
+                    Assert.check(s.kind == PCK || s.attributes_field == null);
                     JavaFileObject prev = log.useSource(localEnv.toplevel.sourcefile);
                     try {
                         if (s.attributes_field != null &&
@@ -815,14 +824,14 @@
                 && s.owner.kind != MTH
                 && types.isSameType(c.type, syms.deprecatedType))
                 s.flags_field |= Flags.DEPRECATED;
-            // Internally to java.dyn, a @PolymorphicSignature annotation
+            // Internally to java.lang.invoke, a @PolymorphicSignature annotation
             // acts like a classfile attribute.
             if (!c.type.isErroneous() &&
-                    types.isSameType(c.type, syms.polymorphicSignatureType)) {
+                    (types.isSameType(c.type, syms.polymorphicSignatureType))) {
                 if (!target.hasMethodHandles()) {
                     // Somebody is compiling JDK7 source code to a JDK6 target.
-                    // Make it a strict warning, since it is unlikely but important.
-                    log.strictWarning(env.tree.pos(),
+                    // Make it an error, since it is unlikely but important.
+                    log.error(env.tree.pos(),
                             "wrong.target.for.polymorphic.signature.definition",
                             target.name);
                 }
@@ -875,7 +884,7 @@
         // Suppress some (recursive) MemberEnter invocations
         if (!completionEnabled) {
             // Re-install same completer for next time around and return.
-            assert (sym.flags() & Flags.COMPOUND) == 0;
+            Assert.check((sym.flags() & Flags.COMPOUND) == 0);
             sym.completer = this;
             return;
         }
@@ -967,10 +976,6 @@
             if (hasDeprecatedAnnotation(tree.mods.annotations))
                 c.flags_field |= DEPRECATED;
             annotateLater(tree.mods.annotations, baseEnv, c);
-            // class type parameters use baseEnv but everything uses env
-            for (JCTypeParameter tp : tree.typarams)
-                tp.accept(new TypeAnnotate(baseEnv));
-            tree.accept(new TypeAnnotate(env));
 
             chk.checkNonCyclicDecl(tree);
 
@@ -1028,7 +1033,7 @@
                 c.owner.kind == PCK && c.owner != syms.unnamedPackage &&
                 reader.packageExists(c.fullname))
                 {
-                    log.error(tree.pos, "clash.with.pkg.of.same.name", c);
+                    log.error(tree.pos, "clash.with.pkg.of.same.name", Kinds.kindName(sym), c);
                 }
 
         } catch (CompletionFailure ex) {
@@ -1053,88 +1058,8 @@
         }
     }
 
-    // A sub-phase that "compiles" annotations in annotated types.
-    private class TypeAnnotate extends TreeScanner {
-        private Env<AttrContext> env;
-        public TypeAnnotate(Env<AttrContext> env) { this.env = env; }
-
-        private void enterTypeAnnotations(List<JCTypeAnnotation> annotations) {
-            Set<TypeSymbol> annotated = new HashSet<TypeSymbol>();
-            if (!skipAnnotations)
-                for (List<JCTypeAnnotation> al = annotations; al.nonEmpty(); al = al.tail) {
-                    JCTypeAnnotation a = al.head;
-                    Attribute.Compound c = annotate.enterAnnotation(a,
-                            syms.annotationType,
-                            env);
-                    if (c == null) continue;
-                    Attribute.TypeCompound tc = new Attribute.TypeCompound(c.type, c.values, a.annotation_position);
-                    a.attribute_field = tc;
-                    // Note: @Deprecated has no effect on local variables and parameters
-                    if (!annotated.add(a.type.tsym))
-                        log.error(a.pos, "duplicate.annotation");
-                }
-        }
-
-        // each class (including enclosed inner classes) should be visited
-        // separately through MemberEnter.complete(Symbol)
-        // this flag is used to prevent from visiting inner classes.
-        private boolean isEnclosingClass = false;
-        @Override
-        public void visitClassDef(final JCClassDecl tree) {
-            if (isEnclosingClass)
-                return;
-            isEnclosingClass = true;
-            scan(tree.mods);
-            // type parameter need to be visited with a separate env
-            // scan(tree.typarams);
-            scan(tree.extending);
-            scan(tree.implementing);
-            scan(tree.defs);
-        }
-
-        private void annotate(final JCTree tree, final List<JCTypeAnnotation> annotations) {
-            annotate.later(new Annotate.Annotator() {
-                public String toString() {
-                    return "annotate " + annotations + " onto " + tree;
-                }
-                public void enterAnnotation() {
-                    JavaFileObject prev = log.useSource(env.toplevel.sourcefile);
-                    try {
-                        enterTypeAnnotations(annotations);
-                    } finally {
-                        log.useSource(prev);
-                    }
-                }
-            });
-        }
-
-        @Override
-        public void visitAnnotatedType(final JCAnnotatedType tree) {
-            annotate(tree, tree.annotations);
-            super.visitAnnotatedType(tree);
-        }
-        @Override
-        public void visitTypeParameter(final JCTypeParameter tree) {
-            annotate(tree, tree.annotations);
-            super.visitTypeParameter(tree);
-        }
-        @Override
-        public void visitNewArray(final JCNewArray tree) {
-            annotate(tree, tree.annotations);
-            for (List<JCTypeAnnotation> dimAnnos : tree.dimAnnotations)
-                annotate(tree, dimAnnos);
-            super.visitNewArray(tree);
-        }
-        @Override
-        public void visitMethodDef(JCMethodDecl tree) {
-            annotate(tree, tree.receiverAnnotations);
-            super.visitMethodDef(tree);
-        }
-    }
-
-
     private Env<AttrContext> baseEnv(JCClassDecl tree, Env<AttrContext> env) {
-        Scope baseScope = new Scope.ClassScope(tree.sym, scopeCounter);
+        Scope baseScope = new Scope(tree.sym);
         //import already entered local classes into base scope
         for (Scope.Entry e = env.outer.info.scope.elems ; e != null ; e = e.sibling) {
             if (e.sym.isLocal()) {
--- a/src/share/classes/com/sun/tools/javac/comp/Resolve.java	Wed Feb 23 16:39:34 2011 -0500
+++ b/src/share/classes/com/sun/tools/javac/comp/Resolve.java	Thu Mar 10 18:42:31 2011 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -70,8 +70,6 @@
     public final boolean boxingEnabled; // = source.allowBoxing();
     public final boolean varargsEnabled; // = source.allowVarargs();
     public final boolean allowMethodHandles;
-    public final boolean allowInvokeDynamic;
-    public final boolean allowTransitionalJSR292;
     public final boolean allowDefenderMethods;
     private final boolean debugResolve;
 
@@ -112,13 +110,8 @@
         varargsEnabled = source.allowVarargs();
         Options options = Options.instance(context);
         debugResolve = options.isSet("debugresolve");
-        allowTransitionalJSR292 = options.isSet("allowTransitionalJSR292");
         Target target = Target.instance(context);
-        allowMethodHandles = allowTransitionalJSR292 ||
-                target.hasMethodHandles();
-        allowInvokeDynamic = (allowTransitionalJSR292 ||
-                target.hasInvokedynamic()) &&
-                options.isSet("invokedynamic");
+        allowMethodHandles = target.hasMethodHandles();
         allowDefenderMethods = source.allowDefenderMethods();
         polymorphicSignatureScope = new Scope(syms.noSymbol);
 
@@ -287,7 +280,7 @@
             return true;
         else {
             Symbol s2 = ((MethodSymbol)sym).implementation(site.tsym, types, true);
-            return (s2 == null || s2 == sym ||
+            return (s2 == null || s2 == sym || sym.owner == s2.owner ||
                     s2.isPolymorphicSignatureGeneric() ||
                     !types.isSubSignature(types.memberType(site, s2), types.memberType(site, sym)));
         }
@@ -338,20 +331,16 @@
                         boolean useVarargs,
                         Warner warn)
         throws Infer.InferenceException {
-        boolean polymorphicSignature = (m.isPolymorphicSignatureGeneric() && allowMethodHandles) ||
-                                        isTransitionalDynamicCallSite(site, m);
+        boolean polymorphicSignature = m.isPolymorphicSignatureGeneric() && allowMethodHandles;
         if (useVarargs && (m.flags() & VARARGS) == 0)
-            throw inapplicableMethodException.setMessage(null);
+            throw inapplicableMethodException.setMessage();
         Type mt = types.memberType(site, m);
 
         // tvars is the list of formal type variables for which type arguments
         // need to inferred.
         List<Type> tvars = env.info.tvars;
         if (typeargtypes == null) typeargtypes = List.nil();
-        if (allowTransitionalJSR292 && polymorphicSignature && typeargtypes.nonEmpty()) {
-            //transitional 292 call sites might have wrong number of targs
-        }
-        else if (mt.tag != FORALL && typeargtypes.nonEmpty()) {
+        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
         } else if (mt.tag == FORALL && typeargtypes.nonEmpty()) {
@@ -392,7 +381,7 @@
 
         if (instNeeded)
             return polymorphicSignature ?
-                infer.instantiatePolymorphicSignatureInstance(env, site, m.name, (MethodSymbol)m, argtypes, typeargtypes) :
+                infer.instantiatePolymorphicSignatureInstance(env, site, m.name, (MethodSymbol)m, argtypes) :
                 infer.instantiateMethod(env,
                                     tvars,
                                     (MethodType)mt,
@@ -407,14 +396,6 @@
         return mt;
     }
 
-    boolean isTransitionalDynamicCallSite(Type site, Symbol sym) {
-        return allowTransitionalJSR292 &&  // old logic that doesn't use annotations
-                !sym.isPolymorphicSignatureInstance() &&
-                ((allowMethodHandles && site == syms.methodHandleType && // invokeExact, invokeGeneric, invoke
-                    (sym.name == names.invoke && sym.isPolymorphicSignatureGeneric())) ||
-                (site == syms.invokeDynamicType && allowInvokeDynamic)); // InvokeDynamic.XYZ
-    }
-
     /** Same but returns null instead throwing a NoInstanceException
      */
     Type instantiate(Env<AttrContext> env,
@@ -435,14 +416,16 @@
 
     /** Check if a parameter list accepts a list of args.
      */
-    boolean argumentsAcceptable(Env<AttrContext> env, List<Type> argtypes,
+    boolean argumentsAcceptable(Env<AttrContext> env,
+                                List<Type> argtypes,
                                 List<Type> formals,
                                 boolean allowBoxing,
                                 boolean useVarargs,
                                 Warner warn) {
         return argumentsAcceptable(env, argtypes, formals, allowBoxing, useVarargs, warn, ForAll.InstantiationPhase.CHECK);
     }
-    boolean argumentsAcceptable(Env<AttrContext> env, List<Type> argtypes,
+    boolean argumentsAcceptable(Env<AttrContext> env,
+                                List<Type> argtypes,
                                 List<Type> formals,
                                 boolean allowBoxing,
                                 boolean useVarargs,
@@ -491,7 +474,7 @@
             argtypes = argtypes.tail;
             formals = formals.tail;
         }
-		
+
         if (formals.head != varargsFormal)
             throw inapplicableMethodException.setMessage("arg.length.mismatch"); // not enough args
 
@@ -522,6 +505,14 @@
                 }
     	        argtypes = argtypes.tail;
     	    }
+            //check varargs element type accessibility
+            if (!isAccessible(env, elt)) {
+                Symbol location = env.enclClass.sym;
+                throw inapplicableMethodException.setMessage("inaccessible.varargs.type",
+                            elt,
+                            Kinds.kindName(location),
+                            location);
+            }
         }
     }
     // where
@@ -535,6 +526,10 @@
                 this.diagnostic = null;
                 this.diags = diags;
             }
+            InapplicableMethodException setMessage() {
+                this.diagnostic = null;
+                return this;
+            }
             InapplicableMethodException setMessage(String key) {
                 this.diagnostic = key != null ? diags.fragment(key) : null;
                 return this;
@@ -543,6 +538,10 @@
                 this.diagnostic = key != null ? diags.fragment(key, args) : null;
                 return this;
             }
+            InapplicableMethodException setMessage(JCDiagnostic diag) {
+                this.diagnostic = diag;
+                return this;
+            }
 
             public JCDiagnostic getDiagnostic() {
                 return diagnostic;
@@ -721,7 +720,7 @@
                       boolean operator) {
         if (sym.kind == ERR) return bestSoFar;
         if (!sym.isInheritedIn(site.tsym, types)) return bestSoFar;
-        assert sym.kind < AMBIGUOUS;
+        Assert.check(sym.kind < AMBIGUOUS);
         try {
             rawInstantiate(env, site, sym, argtypes, typeargtypes,
                                allowBoxing, useVarargs, Warner.noWarnings);
@@ -773,13 +772,14 @@
                 Type mt1 = types.memberType(site, m1);
                 Type mt2 = types.memberType(site, m2);
                 if (!types.overrideEquivalent(mt1, mt2))
-                    return new AmbiguityError(m1, m2);
+                    return ambiguityError(m1, m2);
+
                 // same signature; select (a) the non-bridge method, or
                 // (b) the one that overrides the other, or (c) the concrete
                 // one, or (d) merge both abstract signatures
-                if ((m1.flags() & BRIDGE) != (m2.flags() & BRIDGE)) {
+                if ((m1.flags() & BRIDGE) != (m2.flags() & BRIDGE))
                     return ((m1.flags() & BRIDGE) != 0) ? m2 : m1;
-                }
+
                 // if one overrides or hides the other, use it
                 TypeSymbol m1Owner = (TypeSymbol)m1.owner;
                 TypeSymbol m2Owner = (TypeSymbol)m2.owner;
@@ -799,24 +799,24 @@
                 if (m2Abstract && !m1Abstract) return m1;
                 // both abstract or both concrete
                 if (!m1Abstract && !m2Abstract)
-                    return new AmbiguityError(m1, m2);
+                    return ambiguityError(m1, m2);
                 // check that both signatures have the same erasure
                 if (!types.isSameTypes(m1.erasure(types).getParameterTypes(),
                                        m2.erasure(types).getParameterTypes()))
-                    return new AmbiguityError(m1, m2);
+                    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.isSubtype(mt1.getReturnType(), result2))
                     mostSpecific = m1;
-                } else if (types.isSubtype(result2, mt1.getReturnType())) {
+                else if (types.isSubtype(result2, mt1.getReturnType()))
                     mostSpecific = m2;
-                } else {
+                else {
                     // Theoretically, this can't happen, but it is possible
                     // due to error recovery or mixing incompatible class files
-                    return new AmbiguityError(m1, m2);
+                    return ambiguityError(m1, m2);
                 }
                 MethodSymbol result = new MethodSymbol(
                         mostSpecific.flags(),
@@ -838,7 +838,7 @@
             }
             if (m1SignatureMoreSpecific) return m1;
             if (m2SignatureMoreSpecific) return m2;
-            return new AmbiguityError(m1, m2);
+            return ambiguityError(m1, m2);
         case AMBIGUOUS:
             AmbiguityError e = (AmbiguityError)m2;
             Symbol err1 = mostSpecific(m1, e.sym, env, site, allowBoxing, useVarargs);
@@ -848,9 +848,9 @@
             if (err1 instanceof AmbiguityError &&
                 err2 instanceof AmbiguityError &&
                 ((AmbiguityError)err1).sym == ((AmbiguityError)err2).sym)
-                return new AmbiguityError(m1, m2);
+                return ambiguityError(m1, m2);
             else
-                return new AmbiguityError(err1, err2);
+                return ambiguityError(err1, err2);
         default:
             throw new AssertionError();
         }
@@ -905,6 +905,14 @@
             return to;
         }
     }
+    //where
+    Symbol ambiguityError(Symbol m1, Symbol m2) {
+        if (((m1.flags() | m2.flags()) & CLASH) != 0) {
+            return (m1.flags() & CLASH) == 0 ? m1 : m2;
+        } else {
+            return new AmbiguityError(m1, m2);
+        }
+    }
 
     /** Find best qualified method matching given name, type and value
      *  arguments.
@@ -1343,6 +1351,7 @@
      */
     Symbol access(Symbol sym,
                   DiagnosticPosition pos,
+                  Symbol location,
                   Type site,
                   Name name,
                   boolean qualified,
@@ -1353,23 +1362,46 @@
             if (!site.isErroneous() &&
                 !Type.isErroneous(argtypes) &&
                 (typeargtypes==null || !Type.isErroneous(typeargtypes)))
-                logResolveError(errSym, pos, site, name, argtypes, typeargtypes);
+                logResolveError(errSym, pos, location, site, name, argtypes, typeargtypes);
             sym = errSym.access(name, qualified ? site.tsym : syms.noSymbol);
         }
         return sym;
     }
 
-    /** Same as above, but without type arguments and arguments.
+    /** Same as original access(), but without location.
+     */
+    Symbol access(Symbol sym,
+                  DiagnosticPosition pos,
+                  Type site,
+                  Name name,
+                  boolean qualified,
+                  List<Type> argtypes,
+                  List<Type> typeargtypes) {
+        return access(sym, pos, site.tsym, site, name, qualified, argtypes, typeargtypes);
+    }
+
+    /** Same as original access(), but without type arguments and arguments.
+     */
+    Symbol access(Symbol sym,
+                  DiagnosticPosition pos,
+                  Symbol location,
+                  Type site,
+                  Name name,
+                  boolean qualified) {
+        if (sym.kind >= AMBIGUOUS)
+            return access(sym, pos, location, site, name, qualified, List.<Type>nil(), null);
+        else
+            return sym;
+    }
+
+    /** Same as original access(), but without location, type arguments and arguments.
      */
     Symbol access(Symbol sym,
                   DiagnosticPosition pos,
                   Type site,
                   Name name,
                   boolean qualified) {
-        if (sym.kind >= AMBIGUOUS)
-            return access(sym, pos, site, name, qualified, List.<Type>nil(), null);
-        else
-            return sym;
+        return access(sym, pos, site.tsym, site, name, qualified);
     }
 
     /** Check that sym is not an abstract method.
@@ -1487,6 +1519,11 @@
     Symbol resolveQualifiedMethod(DiagnosticPosition pos, Env<AttrContext> env,
                                   Type site, Name name, List<Type> argtypes,
                                   List<Type> typeargtypes) {
+        return resolveQualifiedMethod(pos, env, site.tsym, site, name, argtypes, typeargtypes);
+    }
+    Symbol resolveQualifiedMethod(DiagnosticPosition pos, Env<AttrContext> env,
+                                  Symbol location, Type site, Name name, List<Type> argtypes,
+                                  List<Type> typeargtypes) {
         Symbol sym = startResolution();
         List<MethodResolutionPhase> steps = methodResolutionSteps;
         while (steps.nonEmpty() &&
@@ -1500,26 +1537,25 @@
             steps = steps.tail;
         }
         if (sym.kind >= AMBIGUOUS) {
-            if (site.tsym.isPolymorphicSignatureGeneric() ||
-                    isTransitionalDynamicCallSite(site, sym)) {
+            if (site.tsym.isPolymorphicSignatureGeneric()) {
                 //polymorphic receiver - synthesize new method symbol
                 env.info.varArgs = false;
                 sym = findPolymorphicSignatureInstance(env,
-                        site, name, null, argtypes, typeargtypes);
+                        site, name, null, argtypes);
             }
             else {
                 //if nothing is found return the 'first' error
                 MethodResolutionPhase errPhase =
                         firstErroneousResolutionPhase();
                 sym = access(methodResolutionCache.get(errPhase),
-                        pos, site, name, true, argtypes, typeargtypes);
+                        pos, location, site, name, true, argtypes, typeargtypes);
                 env.info.varArgs = errPhase.isVarargsRequired;
             }
         } else if (allowMethodHandles && sym.isPolymorphicSignatureGeneric()) {
             //non-instantiated polymorphic signature - synthesize new method symbol
             env.info.varArgs = false;
             sym = findPolymorphicSignatureInstance(env,
-                    site, name, (MethodSymbol)sym, argtypes, typeargtypes);
+                    site, name, (MethodSymbol)sym, argtypes);
         }
         return sym;
     }
@@ -1537,15 +1573,9 @@
     Symbol findPolymorphicSignatureInstance(Env<AttrContext> env, Type site,
                                             Name name,
                                             MethodSymbol spMethod,  // sig. poly. method or null if none
-                                            List<Type> argtypes,
-                                            List<Type> typeargtypes) {
-        if (typeargtypes.nonEmpty() && (site.tsym.isPolymorphicSignatureGeneric() ||
-                (spMethod != null && spMethod.isPolymorphicSignatureGeneric()))) {
-            log.warning(env.tree.pos(), "type.parameter.on.polymorphic.signature");
-        }
-
+                                            List<Type> argtypes) {
         Type mtype = infer.instantiatePolymorphicSignatureInstance(env,
-                site, name, spMethod, argtypes, typeargtypes);
+                site, name, spMethod, argtypes);
         long flags = ABSTRACT | HYPOTHETICAL | POLYMORPHIC_SIGNATURE |
                     (spMethod != null ?
                         spMethod.flags() & Flags.AccessFlags :
@@ -1585,7 +1615,7 @@
                                         List<Type> argtypes,
                                         List<Type> typeargtypes) {
         Symbol sym = resolveQualifiedMethod(
-            pos, env, site, name, argtypes, typeargtypes);
+            pos, env, site.tsym, site, name, argtypes, typeargtypes);
         if (sym.kind == MTH) return (MethodSymbol)sym;
         else throw new FatalError(
                  diags.fragment("fatal.err.cant.locate.meth",
@@ -1660,11 +1690,13 @@
                 null;
             Symbol errSym = new ResolveError(WRONG_MTH, "diamond error") {
                 @Override
-                JCDiagnostic getDiagnostic(DiagnosticType dkind, DiagnosticPosition pos, Type site, Name name, List<Type> argtypes, List<Type> typeargtypes) {
+                JCDiagnostic getDiagnostic(DiagnosticType dkind, DiagnosticPosition pos,
+                        Symbol location, Type site, Name name, List<Type> argtypes, List<Type> typeargtypes) {
                     String key = details == null ?
                         "cant.apply.diamond" :
                         "cant.apply.diamond.1";
-                    return diags.create(dkind, log.currentSource(), pos, key, diags.fragment("diamond", site.tsym), details);
+                    return diags.create(dkind, log.currentSource(), pos, key,
+                            diags.fragment("diamond", site.tsym), details);
                 }
             };
             MethodResolutionPhase errPhase = firstErroneousResolutionPhase();
@@ -1694,10 +1726,7 @@
                                 names.init, argtypes,
                                 typeargtypes, allowBoxing,
                                 useVarargs, false);
-        if ((sym.flags() & DEPRECATED) != 0 &&
-            (env.info.scope.owner.flags() & DEPRECATED) == 0 &&
-            env.info.scope.owner.outermostClass() != sym.outermostClass())
-            chk.warnDeprecated(pos, sym);
+        chk.checkDeprecated(pos, env.info.scope.owner, sym);
         return sym;
     }
 
@@ -1851,17 +1880,18 @@
 
     public void logAccessError(Env<AttrContext> env, JCTree tree, Type type) {
         AccessError error = new AccessError(env, type.getEnclosingType(), type.tsym);
-        logResolveError(error, tree.pos(), type.getEnclosingType(), null, null, null);
+        logResolveError(error, tree.pos(), type.getEnclosingType().tsym, type.getEnclosingType(), null, null, null);
     }
     //where
     private void logResolveError(ResolveError error,
             DiagnosticPosition pos,
+            Symbol location,
             Type site,
             Name name,
             List<Type> argtypes,
             List<Type> typeargtypes) {
         JCDiagnostic d = error.getDiagnostic(JCDiagnostic.DiagnosticType.ERROR,
-                pos, site, name, argtypes, typeargtypes);
+                pos, location, site, name, argtypes, typeargtypes);
         if (d != null) {
             d.setFlag(DiagnosticFlag.RESOLVE_ERROR);
             log.report(d);
@@ -1931,6 +1961,7 @@
          */
         abstract JCDiagnostic getDiagnostic(JCDiagnostic.DiagnosticType dkind,
                 DiagnosticPosition pos,
+                Symbol location,
                 Type site,
                 Name name,
                 List<Type> argtypes,
@@ -1996,6 +2027,7 @@
         @Override
         JCDiagnostic getDiagnostic(JCDiagnostic.DiagnosticType dkind,
                 DiagnosticPosition pos,
+                Symbol location,
                 Type site,
                 Name name,
                 List<Type> argtypes,
@@ -2012,16 +2044,26 @@
             }
 
             if (isOperator(name)) {
+                boolean isUnaryOp = argtypes.size() == 1;
+                String key = argtypes.size() == 1 ?
+                    "operator.cant.be.applied" :
+                    "operator.cant.be.applied.1";
+                Type first = argtypes.head;
+                Type second = !isUnaryOp ? argtypes.tail.head : null;
                 return diags.create(dkind, log.currentSource(), pos,
-                        "operator.cant.be.applied", name, argtypes);
+                        key, name, first, second);
             }
             boolean hasLocation = false;
-            if (!site.tsym.name.isEmpty()) {
-                if (site.tsym.kind == PCK && !site.tsym.exists()) {
+            if (location == null) {
+                location = site.tsym;
+            }
+            if (!location.name.isEmpty()) {
+                if (location.kind == PCK && !site.tsym.exists()) {
                     return diags.create(dkind, log.currentSource(), pos,
-                        "doesnt.exist", site.tsym);
+                        "doesnt.exist", location);
                 }
-                hasLocation = true;
+                hasLocation = !location.name.equals(names._this) &&
+                        !location.name.equals(names._super);
             }
             boolean isConstruct