changeset 1715:3e3fbf370d5f

Backed out changeset 6b07f409943e
author mcimadamore
date Wed, 09 Jan 2013 18:58:20 +0100
parents 6b07f409943e
children 523ce6a60abb
files .hgtags make/Makefile-classic make/build.properties src/share/classes/com/sun/javadoc/ClassDoc.java src/share/classes/com/sun/javadoc/MethodDoc.java src/share/classes/com/sun/source/util/DocTrees.java src/share/classes/com/sun/source/util/JavacTask.java src/share/classes/com/sun/source/util/Plugin.java src/share/classes/com/sun/source/util/TreePath.java src/share/classes/com/sun/tools/classfile/Opcode.java src/share/classes/com/sun/tools/doclets/formats/html/AbstractMemberWriter.java src/share/classes/com/sun/tools/doclets/formats/html/ClassWriterImpl.java src/share/classes/com/sun/tools/doclets/formats/html/resources/standard.properties src/share/classes/com/sun/tools/doclets/internal/toolkit/ClassWriter.java src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/ClassBuilder.java src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclet.xml src/share/classes/com/sun/tools/doclets/internal/toolkit/util/DocFileFactory.java src/share/classes/com/sun/tools/doclets/internal/toolkit/util/MethodTypes.java src/share/classes/com/sun/tools/doclint/Checker.java src/share/classes/com/sun/tools/doclint/DocLint.java src/share/classes/com/sun/tools/doclint/Entity.java src/share/classes/com/sun/tools/doclint/Env.java src/share/classes/com/sun/tools/doclint/HtmlTag.java src/share/classes/com/sun/tools/doclint/Messages.java src/share/classes/com/sun/tools/doclint/resources/doclint.properties src/share/classes/com/sun/tools/javac/Server.java src/share/classes/com/sun/tools/javac/api/BasicJavacTask.java src/share/classes/com/sun/tools/javac/api/JavacTaskImpl.java src/share/classes/com/sun/tools/javac/api/JavacTool.java src/share/classes/com/sun/tools/javac/api/JavacTrees.java src/share/classes/com/sun/tools/javac/code/Annotations.java src/share/classes/com/sun/tools/javac/code/Attribute.java src/share/classes/com/sun/tools/javac/code/Flags.java src/share/classes/com/sun/tools/javac/code/Kinds.java src/share/classes/com/sun/tools/javac/code/Lint.java src/share/classes/com/sun/tools/javac/code/Source.java src/share/classes/com/sun/tools/javac/code/Symbol.java src/share/classes/com/sun/tools/javac/code/TargetType.java src/share/classes/com/sun/tools/javac/code/Type.java src/share/classes/com/sun/tools/javac/code/TypeTag.java src/share/classes/com/sun/tools/javac/code/Types.java src/share/classes/com/sun/tools/javac/comp/Annotate.java src/share/classes/com/sun/tools/javac/comp/Check.java src/share/classes/com/sun/tools/javac/comp/ConstFold.java src/share/classes/com/sun/tools/javac/comp/Flow.java src/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java src/share/classes/com/sun/tools/javac/comp/Resolve.java src/share/classes/com/sun/tools/javac/file/ZipFileIndex.java src/share/classes/com/sun/tools/javac/jvm/ClassFile.java src/share/classes/com/sun/tools/javac/jvm/ClassReader.java src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java src/share/classes/com/sun/tools/javac/jvm/Code.java src/share/classes/com/sun/tools/javac/jvm/Gen.java src/share/classes/com/sun/tools/javac/jvm/Pool.java src/share/classes/com/sun/tools/javac/jvm/Target.java src/share/classes/com/sun/tools/javac/main/JavaCompiler.java src/share/classes/com/sun/tools/javac/main/Main.java src/share/classes/com/sun/tools/javac/main/Option.java src/share/classes/com/sun/tools/javac/model/JavacTypes.java src/share/classes/com/sun/tools/javac/parser/DocCommentParser.java src/share/classes/com/sun/tools/javac/parser/JavaTokenizer.java src/share/classes/com/sun/tools/javac/parser/JavacParser.java src/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java src/share/classes/com/sun/tools/javac/resources/compiler.properties src/share/classes/com/sun/tools/javac/resources/javac.properties src/share/classes/com/sun/tools/javac/sym/CreateSymbols.java src/share/classes/com/sun/tools/javac/tree/DCTree.java src/share/classes/com/sun/tools/javac/tree/DocPretty.java src/share/classes/com/sun/tools/javac/tree/JCTree.java src/share/classes/com/sun/tools/javac/tree/TreeInfo.java src/share/classes/com/sun/tools/javac/tree/TreeMaker.java src/share/classes/com/sun/tools/javac/util/BaseFileManager.java src/share/classes/com/sun/tools/javac/util/List.java src/share/classes/com/sun/tools/javac/util/ListBuffer.java src/share/classes/com/sun/tools/javac/util/MandatoryWarningHandler.java src/share/classes/com/sun/tools/javac/util/RichDiagnosticFormatter.java src/share/classes/com/sun/tools/javadoc/AnnotationTypeDocImpl.java src/share/classes/com/sun/tools/javadoc/AnnotationTypeElementDocImpl.java src/share/classes/com/sun/tools/javadoc/ClassDocImpl.java src/share/classes/com/sun/tools/javadoc/ConstructorDocImpl.java src/share/classes/com/sun/tools/javadoc/DocEnv.java src/share/classes/com/sun/tools/javadoc/DocImpl.java src/share/classes/com/sun/tools/javadoc/ExecutableMemberDocImpl.java src/share/classes/com/sun/tools/javadoc/FieldDocImpl.java src/share/classes/com/sun/tools/javadoc/JavadocEnter.java src/share/classes/com/sun/tools/javadoc/JavadocMemberEnter.java src/share/classes/com/sun/tools/javadoc/MemberDocImpl.java src/share/classes/com/sun/tools/javadoc/MethodDocImpl.java src/share/classes/com/sun/tools/javadoc/PackageDocImpl.java src/share/classes/com/sun/tools/javadoc/ParameterImpl.java src/share/classes/com/sun/tools/javadoc/ProgramElementDocImpl.java src/share/classes/com/sun/tools/javadoc/RootDocImpl.java src/share/classes/com/sun/tools/javah/JavahTask.java src/share/classes/com/sun/tools/javap/JavapTask.java src/share/classes/javax/lang/model/element/ExecutableElement.java src/share/classes/javax/lang/model/element/Modifier.java src/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor7.java src/share/classes/javax/lang/model/util/AbstractTypeVisitor8.java src/share/classes/javax/lang/model/util/ElementFilter.java src/share/classes/javax/lang/model/util/ElementKindVisitor8.java src/share/classes/javax/tools/StandardLocation.java test/com/sun/javadoc/testHtmlTableTags/TestHtmlTableTags.java test/com/sun/javadoc/testLambdaFeature/TestLambdaFeature.java test/com/sun/javadoc/testLambdaFeature/pkg/A.java test/com/sun/javadoc/testLambdaFeature/pkg/B.java test/com/sun/javadoc/testMethodTypes/TestMethodTypes.java test/tools/doclint/AccessTest.java test/tools/doclint/AccessTest.package.out test/tools/doclint/AccessTest.private.out test/tools/doclint/AccessTest.protected.out test/tools/doclint/AccessTest.public.out test/tools/doclint/AccessibilityTest.java test/tools/doclint/AccessibilityTest.out test/tools/doclint/DocLintTester.java test/tools/doclint/EmptyAuthorTest.java test/tools/doclint/EmptyAuthorTest.out test/tools/doclint/EmptyExceptionTest.java test/tools/doclint/EmptyExceptionTest.out test/tools/doclint/EmptyParamTest.java test/tools/doclint/EmptyParamTest.out test/tools/doclint/EmptyReturnTest.java test/tools/doclint/EmptyReturnTest.out test/tools/doclint/EmptySerialDataTest.java test/tools/doclint/EmptySerialDataTest.out test/tools/doclint/EmptySerialFieldTest.java test/tools/doclint/EmptySerialFieldTest.out test/tools/doclint/EmptySinceTest.java test/tools/doclint/EmptySinceTest.out test/tools/doclint/EmptyVersionTest.java test/tools/doclint/EmptyVersionTest.out test/tools/doclint/HtmlAttrsTest.java test/tools/doclint/HtmlAttrsTest.out test/tools/doclint/HtmlTagsTest.java test/tools/doclint/HtmlTagsTest.out test/tools/doclint/MissingCommentTest.java test/tools/doclint/MissingCommentTest.out test/tools/doclint/MissingParamsTest.java test/tools/doclint/MissingParamsTest.out test/tools/doclint/MissingReturnTest.java test/tools/doclint/MissingReturnTest.out test/tools/doclint/MissingThrowsTest.java test/tools/doclint/MissingThrowsTest.out test/tools/doclint/OptionTest.java test/tools/doclint/OverridesTest.java test/tools/doclint/ReferenceTest.java test/tools/doclint/ReferenceTest.out test/tools/doclint/RunTest.java test/tools/doclint/SyntaxTest.java test/tools/doclint/SyntaxTest.out test/tools/doclint/SyntheticTest.java test/tools/doclint/ValidTest.java test/tools/doclint/tidy/AnchorAlreadyDefined.java test/tools/doclint/tidy/AnchorAlreadyDefined.out test/tools/doclint/tidy/BadEnd.java test/tools/doclint/tidy/BadEnd.out test/tools/doclint/tidy/InsertImplicit.java test/tools/doclint/tidy/InsertImplicit.out test/tools/doclint/tidy/InvalidEntity.java test/tools/doclint/tidy/InvalidEntity.out test/tools/doclint/tidy/InvalidName.java test/tools/doclint/tidy/InvalidName.out test/tools/doclint/tidy/InvalidTag.java test/tools/doclint/tidy/InvalidTag.out test/tools/doclint/tidy/InvalidURI.java test/tools/doclint/tidy/InvalidURI.out test/tools/doclint/tidy/MissingGT.java test/tools/doclint/tidy/MissingGT.out test/tools/doclint/tidy/MissingTag.java test/tools/doclint/tidy/MissingTag.out test/tools/doclint/tidy/NestedTag.java test/tools/doclint/tidy/NestedTag.out test/tools/doclint/tidy/ParaInPre.java test/tools/doclint/tidy/ParaInPre.out test/tools/doclint/tidy/README.txt test/tools/doclint/tidy/RepeatedAttr.java test/tools/doclint/tidy/RepeatedAttr.out test/tools/doclint/tidy/TextNotAllowed.java test/tools/doclint/tidy/TextNotAllowed.out test/tools/doclint/tidy/TrimmingEmptyTag.java test/tools/doclint/tidy/TrimmingEmptyTag.out test/tools/doclint/tidy/UnescapedOrUnknownEntity.java test/tools/doclint/tidy/UnescapedOrUnknownEntity.out test/tools/doclint/tidy/util/Main.java test/tools/doclint/tidy/util/tidy.sh test/tools/javac/7129225/TestImportStar.java test/tools/javac/7153958/CPoolRefClassContainingInlinedCts.java test/tools/javac/8000518/DuplicateConstantPoolEntry.java test/tools/javac/StringsInSwitch/StringSwitches.java test/tools/javac/T8003967/DetectMutableStaticFields.java test/tools/javac/annotations/repeatingAnnotations/MissingDefaultCase1.java test/tools/javac/annotations/repeatingAnnotations/MissingDefaultCase1.out test/tools/javac/annotations/repeatingAnnotations/MissingDefaultCase2.java test/tools/javac/annotations/repeatingAnnotations/MissingDefaultCase2.out test/tools/javac/annotations/repeatingAnnotations/NoRepeatableAnno.out test/tools/javac/annotations/repeatingAnnotations/RepeatingTargetNotAllowed.java test/tools/javac/annotations/repeatingAnnotations/RepeatingTargetNotAllowed.out test/tools/javac/api/T6395981.java test/tools/javac/cast/intersection/model/Model01.java test/tools/javac/classreader/T7031108.java test/tools/javac/defaultMethods/defaultMethodExecution/DefaultMethodRegressionTests.java test/tools/javac/diags/examples/ContainedByNonDefault.java test/tools/javac/diags/examples/DuplicateAnnotation.java test/tools/javac/diags/examples/InvalidDuplicateAnnotation.java test/tools/javac/diags/examples/NoContent.java test/tools/javac/doclint/DocLintTest.java test/tools/javac/enum/6350057/T6350057.java test/tools/javac/enum/6424358/T6424358.java test/tools/javac/file/T7018098.java test/tools/javac/file/zip/8003512/LoadClassFromJava6CreatedJarTest.java test/tools/javac/file/zip/Utils.java test/tools/javac/generics/8004094/B.java test/tools/javac/generics/8004094/T8004094.java test/tools/javac/lambda/BadMethodCall2.java test/tools/javac/lambda/BadMethodCall2.out test/tools/javac/lambda/TestInvokeDynamic.java test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestKinds.java test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestSueCase1.java test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestSueCase2.java test/tools/javac/lambda/methodReferenceExecution/MethodReferenceTestSueCase4.java test/tools/javac/lambdaShapes/org/openjdk/tests/separate/AttributeInjector.java test/tools/javac/lambdaShapes/org/openjdk/tests/separate/ClassFile.java test/tools/javac/lambdaShapes/org/openjdk/tests/separate/ClassFilePreprocessor.java test/tools/javac/lambdaShapes/org/openjdk/tests/separate/ClassToInterfaceConverter.java test/tools/javac/lambdaShapes/org/openjdk/tests/separate/Compiler.java test/tools/javac/lambdaShapes/org/openjdk/tests/separate/DirectedClassLoader.java test/tools/javac/lambdaShapes/org/openjdk/tests/separate/SourceModel.java test/tools/javac/lambdaShapes/org/openjdk/tests/separate/TestHarness.java test/tools/javac/lambdaShapes/org/openjdk/tests/vm/DefaultMethodsTest.java test/tools/javac/lambdaShapes/org/openjdk/tests/vm/FDSeparateCompilationTest.java test/tools/javac/multicatch/model/ModelChecker.java test/tools/javac/nativeHeaders/javahComparison/CompareTest.java test/tools/javac/options/T7022337.java test/tools/javac/plugin/showtype/ShowTypePlugin.java test/tools/javac/plugin/showtype/Test.java test/tools/javac/processing/6348499/T6348499.java test/tools/javac/processing/6359313/T6359313.java test/tools/javac/processing/6365040/T6365040.java test/tools/javac/processing/6413690/T6413690.java test/tools/javac/processing/6414633/T6414633.java test/tools/javac/processing/6430209/T6430209.java test/tools/javac/processing/6499119/ClassProcessor.java test/tools/javac/processing/6511613/clss41701.java test/tools/javac/processing/6512707/T6512707.java test/tools/javac/processing/6634138/T6634138.java test/tools/javac/processing/6994946/SemanticErrorTest.java test/tools/javac/processing/6994946/SyntaxErrorTest.java test/tools/javac/processing/T6920317.java test/tools/javac/processing/T7196462.java test/tools/javac/processing/TestWarnErrorCount.java test/tools/javac/processing/environment/TestSourceVersion.java test/tools/javac/processing/environment/round/TestContext.java test/tools/javac/processing/environment/round/TestElementsAnnotatedWith.java test/tools/javac/processing/errors/TestErrorCount.java test/tools/javac/processing/errors/TestFatalityOfParseErrors.java test/tools/javac/processing/errors/TestOptionSyntaxErrors.java test/tools/javac/processing/errors/TestParseErrors/TestParseErrors.java test/tools/javac/processing/errors/TestReturnCode.java test/tools/javac/processing/filer/TestFilerConstraints.java test/tools/javac/processing/filer/TestGetResource.java test/tools/javac/processing/filer/TestGetResource2.java test/tools/javac/processing/filer/TestInvalidRelativeNames.java test/tools/javac/processing/filer/TestLastRound.java test/tools/javac/processing/filer/TestPackageInfo.java test/tools/javac/processing/filer/TestValidRelativeNames.java test/tools/javac/processing/messager/6362067/T6362067.java test/tools/javac/processing/messager/MessagerBasics.java test/tools/javac/processing/model/6194785/T6194785.java test/tools/javac/processing/model/6341534/T6341534.java test/tools/javac/processing/model/element/TestAnonClassNames.java test/tools/javac/processing/model/element/TestElement.java test/tools/javac/processing/model/element/TestExecutableElement.java test/tools/javac/processing/model/element/TestMissingElement/TestMissingElement.java test/tools/javac/processing/model/element/TestMissingElement2/TestMissingClass.java test/tools/javac/processing/model/element/TestMissingElement2/TestMissingGenericClass1.java test/tools/javac/processing/model/element/TestMissingElement2/TestMissingGenericClass2.java test/tools/javac/processing/model/element/TestMissingElement2/TestMissingGenericInterface1.java test/tools/javac/processing/model/element/TestMissingElement2/TestMissingGenericInterface2.java test/tools/javac/processing/model/element/TestMissingElement2/TestMissingInterface.java test/tools/javac/processing/model/element/TestNames.java test/tools/javac/processing/model/element/TestPackageElement.java test/tools/javac/processing/model/element/TestResourceElement.java test/tools/javac/processing/model/element/TestResourceVariable.java test/tools/javac/processing/model/element/TestTypeParameter.java test/tools/javac/processing/model/element/TypeParamBounds.java test/tools/javac/processing/model/type/MirroredTypeEx/OverEager.java test/tools/javac/processing/model/type/MirroredTypeEx/Plurality.java test/tools/javac/processing/model/type/NoTypes.java test/tools/javac/processing/model/type/TestUnionType.java test/tools/javac/processing/model/util/BinaryName.java test/tools/javac/processing/model/util/GetTypeElemBadArg.java test/tools/javac/processing/model/util/NoSupers.java test/tools/javac/processing/model/util/OverridesSpecEx.java test/tools/javac/processing/model/util/TypesBadArg.java test/tools/javac/processing/model/util/deprecation/TestDeprecation.java test/tools/javac/processing/model/util/directSupersOfErr/DirectSupersOfErr.java test/tools/javac/processing/model/util/elements/TestGetConstantExpression.java test/tools/javac/processing/model/util/elements/TestGetPackageOf.java test/tools/javac/processing/model/util/filter/TestIterables.java test/tools/javac/processing/options/testCommandLineClasses/Test.java test/tools/javac/processing/options/testPrintProcessorInfo/Test.java test/tools/javac/processing/options/testPrintProcessorInfo/TestWithXstdout.java test/tools/javac/processing/warnings/UseImplicit/TestProcUseImplicitWarning.java test/tools/javac/processing/werror/WError1.java test/tools/javac/processing/werror/WErrorGen.java test/tools/javac/processing/werror/WErrorLast.java test/tools/javac/resolve/ResolveHarness.java test/tools/javac/util/T6597678.java test/tools/javac/util/context/T7021650.java test/tools/javac/util/list/ListBufferTest.java
diffstat 309 files changed, 674 insertions(+), 6776 deletions(-) [+]
line wrap: on
line diff
--- a/.hgtags	Wed Jan 09 17:55:02 2013 +0100
+++ b/.hgtags	Wed Jan 09 18:58:20 2013 +0100
@@ -194,6 +194,3 @@
 20230f8b0eef92a57043735fc2ca00fea7e510a0 jdk8-b66
 303b09787a69136cd2019f9edfed3f308572e9fc jdk8-b67
 014a6a11dfe5ddc23ec8c76bb42ac998dbf49acb jdk8-b68
-d7360bf35ee1f40ff78c2e83a22b5446ee464346 jdk8-b69
-47f71d7c124f24c2fe2dfc49865b332345b458ed jdk8-b70
-467e4d9281bcf119eaec42af1423c96bd401871c jdk8-b71
--- a/make/Makefile-classic	Wed Jan 09 17:55:02 2013 +0100
+++ b/make/Makefile-classic	Wed Jan 09 18:58:20 2013 +0100
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2007, 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2007, 2012 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
--- a/make/build.properties	Wed Jan 09 17:55:02 2013 +0100
+++ b/make/build.properties	Wed Jan 09 18:58:20 2013 +0100
@@ -118,8 +118,7 @@
         javax/tools/ \
         com/sun/source/ \
         com/sun/runtime/ \
-        com/sun/tools/javac/ \
-        com/sun/tools/doclint/
+        com/sun/tools/javac/
 
 javac.tests = \
         tools/javac
@@ -176,14 +175,14 @@
 # generator were to be improved -- e.g. by removing unnecessary imports.
 #
 import.jdk.stub.files = \
-    java/io/File.java \
-    java/nio/file/**.java \
-    java/nio/file/attribute/**.java \
-    java/nio/file/spi/**.java \
-    java/nio/channels/AsynchronousChannel.java \
-    java/nio/channels/AsynchronousFileChannel.java \
-    java/nio/channels/CompletionHandler.java \
-    java/nio/channels/SeekableByteChannel.java
+        java/io/File.java \
+        java/nio/file/**.java \
+        java/nio/file/attribute/**.java \
+        java/nio/file/spi/**.java \
+        java/nio/channels/AsynchronousChannel.java \
+        java/nio/channels/AsynchronousFileChannel.java \
+        java/nio/channels/CompletionHandler.java \
+        java/nio/channels/SeekableByteChannel.java
 
 # The following value is used by the main jtreg target.
 # An empty value means all tests
--- a/src/share/classes/com/sun/javadoc/ClassDoc.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/javadoc/ClassDoc.java	Wed Jan 09 18:58:20 2013 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 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
--- a/src/share/classes/com/sun/javadoc/MethodDoc.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/javadoc/MethodDoc.java	Wed Jan 09 18:58:20 2013 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 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
@@ -44,11 +44,6 @@
     boolean isDefender();
 
     /**
-     * Return true if this method is default
-     */
-    boolean isDefault();
-
-    /**
      * Get return type.
      *
      * @return the return type of this method, null if it
--- a/src/share/classes/com/sun/source/util/DocTrees.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/source/util/DocTrees.java	Wed Jan 09 18:58:20 2013 +0100
@@ -45,7 +45,9 @@
      * @throws IllegalArgumentException if the task does not support the Trees API.
      */
     public static DocTrees instance(CompilationTask task) {
-        return (DocTrees) Trees.instance(task);
+        if (!task.getClass().getName().equals("com.sun.tools.javac.api.JavacTaskImpl"))
+            throw new IllegalArgumentException();
+        return (DocTrees) getJavacTrees(CompilationTask.class, task);
     }
 
     /**
--- a/src/share/classes/com/sun/source/util/JavacTask.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/source/util/JavacTask.java	Wed Jan 09 18:58:20 2013 +0100
@@ -139,7 +139,6 @@
      * @see com.sun.source.util.Trees#getTypeMirror
      */
     public abstract TypeMirror getTypeMirror(Iterable<? extends Tree> path);
-
     /**
      * Get a utility object for dealing with program elements.
      */
--- a/src/share/classes/com/sun/source/util/Plugin.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/source/util/Plugin.java	Wed Jan 09 18:58:20 2013 +0100
@@ -56,9 +56,9 @@
     String getName();
 
     /**
-     * Initialize the plug-in for a given compilation task.
+     * Invoke the plug-in for a given compilation task.
      * @param task The compilation task that has just been started
      * @param args Arguments, if any, for the plug-in
      */
-    void init(JavacTask task, String... args);
+    void call(JavacTask task, String... args);
 }
--- a/src/share/classes/com/sun/source/util/TreePath.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/source/util/TreePath.java	Wed Jan 09 18:58:20 2013 +0100
@@ -60,20 +60,14 @@
                 this.path = path;
             }
         }
-
         class PathFinder extends TreePathScanner<TreePath,Tree> {
             public TreePath scan(Tree tree, Tree target) {
-                if (tree == target) {
+                if (tree == target)
                     throw new Result(new TreePath(getCurrentPath(), target));
-                }
                 return super.scan(tree, target);
             }
         }
 
-        if (path.getLeaf() == target) {
-            return path;
-        }
-
         try {
             new PathFinder().scan(path, target);
         } catch (Result result) {
--- a/src/share/classes/com/sun/tools/classfile/Opcode.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/classfile/Opcode.java	Wed Jan 09 18:58:20 2013 +0100
@@ -448,10 +448,10 @@
 
     }
 
-    private static final Opcode[] stdOpcodes = new Opcode[256];
-    private static final Opcode[] wideOpcodes = new Opcode[256];
-    private static final Opcode[] nonPrivOpcodes = new Opcode[256];
-    private static final Opcode[] privOpcodes = new Opcode[256];
+    private static Opcode[] stdOpcodes = new Opcode[256];
+    private static Opcode[] wideOpcodes = new Opcode[256];
+    private static Opcode[] nonPrivOpcodes = new Opcode[256];
+    private static Opcode[] privOpcodes = new Opcode[256];
     static {
         for (Opcode o: values())
             getOpcodeBlock(o.opcode >> 8)[o.opcode & 0xff] = o;
--- a/src/share/classes/com/sun/tools/doclets/formats/html/AbstractMemberWriter.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/doclets/formats/html/AbstractMemberWriter.java	Wed Jan 09 18:58:20 2013 +0100
@@ -239,14 +239,7 @@
         if ((member.isField() || member.isMethod()) &&
             writer instanceof ClassWriterImpl &&
             ((ClassWriterImpl) writer).getClassDoc().isInterface()) {
-            // This check for isDefault() and the default modifier needs to be
-            // added for it to appear on the method details section. Once the
-            // default modifier is added to the Modifier list on DocEnv and once
-            // it is updated to use the javax.lang.model.element.Modifier, we
-            // will need to remove this.
-            mod = (member.isMethod() && ((MethodDoc)member).isDefault()) ?
-                    Util.replaceText(mod, "public", "default").trim() :
-                    Util.replaceText(mod, "public", "").trim();
+            mod = Util.replaceText(mod, "public", "").trim();
         }
         if(mod.length() > 0) {
             htmltree.addContent(mod);
@@ -320,18 +313,8 @@
             code.addContent(configuration.getText("doclet.Package_private"));
             code.addContent(" ");
         }
-        if (member.isMethod()) {
-            if (((MethodDoc)member).isAbstract()) {
-                code.addContent("abstract ");
-            }
-            // This check for isDefault() and the default modifier needs to be
-            // added for it to appear on the "Modifier and Type" column in the
-            // method summary section. Once the default modifier is added
-            // to the Modifier list on DocEnv and once it is updated to use the
-            // javax.lang.model.element.Modifier, we will need to remove this.
-            else if (((MethodDoc)member).isDefault()) {
-                code.addContent("default ");
-            }
+        if (member.isMethod() && ((MethodDoc)member).isAbstract()) {
+            code.addContent("abstract ");
         }
         if (member.isStatic()) {
             code.addContent("static ");
@@ -564,9 +547,6 @@
             methodType = (classdoc.isInterface() || ((MethodDoc)member).isAbstract()) ?
                     methodType | MethodTypes.ABSTRACT.value() :
                     methodType | MethodTypes.CONCRETE.value();
-            if (((MethodDoc)member).isDefault()) {
-                methodType = methodType | MethodTypes.DEFAULT.value();
-            }
             if (Util.isDeprecated(member) || Util.isDeprecated(classdoc)) {
                 methodType = methodType | MethodTypes.DEPRECATED.value();
             }
--- a/src/share/classes/com/sun/tools/doclets/formats/html/ClassWriterImpl.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/doclets/formats/html/ClassWriterImpl.java	Wed Jan 09 18:58:20 2013 +0100
@@ -516,20 +516,6 @@
     /**
      * {@inheritDoc}
      */
-    public void addFunctionalInterfaceInfo (Content classInfoTree) {
-        if (classDoc.isFunctionalInterface()) {
-            Content dt = HtmlTree.DT(getResource("doclet.Functional_Interface"));
-            Content dl = HtmlTree.DL(dt);
-            Content dd = new HtmlTree(HtmlTag.DD);
-            dd.addContent(getResource("doclet.Functional_Interface_Message"));
-            dl.addContent(dd);
-            classInfoTree.addContent(dl);
-        }
-    }
-
-    /**
-     * {@inheritDoc}
-     */
     public void addClassDeprecationInfo(Content classInfoTree) {
         Content hr = new HtmlTree(HtmlTag.HR);
         classInfoTree.addContent(hr);
--- a/src/share/classes/com/sun/tools/doclets/formats/html/resources/standard.properties	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/doclets/formats/html/resources/standard.properties	Wed Jan 09 18:58:20 2013 +0100
@@ -90,8 +90,6 @@
 doclet.Subclasses=Direct Known Subclasses:
 doclet.Subinterfaces=All Known Subinterfaces:
 doclet.Implementing_Classes=All Known Implementing Classes:
-doclet.Functional_Interface=Functional Interface:
-doclet.Functional_Interface_Message=This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference. 
 doclet.also=also
 doclet.Frames=Frames
 doclet.No_Frames=No Frames
--- a/src/share/classes/com/sun/tools/doclets/internal/toolkit/ClassWriter.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/doclets/internal/toolkit/ClassWriter.java	Wed Jan 09 18:58:20 2013 +0100
@@ -117,13 +117,6 @@
     public void addInterfaceUsageInfo(Content classInfoTree);
 
     /**
-     * If this is an functional interface, display appropriate message.
-     *
-     * @param classInfoTree content tree to which the documentation will be added
-     */
-    public void addFunctionalInterfaceInfo(Content classInfoTree);
-
-    /**
      * If this is an inner class or interface, add the enclosing class or
      * interface.
      *
--- a/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/ClassBuilder.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/ClassBuilder.java	Wed Jan 09 18:58:20 2013 +0100
@@ -236,16 +236,6 @@
     }
 
     /**
-     * If this is an functional interface, display appropriate message.
-     *
-     * @param node the XML element that specifies which components to document
-     * @param classInfoTree the content tree to which the documentation will be added
-     */
-    public void buildFunctionalInterfaceInfo(XMLNode node, Content classInfoTree) {
-        writer.addFunctionalInterfaceInfo(classInfoTree);
-    }
-
-    /**
      * If this class is deprecated, build the appropriate information.
      *
      * @param node the XML element that specifies which components to document
--- a/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclet.xml	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclet.xml	Wed Jan 09 18:58:20 2013 +0100
@@ -85,7 +85,6 @@
             <SubInterfacesInfo/>
             <InterfaceUsageInfo/>
             <NestedClassInfo/>
-            <FunctionalInterfaceInfo/>
             <DeprecationInfo/>
             <ClassSignature/>
             <ClassDescription/>
--- a/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/DocFileFactory.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/DocFileFactory.java	Wed Jan 09 18:58:20 2013 +0100
@@ -46,7 +46,7 @@
  * @since 1.8
  */
 abstract class DocFileFactory {
-    private static final Map<Configuration, DocFileFactory> factories =
+    private static Map<Configuration, DocFileFactory> factories =
             new WeakHashMap<Configuration, DocFileFactory>();
 
     /**
--- a/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/MethodTypes.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/MethodTypes.java	Wed Jan 09 18:58:20 2013 +0100
@@ -36,8 +36,7 @@
     INSTANCE(0x2, "Instance Methods", "t2", false),
     ABSTRACT(0x4, "Abstract Methods", "t3", false),
     CONCRETE(0x8, "Concrete Methods", "t4", false),
-    DEFAULT(0x10, "Default Methods", "t5", false),
-    DEPRECATED(0x20, "Deprecated Methods", "t6", false);
+    DEPRECATED(0x10, "Deprecated Methods", "t5", false);
 
     private final int value;
     private final String text;
--- a/src/share/classes/com/sun/tools/doclint/Checker.java	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,754 +0,0 @@
-/*
- * Copyright (c) 2012, 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.doclint;
-
-import java.util.regex.Matcher;
-import com.sun.source.doctree.LinkTree;
-import java.net.URI;
-import java.util.regex.Pattern;
-import java.io.IOException;
-import com.sun.tools.javac.tree.DocPretty;
-import java.io.StringWriter;
-import java.util.Deque;
-import java.util.EnumSet;
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Set;
-
-import javax.lang.model.element.Element;
-import javax.lang.model.element.ElementKind;
-import javax.lang.model.element.ExecutableElement;
-import javax.lang.model.element.Name;
-import javax.lang.model.element.TypeElement;
-import javax.lang.model.type.TypeKind;
-import javax.lang.model.type.TypeMirror;
-import javax.tools.Diagnostic.Kind;
-
-import com.sun.source.doctree.AttributeTree;
-import com.sun.source.doctree.AuthorTree;
-import com.sun.source.doctree.DocCommentTree;
-import com.sun.source.doctree.DocTree;
-import com.sun.source.doctree.EndElementTree;
-import com.sun.source.doctree.EntityTree;
-import com.sun.source.doctree.ErroneousTree;
-import com.sun.source.doctree.IdentifierTree;
-import com.sun.source.doctree.InheritDocTree;
-import com.sun.source.doctree.ParamTree;
-import com.sun.source.doctree.ReferenceTree;
-import com.sun.source.doctree.ReturnTree;
-import com.sun.source.doctree.SerialDataTree;
-import com.sun.source.doctree.SerialFieldTree;
-import com.sun.source.doctree.SinceTree;
-import com.sun.source.doctree.StartElementTree;
-import com.sun.source.doctree.TextTree;
-import com.sun.source.doctree.ThrowsTree;
-import com.sun.source.doctree.VersionTree;
-import com.sun.source.util.DocTreeScanner;
-import com.sun.source.util.TreePath;
-import com.sun.tools.doclint.HtmlTag.AttrKind;
-import java.net.URISyntaxException;
-import static com.sun.tools.doclint.Messages.Group.*;
-
-
-/**
- * Validate a doc comment.
- *
- * <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></p>
- */
-public class Checker extends DocTreeScanner<Void, Void> {
-    final Env env;
-
-    Set<Element> foundParams = new HashSet<Element>();
-    Set<TypeMirror> foundThrows = new HashSet<TypeMirror>();
-    Set<String> foundAnchors = new HashSet<String>();
-    boolean foundInheritDoc = false;
-    boolean foundReturn = false;
-
-    enum Flag {
-        TABLE_HAS_CAPTION,
-        HAS_ELEMENT,
-        HAS_TEXT
-    }
-
-    static class TagStackItem {
-        final DocTree tree; // typically, but not always, StartElementTree
-        final HtmlTag tag;
-        final Set<HtmlTag.Attr> attrs;
-        final Set<Flag> flags;
-        TagStackItem(DocTree tree, HtmlTag tag) {
-            this.tree = tree;
-            this.tag = tag;
-            attrs = EnumSet.noneOf(HtmlTag.Attr.class);
-            flags = EnumSet.noneOf(Flag.class);
-        }
-        @Override
-        public String toString() {
-            return String.valueOf(tag);
-        }
-    }
-
-    private Deque<TagStackItem> tagStack; // TODO: maybe want to record starting tree as well
-    private HtmlTag currHeaderTag;
-
-    // <editor-fold defaultstate="collapsed" desc="Top level">
-
-    Checker(Env env) {
-        env.getClass();
-        this.env = env;
-        tagStack = new LinkedList<TagStackItem>();
-    }
-
-    public Void scan(DocCommentTree tree, TreePath p) {
-        env.setCurrent(p, tree);
-
-        boolean isOverridingMethod = !env.currOverriddenMethods.isEmpty();
-
-        if (tree == null) {
-            if (!isSynthetic() && !isOverridingMethod)
-                reportMissing("dc.missing.comment");
-            return null;
-        }
-
-        tagStack.clear();
-        currHeaderTag = null;
-
-        foundParams.clear();
-        foundThrows.clear();
-        foundInheritDoc = false;
-        foundReturn = false;
-
-        scan(tree, (Void) null);
-
-        if (!isOverridingMethod) {
-            switch (env.currElement.getKind()) {
-                case METHOD:
-                case CONSTRUCTOR: {
-                    ExecutableElement ee = (ExecutableElement) env.currElement;
-                    checkParamsDocumented(ee.getTypeParameters());
-                    checkParamsDocumented(ee.getParameters());
-                    switch (ee.getReturnType().getKind()) {
-                        case VOID:
-                        case NONE:
-                            break;
-                        default:
-                            if (!foundReturn
-                                    && !foundInheritDoc
-                                    && !env.types.isSameType(ee.getReturnType(), env.java_lang_Void)) {
-                                reportMissing("dc.missing.return");
-                            }
-                    }
-                    checkThrowsDocumented(ee.getThrownTypes());
-                }
-            }
-        }
-
-        return null;
-    }
-
-    private void reportMissing(String code, Object... args) {
-        env.messages.report(MISSING, Kind.WARNING, env.currPath.getLeaf(), code, args);
-    }
-
-    @Override
-    public Void visitDocComment(DocCommentTree tree, Void ignore) {
-        super.visitDocComment(tree, ignore);
-        for (TagStackItem tsi: tagStack) {
-            if (tsi.tree.getKind() == DocTree.Kind.START_ELEMENT
-                    && tsi.tag.endKind == HtmlTag.EndKind.REQUIRED) {
-                StartElementTree t = (StartElementTree) tsi.tree;
-                env.messages.error(HTML, t, "dc.tag.not.closed", t.getName());
-            }
-        }
-        return null;
-    }
-    // </editor-fold>
-
-    // <editor-fold defaultstate="collapsed" desc="Text and entities.">
-
-    @Override
-    public Void visitText(TextTree tree, Void ignore) {
-        if (!tree.getBody().trim().isEmpty()) {
-            markEnclosingTag(Flag.HAS_TEXT);
-        }
-        return null;
-    }
-
-    @Override
-    public Void visitEntity(EntityTree tree, Void ignore) {
-        markEnclosingTag(Flag.HAS_TEXT);
-        String name = tree.getName().toString();
-        if (name.startsWith("#")) {
-            int v = name.toLowerCase().startsWith("#x")
-                    ? Integer.parseInt(name.substring(2), 16)
-                    : Integer.parseInt(name.substring(1), 10);
-            if (!Entity.isValid(v)) {
-                env.messages.error(HTML, tree, "dc.entity.invalid", name);
-            }
-        } else if (!Entity.isValid(name)) {
-            env.messages.error(HTML, tree, "dc.entity.invalid", name);
-        }
-        return null;
-    }
-
-    // </editor-fold>
-
-    // <editor-fold defaultstate="collapsed" desc="HTML elements">
-
-    @Override
-    public Void visitStartElement(StartElementTree tree, Void ignore) {
-        markEnclosingTag(Flag.HAS_ELEMENT);
-        final Name treeName = tree.getName();
-        final HtmlTag t = HtmlTag.get(treeName);
-        if (t == null) {
-            env.messages.error(HTML, tree, "dc.tag.unknown", treeName);
-        } else {
-            // tag specific checks
-            switch (t) {
-                // check for out of sequence headers, such as <h1>...</h1>  <h3>...</h3>
-                case H1: case H2: case H3: case H4: case H5: case H6:
-                    checkHeader(tree, t);
-                    break;
-                // <p> inside <pre>
-                case P:
-                    TagStackItem top = tagStack.peek();
-                    if (top != null && top.tag == HtmlTag.PRE)
-                        env.messages.warning(HTML, tree, "dc.tag.p.in.pre");
-                    break;
-            }
-
-            // check that only block tags and inline tags are used,
-            // and that blocks tags are not used within inline tags
-            switch (t.blockType) {
-                case INLINE:
-                    break;
-                case BLOCK:
-                    TagStackItem top = tagStack.peek();
-                    if (top != null && top.tag != null && top.tag.blockType == HtmlTag.BlockType.INLINE) {
-                        switch (top.tree.getKind()) {
-                            case START_ELEMENT: {
-                                Name name = ((StartElementTree) top.tree).getName();
-                                env.messages.error(HTML, tree, "dc.tag.not.allowed.inline.element",
-                                        treeName, name);
-                                break;
-                            }
-                            case LINK:
-                            case LINK_PLAIN: {
-                                String name = top.tree.getKind().tagName;
-                                env.messages.error(HTML, tree, "dc.tag.not.allowed.inline.tag",
-                                        treeName, name);
-                                break;
-                            }
-                            default:
-                                env.messages.error(HTML, tree, "dc.tag.not.allowed.inline.other",
-                                        treeName);
-                        }
-                    }
-                    break;
-                case OTHER:
-                    env.messages.error(HTML, tree, "dc.tag.not.allowed", treeName);
-                    break;
-                default:
-                    throw new AssertionError();
-            }
-
-            if (t.flags.contains(HtmlTag.Flag.NO_NEST)) {
-                for (TagStackItem i: tagStack) {
-                    if (t == i.tag) {
-                        env.messages.warning(HTML, tree, "dc.tag.nested.not.allowed", treeName);
-                        break;
-                    }
-                }
-            }
-        }
-
-        // check for self closing tags, such as <a id="name"/>
-        if (tree.isSelfClosing()) {
-            env.messages.error(HTML, tree, "dc.tag.self.closing", treeName);
-        }
-
-        try {
-            TagStackItem parent = tagStack.peek();
-            TagStackItem top = new TagStackItem(tree, t);
-            tagStack.push(top);
-
-            super.visitStartElement(tree, ignore);
-
-            // handle attributes that may or may not have been found in start element
-            if (t != null) {
-                switch (t) {
-                    case CAPTION:
-                        if (parent != null && parent.tag == HtmlTag.TABLE)
-                            parent.flags.add(Flag.TABLE_HAS_CAPTION);
-                        break;
-
-                    case IMG:
-                        if (!top.attrs.contains(HtmlTag.Attr.ALT))
-                            env.messages.error(ACCESSIBILITY, tree, "dc.no.alt.attr.for.image");
-                        break;
-                }
-            }
-
-            return null;
-        } finally {
-
-            if (t == null || t.endKind == HtmlTag.EndKind.NONE)
-                tagStack.pop();
-        }
-    }
-
-    private void checkHeader(StartElementTree tree, HtmlTag tag) {
-        // verify the new tag
-        if (getHeaderLevel(tag) > getHeaderLevel(currHeaderTag) + 1) {
-            if (currHeaderTag == null) {
-                env.messages.error(ACCESSIBILITY, tree, "dc.tag.header.sequence.1", tag);
-            } else {
-                env.messages.error(ACCESSIBILITY, tree, "dc.tag.header.sequence.2",
-                    tag, currHeaderTag);
-            }
-        }
-
-        currHeaderTag = tag;
-    }
-
-    private int getHeaderLevel(HtmlTag tag) {
-        if (tag == null)
-            return 0;
-        switch (tag) {
-            case H1: return 1;
-            case H2: return 2;
-            case H3: return 3;
-            case H4: return 4;
-            case H5: return 5;
-            case H6: return 6;
-            default: throw new IllegalArgumentException();
-        }
-    }
-
-    @Override
-    public Void visitEndElement(EndElementTree tree, Void ignore) {
-        final Name treeName = tree.getName();
-        final HtmlTag t = HtmlTag.get(treeName);
-        if (t == null) {
-            env.messages.error(HTML, tree, "dc.tag.unknown", treeName);
-        } else if (t.endKind == HtmlTag.EndKind.NONE) {
-            env.messages.error(HTML, tree, "dc.tag.end.not.permitted", treeName);
-        } else if (tagStack.isEmpty()) {
-            env.messages.error(HTML, tree, "dc.tag.end.unexpected", treeName);
-        } else {
-            while (!tagStack.isEmpty()) {
-                TagStackItem top = tagStack.peek();
-                if (t == top.tag) {
-                    switch (t) {
-                        case TABLE:
-                            if (!top.attrs.contains(HtmlTag.Attr.SUMMARY)
-                                    && !top.flags.contains(Flag.TABLE_HAS_CAPTION)) {
-                                env.messages.error(ACCESSIBILITY, tree,
-                                        "dc.no.summary.or.caption.for.table");
-                            }
-                    }
-                    if (t.flags.contains(HtmlTag.Flag.EXPECT_CONTENT)
-                            && !top.flags.contains(Flag.HAS_TEXT)
-                            && !top.flags.contains(Flag.HAS_ELEMENT)) {
-                        env.messages.warning(HTML, tree, "dc.tag.empty", treeName);
-                    }
-                    if (t.flags.contains(HtmlTag.Flag.NO_TEXT)
-                            && top.flags.contains(Flag.HAS_TEXT)) {
-                        env.messages.error(HTML, tree, "dc.text.not.allowed", treeName);
-                    }
-                    tagStack.pop();
-                    break;
-                } else if (top.tag == null || top.tag.endKind != HtmlTag.EndKind.REQUIRED) {
-                    tagStack.pop();
-                } else {
-                    boolean found = false;
-                    for (TagStackItem si: tagStack) {
-                        if (si.tag == t) {
-                            found = true;
-                            break;
-                        }
-                    }
-                    if (found && top.tree.getKind() == DocTree.Kind.START_ELEMENT) {
-                        env.messages.error(HTML, top.tree, "dc.tag.start.unmatched",
-                                ((StartElementTree) top.tree).getName());
-                        tagStack.pop();
-                    } else {
-                        env.messages.error(HTML, tree, "dc.tag.end.unexpected", treeName);
-                        break;
-                    }
-                }
-            }
-        }
-
-        return super.visitEndElement(tree, ignore);
-    }
-    // </editor-fold>
-
-    // <editor-fold defaultstate="collapsed" desc="HTML attributes">
-
-    @Override @SuppressWarnings("fallthrough")
-    public Void visitAttribute(AttributeTree tree, Void ignore) {
-        HtmlTag currTag = tagStack.peek().tag;
-        if (currTag != null) {
-            Name name = tree.getName();
-            HtmlTag.Attr attr = currTag.getAttr(name);
-            if (attr != null) {
-                boolean first = tagStack.peek().attrs.add(attr);
-                if (!first)
-                    env.messages.error(HTML, tree, "dc.attr.repeated", name);
-            }
-            AttrKind k = currTag.getAttrKind(name);
-            switch (k) {
-                case OK:
-                    break;
-
-                case INVALID:
-                    env.messages.error(HTML, tree, "dc.attr.unknown", name);
-                    break;
-
-                case OBSOLETE:
-                    env.messages.warning(ACCESSIBILITY, tree, "dc.attr.obsolete", name);
-                    break;
-
-                case USE_CSS:
-                    env.messages.warning(ACCESSIBILITY, tree, "dc.attr.obsolete.use.css", name);
-                    break;
-            }
-
-            if (attr != null) {
-                switch (attr) {
-                    case NAME:
-                        if (currTag != HtmlTag.A) {
-                            break;
-                        }
-                    // fallthrough
-                    case ID:
-                        String value = getAttrValue(tree);
-                        if (!validName.matcher(value).matches()) {
-                            env.messages.error(HTML, tree, "dc.invalid.anchor", value);
-                        }
-                        if (!foundAnchors.add(value)) {
-                            env.messages.error(HTML, tree, "dc.anchor.already.defined", value);
-                        }
-                        break;
-
-                    case HREF:
-                        if (currTag == HtmlTag.A) {
-                            String v = getAttrValue(tree);
-                            if (v == null || v.isEmpty()) {
-                                env.messages.error(HTML, tree, "dc.attr.lacks.value");
-                            } else {
-                                Matcher m = docRoot.matcher(v);
-                                if (m.matches()) {
-                                    String rest = m.group(2);
-                                    if (!rest.isEmpty())
-                                        checkURI(tree, rest);
-                                } else {
-                                    checkURI(tree, v);
-                                }
-                            }
-                        }
-                        break;
-                }
-            }
-        }
-
-        // TODO: basic check on value
-
-        return super.visitAttribute(tree, ignore);
-    }
-
-    // http://www.w3.org/TR/html401/types.html#type-name
-    private static final Pattern validName = Pattern.compile("[A-Za-z][A-Za-z0-9-_:.]*");
-
-    // pattern to remove leading {@docRoot}/?
-    private static final Pattern docRoot = Pattern.compile("(?i)(\\{@docRoot *\\}/?)?(.*)");
-
-    private String getAttrValue(AttributeTree tree) {
-        if (tree.getValue() == null)
-            return null;
-
-        StringWriter sw = new StringWriter();
-        try {
-            new DocPretty(sw).print(tree.getValue());
-        } catch (IOException e) {
-            // cannot happen
-        }
-        // ignore potential use of entities for now
-        return sw.toString();
-    }
-
-    private void checkURI(AttributeTree tree, String uri) {
-        try {
-            URI u = new URI(uri);
-        } catch (URISyntaxException e) {
-            env.messages.error(HTML, tree, "dc.invalid.uri", uri);
-        }
-    }
-    // </editor-fold>
-
-    // <editor-fold defaultstate="collapsed" desc="javadoc tags">
-
-    @Override
-    public Void visitAuthor(AuthorTree tree, Void ignore) {
-        warnIfEmpty(tree, tree.getName());
-        return super.visitAuthor(tree, ignore);
-    }
-
-    @Override
-    public Void visitInheritDoc(InheritDocTree tree, Void ignore) {
-        // TODO: verify on overridden method
-        foundInheritDoc = true;
-        return super.visitInheritDoc(tree, ignore);
-    }
-
-    @Override
-    public Void visitLink(LinkTree tree, Void ignore) {
-        // simulate inline context on tag stack
-        HtmlTag t = (tree.getKind() == DocTree.Kind.LINK)
-                ? HtmlTag.CODE : HtmlTag.SPAN;
-        tagStack.push(new TagStackItem(tree, t));
-        try {
-            return super.visitLink(tree, ignore);
-        } finally {
-            tagStack.pop();
-        }
-    }
-
-    @Override
-    public Void visitParam(ParamTree tree, Void ignore) {
-        boolean typaram = tree.isTypeParameter();
-        IdentifierTree nameTree = tree.getName();
-        Element e = env.currElement;
-        switch (e.getKind()) {
-            case METHOD: case CONSTRUCTOR: {
-                ExecutableElement ee = (ExecutableElement) e;
-                checkParamDeclared(nameTree, typaram ? ee.getTypeParameters() : ee.getParameters());
-                break;
-            }
-
-            case CLASS: case INTERFACE: {
-                TypeElement te = (TypeElement) e;
-                if (typaram) {
-                    checkParamDeclared(nameTree, te.getTypeParameters());
-                } else {
-                    env.messages.error(REFERENCE, tree, "dc.invalid.param");
-                }
-                break;
-            }
-
-            default:
-                env.messages.error(REFERENCE, tree, "dc.invalid.param");
-                break;
-        }
-        warnIfEmpty(tree, tree.getDescription());
-        return super.visitParam(tree, ignore);
-    }
-    // where
-    private void checkParamDeclared(IdentifierTree nameTree, List<? extends Element> list) {
-        Name name = nameTree.getName();
-        boolean found = false;
-        for (Element e: list) {
-            if (name.equals(e.getSimpleName())) {
-                foundParams.add(e);
-                found = true;
-            }
-        }
-        if (!found)
-            env.messages.error(REFERENCE, nameTree, "dc.param.name.not.found");
-    }
-
-    private void checkParamsDocumented(List<? extends Element> list) {
-        if (foundInheritDoc)
-            return;
-
-        for (Element e: list) {
-            if (!foundParams.contains(e)) {
-                CharSequence paramName = (e.getKind() == ElementKind.TYPE_PARAMETER)
-                        ? "<" + e.getSimpleName() + ">"
-                        : e.getSimpleName();
-                reportMissing("dc.missing.param", paramName);
-            }
-        }
-    }
-
-    @Override
-    public Void visitReference(ReferenceTree tree, Void ignore) {
-        Element e = env.trees.getElement(env.currPath, tree);
-        if (e == null)
-            env.messages.error(REFERENCE, tree, "dc.ref.not.found");
-        return super.visitReference(tree, ignore);
-    }
-
-    @Override
-    public Void visitReturn(ReturnTree tree, Void ignore) {
-        Element e = env.trees.getElement(env.currPath);
-        if (e.getKind() != ElementKind.METHOD
-                || ((ExecutableElement) e).getReturnType().getKind() == TypeKind.VOID)
-            env.messages.error(REFERENCE, tree, "dc.invalid.return");
-        foundReturn = true;
-        warnIfEmpty(tree, tree.getDescription());
-        return super.visitReturn(tree, ignore);
-    }
-
-    @Override
-    public Void visitSerialData(SerialDataTree tree, Void ignore) {
-        warnIfEmpty(tree, tree.getDescription());
-        return super.visitSerialData(tree, ignore);
-    }
-
-    @Override
-    public Void visitSerialField(SerialFieldTree tree, Void ignore) {
-        warnIfEmpty(tree, tree.getDescription());
-        return super.visitSerialField(tree, ignore);
-    }
-
-    @Override
-    public Void visitSince(SinceTree tree, Void ignore) {
-        warnIfEmpty(tree, tree.getBody());
-        return super.visitSince(tree, ignore);
-    }
-
-    @Override
-    public Void visitThrows(ThrowsTree tree, Void ignore) {
-        ReferenceTree exName = tree.getExceptionName();
-        Element ex = env.trees.getElement(env.currPath, exName);
-        if (ex == null) {
-            env.messages.error(REFERENCE, tree, "dc.ref.not.found");
-        } else if (ex.asType().getKind() == TypeKind.DECLARED
-                && env.types.isAssignable(ex.asType(), env.java_lang_Throwable)) {
-            switch (env.currElement.getKind()) {
-                case CONSTRUCTOR:
-                case METHOD:
-                    if (isCheckedException(ex.asType())) {
-                        ExecutableElement ee = (ExecutableElement) env.currElement;
-                        checkThrowsDeclared(exName, ex.asType(), ee.getThrownTypes());
-                    }
-                    break;
-                default:
-                    env.messages.error(REFERENCE, tree, "dc.invalid.throws");
-            }
-        } else {
-            env.messages.error(REFERENCE, tree, "dc.invalid.throws");
-        }
-        warnIfEmpty(tree, tree.getDescription());
-        return scan(tree.getDescription(), ignore);
-    }
-
-    private void checkThrowsDeclared(ReferenceTree tree, TypeMirror t, List<? extends TypeMirror> list) {
-        boolean found = false;
-        for (TypeMirror tl : list) {
-            if (env.types.isAssignable(t, tl)) {
-                foundThrows.add(tl);
-                found = true;
-            }
-        }
-        if (!found)
-            env.messages.error(REFERENCE, tree, "dc.exception.not.thrown", t);
-    }
-
-    private void checkThrowsDocumented(List<? extends TypeMirror> list) {
-        if (foundInheritDoc)
-            return;
-
-        for (TypeMirror tl: list) {
-            if (isCheckedException(tl) && !foundThrows.contains(tl))
-                reportMissing("dc.missing.throws", tl);
-        }
-    }
-
-    @Override
-    public Void visitVersion(VersionTree tree, Void ignore) {
-        warnIfEmpty(tree, tree.getBody());
-        return super.visitVersion(tree, ignore);
-    }
-
-    @Override
-    public Void visitErroneous(ErroneousTree tree, Void ignore) {
-        env.messages.error(SYNTAX, tree, null, tree.getDiagnostic().getMessage(null));
-        return null;
-    }
-    // </editor-fold>
-
-    // <editor-fold defaultstate="collapsed" desc="Utility methods">
-
-    private boolean isCheckedException(TypeMirror t) {
-        return !(env.types.isAssignable(t, env.java_lang_Error)
-                || env.types.isAssignable(t, env.java_lang_RuntimeException));
-    }
-
-    private boolean isSynthetic() {
-        switch (env.currElement.getKind()) {
-            case CONSTRUCTOR:
-                // A synthetic default constructor has the same pos as the
-                // enclosing class
-                TreePath p = env.currPath;
-                return env.getPos(p) == env.getPos(p.getParentPath());
-        }
-        return false;
-    }
-
-    void markEnclosingTag(Flag flag) {
-        TagStackItem top = tagStack.peek();
-        if (top != null)
-            top.flags.add(flag);
-    }
-
-    String toString(TreePath p) {
-        StringBuilder sb = new StringBuilder("TreePath[");
-        toString(p, sb);
-        sb.append("]");
-        return sb.toString();
-    }
-
-    void toString(TreePath p, StringBuilder sb) {
-        TreePath parent = p.getParentPath();
-        if (parent != null) {
-            toString(parent, sb);
-            sb.append(",");
-        }
-       sb.append(p.getLeaf().getKind()).append(":").append(env.getPos(p)).append(":S").append(env.getStartPos(p));
-    }
-
-    void warnIfEmpty(DocTree tree, List<? extends DocTree> list) {
-        for (DocTree d: list) {
-            switch (d.getKind()) {
-                case TEXT:
-                    if (!((TextTree) d).getBody().trim().isEmpty())
-                        return;
-                    break;
-                default:
-                    return;
-            }
-        }
-        env.messages.warning(SYNTAX, tree, "dc.empty", tree.getKind().tagName);
-    }
-    // </editor-fold>
-
-}
--- a/src/share/classes/com/sun/tools/doclint/DocLint.java	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,376 +0,0 @@
-/*
- * Copyright (c) 2012, 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.doclint;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.lang.model.element.Name;
-import javax.tools.StandardLocation;
-
-import com.sun.source.doctree.DocCommentTree;
-import com.sun.source.tree.ClassTree;
-import com.sun.source.tree.CompilationUnitTree;
-import com.sun.source.tree.MethodTree;
-import com.sun.source.tree.Tree;
-import com.sun.source.tree.VariableTree;
-import com.sun.source.util.JavacTask;
-import com.sun.source.util.Plugin;
-import com.sun.source.util.TaskEvent;
-import com.sun.source.util.TaskListener;
-import com.sun.source.util.TreePath;
-import com.sun.source.util.TreePathScanner;
-import com.sun.tools.javac.api.JavacTaskImpl;
-import com.sun.tools.javac.api.JavacTool;
-import com.sun.tools.javac.file.JavacFileManager;
-import com.sun.tools.javac.main.JavaCompiler;
-import com.sun.tools.javac.util.Context;
-
-/**
- * Multi-function entry point for the doc check utility.
- *
- * This class can be invoked in the following ways:
- * <ul>
- * <li>From the command line
- * <li>From javac, as a plugin
- * <li>Directly, via a simple API
- * </ul>
- *
- * <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></p>
- */
-public class DocLint implements Plugin {
-
-    public static final String XMSGS_OPTION = "-Xmsgs";
-    public static final String XMSGS_CUSTOM_PREFIX = "-Xmsgs:";
-    private static final String STATS = "-stats";
-
-    // <editor-fold defaultstate="collapsed" desc="Command-line entry point">
-    public static void main(String... args) {
-        try {
-            new DocLint().run(args);
-        } catch (BadArgs e) {
-            System.err.println(e.getMessage());
-            System.exit(1);
-        } catch (IOException e) {
-            System.err.println(e);
-            System.exit(2);
-        }
-    }
-
-    // </editor-fold>
-
-    // <editor-fold defaultstate="collapsed" desc="Simple API">
-
-    public static class BadArgs extends Exception {
-        private static final long serialVersionUID = 0;
-        BadArgs(String code, Object... args) {
-            this.code = code;
-            this.args = args;
-        }
-
-        final String code;
-        final Object[] args;
-    }
-
-    /**
-     * Simple API entry point.
-     */
-    public void run(String... args) throws BadArgs, IOException {
-        PrintWriter out = new PrintWriter(System.out);
-        try {
-            run(out, args);
-        } finally {
-            out.flush();
-        }
-    }
-
-    public void run(PrintWriter out, String... args) throws BadArgs, IOException {
-        env = new Env();
-        processArgs(args);
-
-        if (needHelp)
-            showHelp(out);
-
-        if (javacFiles.isEmpty()) {
-            if (!needHelp)
-                System.out.println("no files given");
-        }
-
-        JavacTool tool = JavacTool.create();
-
-        JavacFileManager fm = new JavacFileManager(new Context(), false, null);
-        fm.setSymbolFileEnabled(false);
-        fm.setLocation(StandardLocation.PLATFORM_CLASS_PATH, javacBootClassPath);
-        fm.setLocation(StandardLocation.CLASS_PATH, javacClassPath);
-        fm.setLocation(StandardLocation.SOURCE_PATH, javacSourcePath);
-
-        JavacTask task = tool.getTask(out, fm, null, javacOpts, null,
-                fm.getJavaFileObjectsFromFiles(javacFiles));
-        Iterable<? extends CompilationUnitTree> units = task.parse();
-        ((JavacTaskImpl) task).enter();
-
-        env.init(task);
-        checker = new Checker(env);
-
-        DeclScanner ds = new DeclScanner() {
-            @Override
-            void visitDecl(Tree tree, Name name) {
-                TreePath p = getCurrentPath();
-                DocCommentTree dc = env.trees.getDocCommentTree(p);
-
-                checker.scan(dc, p);
-            }
-        };
-
-        ds.scan(units, null);
-
-        reportStats(out);
-
-        Context ctx = ((JavacTaskImpl) task).getContext();
-        JavaCompiler c = JavaCompiler.instance(ctx);
-        c.printCount("error", c.errorCount());
-        c.printCount("warn", c.warningCount());
-    }
-
-    void processArgs(String... args) throws BadArgs {
-        javacOpts = new ArrayList<String>();
-        javacFiles = new ArrayList<File>();
-
-        if (args.length == 0)
-            needHelp = true;
-
-        for (int i = 0; i < args.length; i++) {
-            String arg = args[i];
-            if (arg.matches("-Xmax(errs|warns)") && i + 1 < args.length) {
-                if (args[++i].matches("[0-9]+")) {
-                    javacOpts.add(arg);
-                    javacOpts.add(args[i]);
-                } else {
-                    throw new BadArgs("dc.bad.value.for.option", arg, args[i]);
-                }
-            } else if (arg.equals(STATS)) {
-                env.messages.setStatsEnabled(true);
-            } else if (arg.matches("-bootclasspath") && i + 1 < args.length) {
-                javacBootClassPath = splitPath(args[++i]);
-            } else if (arg.matches("-classpath") && i + 1 < args.length) {
-                javacClassPath = splitPath(args[++i]);
-            } else if (arg.matches("-sourcepath") && i + 1 < args.length) {
-                javacSourcePath = splitPath(args[++i]);
-            } else if (arg.equals(XMSGS_OPTION)) {
-                env.messages.setOptions(null);
-            } else if (arg.startsWith(XMSGS_CUSTOM_PREFIX)) {
-                env.messages.setOptions(arg.substring(arg.indexOf(":") + 1));
-            } else if (arg.equals("-h") || arg.equals("-help") || arg.equals("--help")
-                    || arg.equals("-?") || arg.equals("-usage")) {
-                needHelp = true;
-            } else if (arg.startsWith("-")) {
-                throw new BadArgs("dc.bad.option", arg);
-            } else {
-                while (i < args.length)
-                    javacFiles.add(new File(args[i++]));
-            }
-        }
-    }
-
-    void showHelp(PrintWriter out) {
-        out.println("Usage:");
-        out.println("    doclint [options] source-files...");
-        out.println("");
-        out.println("Options:");
-        out.println("  -Xmsgs  ");
-        out.println("    Same as -Xmsgs:all");
-        out.println("  -Xmsgs:values");
-        out.println("    Specify categories of issues to be checked, where 'values'");
-        out.println("    is a comma-separated list of any of the following:");
-        out.println("      reference      show places where comments contain incorrect");
-        out.println("                     references to Java source code elements");
-        out.println("      syntax         show basic syntax errors within comments");
-        out.println("      html           show issues with HTML tags and attributes");
-        out.println("      accessibility  show issues for accessibility");
-        out.println("      missing        show issues with missing documentation");
-        out.println("      all            all of the above");
-        out.println("    Precede a value with '-' to negate it");
-        out.println("    Categories may be qualified by one of:");
-        out.println("      /public /protected /package /private");
-        out.println("    For positive categories (not beginning with '-')");
-        out.println("    the qualifier applies to that access level and above.");
-        out.println("    For negative categories (beginning with '-')");
-        out.println("    the qualifier applies to that access level and below.");
-        out.println("    If a qualifier is missing, the category applies to");
-        out.println("    all access levels.");
-        out.println("    For example, -Xmsgs:all,-syntax/private");
-        out.println("    This will enable all messages, except syntax errors");
-        out.println("    in the doc comments of private methods.");
-        out.println("    If no -Xmsgs options are provided, the default is");
-        out.println("    equivalent to -Xmsgs:all/protected, meaning that");
-        out.println("    all messages are reported for protected and public");
-        out.println("    declarations only. ");
-        out.println("  -h -help --help -usage -?");
-        out.println("    Show this message.");
-        out.println("");
-        out.println("The following javac options are also supported");
-        out.println("  -bootclasspath, -classpath, -sourcepath, -Xmaxerrs, -Xmaxwarns");
-        out.println("");
-        out.println("To run doclint on part of a project, put the compiled classes for your");
-        out.println("project on the classpath (or bootclasspath), then specify the source files");
-        out.println("to be checked on the command line.");
-    }
-
-    List<File> splitPath(String path) {
-        List<File> files = new ArrayList<File>();
-        for (String f: path.split(File.separator)) {
-            if (f.length() > 0)
-                files.add(new File(f));
-        }
-        return files;
-    }
-
-    List<File> javacBootClassPath;
-    List<File> javacClassPath;
-    List<File> javacSourcePath;
-    List<String> javacOpts;
-    List<File> javacFiles;
-    boolean needHelp = false;
-
-    // </editor-fold>
-
-    // <editor-fold defaultstate="collapsed" desc="javac Plugin">
-
-    @Override
-    public String getName() {
-        return "doclint";
-    }
-
-    @Override
-    public void init(JavacTask task, String... args) {
-        init(task, args, true);
-    }
-
-    // </editor-fold>
-
-    // <editor-fold defaultstate="collapsed" desc="Embedding API">
-
-    public void init(JavacTask task, String[] args, boolean addTaskListener) {
-        env = new Env();
-        for (int i = 0; i < args.length; i++) {
-            String arg = args[i];
-            if (arg.equals(XMSGS_OPTION)) {
-                env.messages.setOptions(null);
-            } else if (arg.startsWith(XMSGS_CUSTOM_PREFIX)) {
-                env.messages.setOptions(arg.substring(arg.indexOf(":") + 1));
-            } else
-                throw new IllegalArgumentException(arg);
-        }
-        env.init(task);
-
-        checker = new Checker(env);
-
-        if (addTaskListener) {
-            final DeclScanner ds = new DeclScanner() {
-                @Override
-                void visitDecl(Tree tree, Name name) {
-                    TreePath p = getCurrentPath();
-                    DocCommentTree dc = env.trees.getDocCommentTree(p);
-
-                    checker.scan(dc, p);
-                }
-            };
-
-            TaskListener tl = new TaskListener() {
-                @Override
-                public void started(TaskEvent e) {
-                    return;
-                }
-
-                @Override
-                public void finished(TaskEvent e) {
-                    switch (e.getKind()) {
-                        case ENTER:
-                            ds.scan(e.getCompilationUnit(), null);
-                    }
-                }
-            };
-
-            task.addTaskListener(tl);
-        }
-    }
-
-    public void scan(TreePath p) {
-        DocCommentTree dc = env.trees.getDocCommentTree(p);
-        checker.scan(dc, p);
-    }
-
-    public void reportStats(PrintWriter out) {
-        env.messages.reportStats(out);
-    }
-
-    // </editor-fold>
-
-    Env env;
-    Checker checker;
-
-    public static boolean isValidOption(String opt) {
-        if (opt.equals(XMSGS_OPTION))
-           return true;
-        if (opt.startsWith(XMSGS_CUSTOM_PREFIX))
-           return Messages.Options.isValidOptions(opt.substring(XMSGS_CUSTOM_PREFIX.length()));
-        return false;
-    }
-
-    // <editor-fold defaultstate="collapsed" desc="DeclScanner">
-
-    static abstract class DeclScanner extends TreePathScanner<Void, Void> {
-        abstract void visitDecl(Tree tree, Name name);
-
-        @Override
-        public Void visitClass(ClassTree tree, Void ignore) {
-            visitDecl(tree, tree.getSimpleName());
-            return super.visitClass(tree, ignore);
-        }
-
-        @Override
-        public Void visitMethod(MethodTree tree, Void ignore) {
-            visitDecl(tree, tree.getName());
-            //return super.visitMethod(tree, ignore);
-            return null;
-        }
-
-        @Override
-        public Void visitVariable(VariableTree tree, Void ignore) {
-            visitDecl(tree, tree.getName());
-            return super.visitVariable(tree, ignore);
-        }
-    }
-
-    // </editor-fold>
-
-}
--- a/src/share/classes/com/sun/tools/doclint/Entity.java	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,326 +0,0 @@
-/*
- * Copyright (c) 2012, 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.doclint;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * Table of entities defined in HTML 4.01.
- *
- * <p> Derived from
- * <a href="http://www.w3.org/TR/html4/sgml/entities.html">Character entity references in HTML 4</a>.
- *
- * The name of the member follows the name of the entity,
- * except when it clashes with a keyword, in which case
- * it is prefixed by '_'.
- *
- * <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></p>
- */
-enum Entity {
-    nbsp(160),
-    iexcl(161),
-    cent(162),
-    pound(163),
-    curren(164),
-    yen(165),
-    brvbar(166),
-    sect(167),
-    uml(168),
-    copy(169),
-    ordf(170),
-    laquo(171),
-    not(172),
-    shy(173),
-    reg(174),
-    macr(175),
-    deg(176),
-    plusmn(177),
-    sup2(178),
-    sup3(179),
-    acute(180),
-    micro(181),
-    para(182),
-    middot(183),
-    cedil(184),
-    sup1(185),
-    ordm(186),
-    raquo(187),
-    frac14(188),
-    frac12(189),
-    frac34(190),
-    iquest(191),
-    Agrave(192),
-    Aacute(193),
-    Acirc(194),
-    Atilde(195),
-    Auml(196),
-    Aring(197),
-    AElig(198),
-    Ccedil(199),
-    Egrave(200),
-    Eacute(201),
-    Ecirc(202),
-    Euml(203),
-    Igrave(204),
-    Iacute(205),
-    Icirc(206),
-    Iuml(207),
-    ETH(208),
-    Ntilde(209),
-    Ograve(210),
-    Oacute(211),
-    Ocirc(212),
-    Otilde(213),
-    Ouml(214),
-    times(215),
-    Oslash(216),
-    Ugrave(217),
-    Uacute(218),
-    Ucirc(219),
-    Uuml(220),
-    Yacute(221),
-    THORN(222),
-    szlig(223),
-    agrave(224),
-    aacute(225),
-    acirc(226),
-    atilde(227),
-    auml(228),
-    aring(229),
-    aelig(230),
-    ccedil(231),
-    egrave(232),
-    eacute(233),
-    ecirc(234),
-    euml(235),
-    igrave(236),
-    iacute(237),
-    icirc(238),
-    iuml(239),
-    eth(240),
-    ntilde(241),
-    ograve(242),
-    oacute(243),
-    ocirc(244),
-    otilde(245),
-    ouml(246),
-    divide(247),
-    oslash(248),
-    ugrave(249),
-    uacute(250),
-    ucirc(251),
-    uuml(252),
-    yacute(253),
-    thorn(254),
-    yuml(255),
-    fnof(402),
-    Alpha(913),
-    Beta(914),
-    Gamma(915),
-    Delta(916),
-    Epsilon(917),
-    Zeta(918),
-    Eta(919),
-    Theta(920),
-    Iota(921),
-    Kappa(922),
-    Lambda(923),
-    Mu(924),
-    Nu(925),
-    Xi(926),
-    Omicron(927),
-    Pi(928),
-    Rho(929),
-    Sigma(931),
-    Tau(932),
-    Upsilon(933),
-    Phi(934),
-    Chi(935),
-    Psi(936),
-    Omega(937),
-    alpha(945),
-    beta(946),
-    gamma(947),
-    delta(948),
-    epsilon(949),
-    zeta(950),
-    eta(951),
-    theta(952),
-    iota(953),
-    kappa(954),
-    lambda(955),
-    mu(956),
-    nu(957),
-    xi(958),
-    omicron(959),
-    pi(960),
-    rho(961),
-    sigmaf(962),
-    sigma(963),
-    tau(964),
-    upsilon(965),
-    phi(966),
-    chi(967),
-    psi(968),
-    omega(969),
-    thetasym(977),
-    upsih(978),
-    piv(982),
-    bull(8226),
-    hellip(8230),
-    prime(8242),
-    Prime(8243),
-    oline(8254),
-    frasl(8260),
-    weierp(8472),
-    image(8465),
-    real(8476),
-    trade(8482),
-    alefsym(8501),
-    larr(8592),
-    uarr(8593),
-    rarr(8594),
-    darr(8595),
-    harr(8596),
-    crarr(8629),
-    lArr(8656),
-    uArr(8657),
-    rArr(8658),
-    dArr(8659),
-    hArr(8660),
-    forall(8704),
-    part(8706),
-    exist(8707),
-    empty(8709),
-    nabla(8711),
-    isin(8712),
-    notin(8713),
-    ni(8715),
-    prod(8719),
-    sum(8721),
-    minus(8722),
-    lowast(8727),
-    radic(8730),
-    prop(8733),
-    infin(8734),
-    ang(8736),
-    and(8743),
-    or(8744),
-    cap(8745),
-    cup(8746),
-    _int(8747),
-    there4(8756),
-    sim(8764),
-    cong(8773),
-    asymp(8776),
-    ne(8800),
-    equiv(8801),
-    le(8804),
-    ge(8805),
-    sub(8834),
-    sup(8835),
-    nsub(8836),
-    sube(8838),
-    supe(8839),
-    oplus(8853),
-    otimes(8855),
-    perp(8869),
-    sdot(8901),
-    lceil(8968),
-    rceil(8969),
-    lfloor(8970),
-    rfloor(8971),
-    lang(9001),
-    rang(9002),
-    loz(9674),
-    spades(9824),
-    clubs(9827),
-    hearts(9829),
-    diams(9830),
-    quot(34),
-    amp(38),
-    lt(60),
-    gt(62),
-    OElig(338),
-    oelig(339),
-    Scaron(352),
-    scaron(353),
-    Yuml(376),
-    circ(710),
-    tilde(732),
-    ensp(8194),
-    emsp(8195),
-    thinsp(8201),
-    zwnj(8204),
-    zwj(8205),
-    lrm(8206),
-    rlm(8207),
-    ndash(8211),
-    mdash(8212),
-    lsquo(8216),
-    rsquo(8217),
-    sbquo(8218),
-    ldquo(8220),
-    rdquo(8221),
-    bdquo(8222),
-    dagger(8224),
-    Dagger(8225),
-    permil(8240),
-    lsaquo(8249),
-    rsaquo(8250),
-    euro(8364);
-
-    int code;
-
-    private Entity(int code) {
-        this.code = code;
-    }
-
-    static boolean isValid(String name) {
-        return names.containsKey(name);
-    }
-
-    static boolean isValid(int code) {
-        // allow numeric codes for standard ANSI characters
-        return codes.containsKey(code) || ( 32 <= code && code < 2127);
-    }
-
-    private static final Map<String,Entity> names = new HashMap<String,Entity>();
-    private static final Map<Integer,Entity> codes = new HashMap<Integer,Entity>();
-    static {
-        for (Entity e: values()) {
-            String name = e.name();
-            int code = e.code;
-            if (name.startsWith("_")) name = name.substring(1);
-            names.put(name, e);
-            codes.put(code, e);
-        }
-    }
-}
--- a/src/share/classes/com/sun/tools/doclint/Env.java	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,166 +0,0 @@
-/*
- * Copyright (c) 2012, 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.doclint;
-
-
-import java.util.Set;
-
-import javax.lang.model.element.Element;
-import javax.lang.model.element.ExecutableElement;
-import javax.lang.model.element.Modifier;
-import javax.lang.model.type.TypeMirror;
-import javax.lang.model.util.Elements;
-import javax.lang.model.util.Types;
-
-import com.sun.source.doctree.DocCommentTree;
-import com.sun.source.util.DocTrees;
-import com.sun.source.util.JavacTask;
-import com.sun.source.util.SourcePositions;
-import com.sun.source.util.TreePath;
-import com.sun.tools.javac.model.JavacTypes;
-import com.sun.tools.javac.tree.JCTree;
-
-/**
- * Utility container for current execution environment,
- * providing the current declaration and its doc comment.
- *
- * <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></p>
- */
-public class Env {
-    /**
-     * Access kinds for declarations.
-     */
-    public enum AccessKind {
-        PRIVATE,
-        PACKAGE,
-        PROTECTED,
-        PUBLIC;
-
-        static boolean accepts(String opt) {
-            for (AccessKind g: values())
-                if (opt.equals(g.name().toLowerCase())) return true;
-            return false;
-        }
-
-        static AccessKind of(Set<Modifier> mods) {
-            if (mods.contains(Modifier.PUBLIC))
-                return AccessKind.PUBLIC;
-            else if (mods.contains(Modifier.PROTECTED))
-                return AccessKind.PROTECTED;
-            else if (mods.contains(Modifier.PRIVATE))
-                return AccessKind.PRIVATE;
-            else
-                return AccessKind.PACKAGE;
-        }
-    };
-
-    /** Message handler. */
-    final Messages messages;
-
-    // Utility classes
-    DocTrees trees;
-    Elements elements;
-    Types types;
-
-    // Types used when analysing doc comments.
-    TypeMirror java_lang_Error;
-    TypeMirror java_lang_RuntimeException;
-    TypeMirror java_lang_Throwable;
-    TypeMirror java_lang_Void;
-
-    /** The path for the declaration containing the comment currently being analyzed. */
-    TreePath currPath;
-    /** The element for the declaration containing the comment currently being analyzed. */
-    Element currElement;
-    /** The comment current being analyzed. */
-    DocCommentTree currDocComment;
-    /**
-     * The access kind of the declaration containing the comment currently being analyzed.
-     * This is the minimum (most restrictive) access kind of the declaration iteself
-     * and that of its containers. For example, a public method in a private class is
-     * noted as private.
-     */
-    AccessKind currAccess;
-    /** The set of methods, if any, that the current declaration overrides. */
-    Set<? extends ExecutableElement> currOverriddenMethods;
-
-    Env() {
-        messages = new Messages(this);
-    }
-
-    void init(JavacTask task) {
-        init(DocTrees.instance(task), task.getElements(), task.getTypes());
-    }
-
-    void init(DocTrees trees, Elements elements, Types types) {
-        this.trees = trees;
-        this.elements = elements;
-        this.types = types;
-        java_lang_Error = elements.getTypeElement("java.lang.Error").asType();
-        java_lang_RuntimeException = elements.getTypeElement("java.lang.RuntimeException").asType();
-        java_lang_Throwable = elements.getTypeElement("java.lang.Throwable").asType();
-        java_lang_Void = elements.getTypeElement("java.lang.Void").asType();
-    }
-
-    /** Set the current declaration and its doc comment. */
-    void setCurrent(TreePath path, DocCommentTree comment) {
-        currPath = path;
-        currDocComment = comment;
-        currElement = trees.getElement(currPath);
-        currOverriddenMethods = ((JavacTypes) types).getOverriddenMethods(currElement);
-
-        AccessKind ak = null;
-        for (TreePath p = path; p != null; p = p.getParentPath()) {
-            Element e = trees.getElement(p);
-            if (e != null) {
-                ak = min(ak, AccessKind.of(e.getModifiers()));
-            }
-        }
-        currAccess = ak;
-    }
-
-    AccessKind getAccessKind() {
-        return currAccess;
-    }
-
-    long getPos(TreePath p) {
-        return ((JCTree) p.getLeaf()).pos;
-    }
-
-    long getStartPos(TreePath p) {
-        SourcePositions sp = trees.getSourcePositions();
-        return sp.getStartPosition(p.getCompilationUnit(), p.getLeaf());
-    }
-
-    private <T extends Comparable<T>> T min(T item1, T item2) {
-        return (item1 == null) ? item2
-                : (item2 == null) ? item1
-                : item1.compareTo(item2) <= 0 ? item1 : item2;
-    }
-}
--- a/src/share/classes/com/sun/tools/doclint/HtmlTag.java	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,356 +0,0 @@
-/*
- * Copyright (c) 2010, 2012, 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.doclint;
-
-import java.util.Set;
-import java.util.Collections;
-import java.util.EnumMap;
-import java.util.EnumSet;
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.lang.model.element.Name;
-
-import static com.sun.tools.doclint.HtmlTag.Attr.*;
-
-/**
- * Enum representing HTML tags.
- *
- * The intent of this class is to embody the semantics of W3C HTML 4.01
- * to the extent supported/used by javadoc.
- *
- * This is derivative of com.sun.tools.doclets.formats.html.markup.HtmlTag.
- * Eventually, these two should be merged back together, and possibly made
- * public.
- *
- * @see <a href="http://www.w3.org/TR/REC-html40/">HTML 4.01 Specification</a>
- * @author Bhavesh Patel
- * @author Jonathan Gibbons (revised)
- */
-public enum HtmlTag {
-    A(BlockType.INLINE, EndKind.REQUIRED,
-            attrs(AttrKind.OK, HREF, TARGET, NAME)),
-
-    B(BlockType.INLINE, EndKind.REQUIRED,
-            EnumSet.of(Flag.EXPECT_CONTENT, Flag.NO_NEST)),
-
-    BLOCKQUOTE,
-
-    BODY(BlockType.OTHER, EndKind.REQUIRED),
-
-    BR(BlockType.INLINE, EndKind.NONE,
-            attrs(AttrKind.USE_CSS, CLEAR)),
-
-    CAPTION(EnumSet.of(Flag.EXPECT_CONTENT)),
-
-    CENTER,
-
-    CITE(BlockType.INLINE, EndKind.REQUIRED,
-            EnumSet.of(Flag.EXPECT_CONTENT, Flag.NO_NEST)),
-
-    CODE(BlockType.INLINE, EndKind.REQUIRED,
-            EnumSet.of(Flag.EXPECT_CONTENT, Flag.NO_NEST)),
-
-    DD(BlockType.BLOCK, EndKind.OPTIONAL,
-            EnumSet.of(Flag.EXPECT_CONTENT)),
-
-    DIV,
-
-    DL(BlockType.BLOCK, EndKind.REQUIRED,
-            EnumSet.of(Flag.EXPECT_CONTENT, Flag.NO_TEXT),
-            attrs(AttrKind.USE_CSS, COMPACT)),
-
-    DT(BlockType.BLOCK, EndKind.OPTIONAL,
-            EnumSet.of(Flag.EXPECT_CONTENT)),
-
-    EM(BlockType.INLINE, EndKind.REQUIRED,
-            EnumSet.of(Flag.NO_NEST)),
-
-    FONT(BlockType.INLINE, EndKind.REQUIRED, // tag itself is deprecated
-            EnumSet.of(Flag.EXPECT_CONTENT),
-            attrs(AttrKind.USE_CSS, SIZE, COLOR, FACE)),
-
-    FRAME(BlockType.OTHER, EndKind.NONE),
-
-    FRAMESET(BlockType.OTHER, EndKind.REQUIRED),
-
-    H1,
-    H2,
-    H3,
-    H4,
-    H5,
-    H6,
-
-    HEAD(BlockType.OTHER, EndKind.REQUIRED),
-
-    HR(BlockType.BLOCK, EndKind.NONE),
-
-    HTML(BlockType.OTHER, EndKind.REQUIRED),
-
-    I(BlockType.INLINE, EndKind.REQUIRED,
-            EnumSet.of(Flag.EXPECT_CONTENT, Flag.NO_NEST)),
-
-    IMG(BlockType.INLINE, EndKind.NONE,
-            attrs(AttrKind.OK, SRC, ALT, HEIGHT, WIDTH),
-            attrs(AttrKind.OBSOLETE, NAME),
-            attrs(AttrKind.USE_CSS, ALIGN, HSPACE, VSPACE, BORDER)),
-
-    LI(BlockType.BLOCK, EndKind.OPTIONAL),
-
-    LINK(BlockType.OTHER, EndKind.NONE),
-
-    MENU,
-
-    META(BlockType.OTHER, EndKind.NONE),
-
-    NOFRAMES(BlockType.OTHER, EndKind.REQUIRED),
-
-    NOSCRIPT(BlockType.OTHER, EndKind.REQUIRED),
-
-    OL(BlockType.BLOCK, EndKind.REQUIRED,
-            EnumSet.of(Flag.EXPECT_CONTENT, Flag.NO_TEXT),
-            attrs(AttrKind.USE_CSS, START, TYPE)),
-
-    P(BlockType.BLOCK, EndKind.OPTIONAL,
-            EnumSet.of(Flag.EXPECT_CONTENT),
-            attrs(AttrKind.USE_CSS, ALIGN)),
-
-    PRE(EnumSet.of(Flag.EXPECT_CONTENT)),
-
-    SCRIPT(BlockType.OTHER, EndKind.REQUIRED),
-
-    SMALL(BlockType.INLINE, EndKind.REQUIRED),
-
-    SPAN(BlockType.INLINE, EndKind.REQUIRED,
-            EnumSet.of(Flag.EXPECT_CONTENT)),
-
-    STRONG(BlockType.INLINE, EndKind.REQUIRED,
-            EnumSet.of(Flag.EXPECT_CONTENT)),
-
-    SUB(BlockType.INLINE, EndKind.REQUIRED,
-            EnumSet.of(Flag.EXPECT_CONTENT, Flag.NO_NEST)),
-
-    SUP(BlockType.INLINE, EndKind.REQUIRED,
-            EnumSet.of(Flag.EXPECT_CONTENT, Flag.NO_NEST)),
-
-    TABLE(BlockType.BLOCK, EndKind.REQUIRED,
-            EnumSet.of(Flag.EXPECT_CONTENT, Flag.NO_TEXT),
-            attrs(AttrKind.OK, SUMMARY, Attr.FRAME, RULES, BORDER,
-                CELLPADDING, CELLSPACING),
-            attrs(AttrKind.USE_CSS, ALIGN, WIDTH, BGCOLOR)),
-
-    TBODY(BlockType.BLOCK, EndKind.REQUIRED,
-            EnumSet.of(Flag.EXPECT_CONTENT, Flag.NO_TEXT),
-            attrs(AttrKind.OK, ALIGN, CHAR, CHAROFF, VALIGN)),
-
-    TD(BlockType.BLOCK, EndKind.OPTIONAL,
-            attrs(AttrKind.OK, COLSPAN, ROWSPAN, HEADERS, SCOPE, ABBR, AXIS,
-                ALIGN, CHAR, CHAROFF, VALIGN),
-            attrs(AttrKind.USE_CSS, WIDTH, BGCOLOR, HEIGHT, NOWRAP)),
-
-    TFOOT(BlockType.BLOCK, EndKind.REQUIRED,
-            attrs(AttrKind.OK, ALIGN, CHAR, CHAROFF, VALIGN)),
-
-    TH(BlockType.BLOCK, EndKind.OPTIONAL,
-            attrs(AttrKind.OK, COLSPAN, ROWSPAN, HEADERS, SCOPE, ABBR, AXIS,
-                ALIGN, CHAR, CHAROFF, VALIGN),
-            attrs(AttrKind.USE_CSS, WIDTH, BGCOLOR, HEIGHT, NOWRAP)),
-
-    THEAD(BlockType.BLOCK, EndKind.REQUIRED,
-            attrs(AttrKind.OK, ALIGN, CHAR, CHAROFF, VALIGN)),
-
-    TITLE(BlockType.OTHER, EndKind.REQUIRED),
-
-    TR(BlockType.BLOCK, EndKind.OPTIONAL,
-            EnumSet.of(Flag.NO_TEXT),
-            attrs(AttrKind.OK, ALIGN, CHAR, CHAROFF, VALIGN),
-            attrs(AttrKind.USE_CSS, BGCOLOR)),
-
-    TT(BlockType.INLINE, EndKind.REQUIRED,
-            EnumSet.of(Flag.EXPECT_CONTENT, Flag.NO_NEST)),
-
-    U(BlockType.INLINE, EndKind.REQUIRED,
-            EnumSet.of(Flag.EXPECT_CONTENT, Flag.NO_NEST)),
-
-    UL(BlockType.BLOCK, EndKind.REQUIRED,
-            EnumSet.of(Flag.EXPECT_CONTENT, Flag.NO_TEXT),
-            attrs(AttrKind.USE_CSS, COMPACT, TYPE)),
-
-    VAR(BlockType.INLINE, EndKind.REQUIRED);
-
-    /**
-     * Enum representing the type of HTML element.
-     */
-    public static enum BlockType {
-        BLOCK,
-        INLINE,
-        OTHER;
-    }
-
-    /**
-     * Enum representing HTML end tag requirement.
-     */
-    public static enum EndKind {
-        NONE,
-        OPTIONAL,
-        REQUIRED;
-    }
-
-    public static enum Flag {
-        EXPECT_CONTENT,
-        NO_NEST,
-        NO_TEXT
-    }
-
-    public static enum Attr {
-        ABBR,
-        ALIGN,
-        ALT,
-        AXIS,
-        BGCOLOR,
-        BORDER,
-        CELLSPACING,
-        CELLPADDING,
-        CHAR,
-        CHAROFF,
-        CLEAR,
-        CLASS,
-        COLOR,
-        COLSPAN,
-        COMPACT,
-        FACE,
-        FRAME,
-        HEADERS,
-        HEIGHT,
-        HREF,
-        HSPACE,
-        ID,
-        NAME,
-        NOWRAP,
-        REVERSED,
-        ROWSPAN,
-        RULES,
-        SCOPE,
-        SIZE,
-        SPACE,
-        SRC,
-        START,
-        STYLE,
-        SUMMARY,
-        TARGET,
-        TYPE,
-        VALIGN,
-        VSPACE,
-        WIDTH;
-
-        public String getText() {
-            return name().toLowerCase();
-        }
-
-        static final Map<String,Attr> index = new HashMap<String,Attr>();
-        static {
-            for (Attr t: values()) {
-                index.put(t.name().toLowerCase(), t);
-            }
-        }
-    }
-
-    public static enum AttrKind {
-        INVALID,
-        OBSOLETE,
-        USE_CSS,
-        OK
-    }
-
-    // This class exists to avoid warnings from using parameterized vararg type
-    // Map<Attr,AttrKind> in signature of HtmlTag constructor.
-    private static class AttrMap extends EnumMap<Attr,AttrKind>  {
-        private static final long serialVersionUID = 0;
-        AttrMap() {
-            super(Attr.class);
-        }
-    }
-
-
-    public final BlockType blockType;
-    public final EndKind endKind;
-    public final Set<Flag> flags;
-    private final Map<Attr,AttrKind> attrs;
-
-
-    HtmlTag() {
-        this(BlockType.BLOCK, EndKind.REQUIRED);
-    }
-
-    HtmlTag(Set<Flag> flags) {
-        this(BlockType.BLOCK, EndKind.REQUIRED, flags);
-    }
-
-    HtmlTag(BlockType blockType, EndKind endKind, AttrMap... attrMaps) {
-        this(blockType, endKind, Collections.<Flag>emptySet(), attrMaps);
-    }
-
-    HtmlTag(BlockType blockType, EndKind endKind, Set<Flag> flags, AttrMap... attrMaps) {
-        this.blockType = blockType;
-        this.endKind = endKind;this.flags = flags;
-        this.attrs = new EnumMap<Attr,AttrKind>(Attr.class);
-        for (Map<Attr,AttrKind> m: attrMaps)
-            this.attrs.putAll(m);
-        attrs.put(Attr.CLASS, AttrKind.OK);
-        attrs.put(Attr.ID, AttrKind.OK);
-        attrs.put(Attr.STYLE, AttrKind.OK);
-    }
-
-    public String getText() {
-        return name().toLowerCase();
-    }
-
-    public Attr getAttr(Name attrName) {
-        return Attr.index.get(attrName.toString().toLowerCase());
-    }
-
-    public AttrKind getAttrKind(Name attrName) {
-        AttrKind k = attrs.get(getAttr(attrName)); // null-safe
-        return (k == null) ? AttrKind.INVALID : k;
-    }
-
-    private static AttrMap attrs(AttrKind k, Attr... attrs) {
-        AttrMap map = new AttrMap();
-        for (Attr a: attrs) map.put(a, k);
-        return map;
-    }
-
-    private static final Map<String,HtmlTag> index = new HashMap<String,HtmlTag>();
-    static {
-        for (HtmlTag t: values()) {
-            index.put(t.name().toLowerCase(), t);
-        }
-    }
-
-    static HtmlTag get(Name tagName) {
-        return index.get(tagName.toString().toLowerCase());
-    }
-}
--- a/src/share/classes/com/sun/tools/doclint/Messages.java	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,348 +0,0 @@
-/*
- * Copyright (c) 2012, 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.doclint;
-
-import java.io.PrintWriter;
-import java.text.MessageFormat;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.Locale;
-import java.util.Map;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-import java.util.Set;
-import java.util.TreeMap;
-import java.util.TreeSet;
-
-import javax.tools.Diagnostic;
-
-import com.sun.source.doctree.DocTree;
-import com.sun.source.tree.Tree;
-import com.sun.tools.doclint.Env.AccessKind;
-
-/**
- * Message reporting for DocLint.
- *
- * Options are used to filter out messages based on group and access level.
- * Support can be enabled for accumulating statistics of different kinds of
- * messages.
- *
- * <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></p>
- */
-public class Messages {
-    /**
-     * Groups used to categorize messages, so that messages in each group
-     * can be enabled or disabled via options.
-     */
-    public enum Group {
-        ACCESSIBILITY,
-        HTML,
-        MISSING,
-        SYNTAX,
-        REFERENCE;
-
-        String optName() { return name().toLowerCase(); }
-        String notOptName() { return "-" + optName(); }
-
-        static boolean accepts(String opt) {
-            for (Group g: values())
-                if (opt.equals(g.optName())) return true;
-            return false;
-        }
-    };
-
-    private final Options options;
-    private final Stats stats;
-
-    ResourceBundle bundle;
-    Env env;
-
-    Messages(Env env) {
-        this.env = env;
-        String name = getClass().getPackage().getName() + ".resources.doclint";
-        bundle = ResourceBundle.getBundle(name, Locale.ENGLISH);
-
-        stats = new Stats(bundle);
-        options = new Options(stats);
-    }
-
-    void error(Group group, DocTree tree, String code, Object... args) {
-        report(group, Diagnostic.Kind.ERROR, tree, code, args);
-    }
-
-    void warning(Group group, DocTree tree, String code, Object... args) {
-        report(group, Diagnostic.Kind.WARNING, tree, code, args);
-    }
-
-    void setOptions(String opts) {
-        options.setOptions(opts);
-    }
-
-    void setStatsEnabled(boolean b) {
-        stats.setEnabled(b);
-    }
-
-    void reportStats(PrintWriter out) {
-        stats.report(out);
-    }
-
-    protected void report(Group group, Diagnostic.Kind dkind, DocTree tree, String code, Object... args) {
-        if (options.isEnabled(group, env.currAccess)) {
-            String msg = (code == null) ? (String) args[0] : localize(code, args);
-            env.trees.printMessage(dkind, msg, tree,
-                    env.currDocComment, env.currPath.getCompilationUnit());
-
-            stats.record(group, dkind, code);
-        }
-    }
-
-    protected void report(Group group, Diagnostic.Kind dkind, Tree tree, String code, Object... args) {
-        if (options.isEnabled(group, env.currAccess)) {
-            String msg = localize(code, args);
-            env.trees.printMessage(dkind, msg, tree, env.currPath.getCompilationUnit());
-
-            stats.record(group, dkind, code);
-        }
-    }
-
-    String localize(String code, Object... args) {
-        String msg = bundle.getString(code);
-        if (msg == null) {
-            StringBuilder sb = new StringBuilder();
-            sb.append("message file broken: code=").append(code);
-            if (args.length > 0) {
-                sb.append(" arguments={0}");
-                for (int i = 1; i < args.length; i++) {
-                    sb.append(", {").append(i).append("}");
-                }
-            }
-            msg = sb.toString();
-        }
-        return MessageFormat.format(msg, args);
-    }
-
-    // <editor-fold defaultstate="collapsed" desc="Options">
-
-    /**
-     * Handler for (sub)options specific to message handling.
-     */
-    static class Options {
-        Map<String, Env.AccessKind> map = new HashMap<String, Env.AccessKind>();
-        private final Stats stats;
-
-        static boolean isValidOptions(String opts) {
-            for (String opt: opts.split(",")) {
-                if (!isValidOption(opt.trim().toLowerCase()))
-                    return false;
-            }
-            return true;
-        }
-
-        private static boolean isValidOption(String opt) {
-            if (opt.equals("none") || opt.equals(Stats.OPT))
-                return true;
-
-            int begin = opt.startsWith("-") ? 1 : 0;
-            int sep = opt.indexOf("/");
-            String grp = opt.substring(begin, (sep != -1) ? sep : opt.length());
-            return ((begin == 0 && grp.equals("all")) || Group.accepts(grp))
-                    && ((sep == -1) || AccessKind.accepts(opt.substring(sep + 1)));
-        }
-
-        Options(Stats stats) {
-            this.stats = stats;
-        }
-
-        /** Determine if a message group is enabled for a particular access level. */
-        boolean isEnabled(Group g, Env.AccessKind access) {
-            if (map.isEmpty())
-                map.put("all", Env.AccessKind.PROTECTED);
-
-            Env.AccessKind ak = map.get(g.optName());
-            if (ak != null && access.compareTo(ak) >= 0)
-                return true;
-
-            ak = map.get(ALL);
-            if (ak != null && access.compareTo(ak) >= 0) {
-                ak = map.get(g.notOptName());
-                if (ak == null || access.compareTo(ak) > 0) // note >, not >=
-                    return true;
-            }
-
-            return false;
-        }
-
-        void setOptions(String opts) {
-            if (opts == null)
-                setOption(ALL, Env.AccessKind.PRIVATE);
-            else {
-                for (String opt: opts.split(","))
-                    setOption(opt.trim().toLowerCase());
-            }
-        }
-
-        private void setOption(String arg) throws IllegalArgumentException {
-            if (arg.equals(Stats.OPT)) {
-                stats.setEnabled(true);
-                return;
-            }
-
-            int sep = arg.indexOf("/");
-            if (sep > 0) {
-                Env.AccessKind ak = Env.AccessKind.valueOf(arg.substring(sep + 1).toUpperCase());
-                setOption(arg.substring(0, sep), ak);
-            } else {
-                setOption(arg, null);
-            }
-        }
-
-        private void setOption(String opt, Env.AccessKind ak) {
-            map.put(opt, (ak != null) ? ak
-                    : opt.startsWith("-") ? Env.AccessKind.PUBLIC : Env.AccessKind.PRIVATE);
-        }
-
-        private static final String ALL = "all";
-    }
-
-    // </editor-fold>
-
-    // <editor-fold defaultstate="collapsed" desc="Statistics">
-
-    /**
-     * Optionally record statistics of different kinds of message.
-     */
-    static class Stats {
-        public static final String OPT = "stats";
-        public static final String NO_CODE = "";
-        final ResourceBundle bundle;
-
-        // tables only initialized if enabled
-        int[] groupCounts;
-        int[] dkindCounts;
-        Map<String, Integer> codeCounts;
-
-        Stats(ResourceBundle bundle) {
-            this.bundle = bundle;
-        }
-
-        void setEnabled(boolean b) {
-            if (b) {
-                groupCounts = new int[Messages.Group.values().length];
-                dkindCounts = new int[Diagnostic.Kind.values().length];
-                codeCounts = new HashMap<String, Integer>();
-            } else {
-                groupCounts = null;
-                dkindCounts = null;
-                codeCounts = null;
-            }
-        }
-
-        void record(Messages.Group g, Diagnostic.Kind dkind, String code) {
-            if (codeCounts == null) {
-                return;
-            }
-            groupCounts[g.ordinal()]++;
-            dkindCounts[dkind.ordinal()]++;
-            if (code == null) {
-                code = NO_CODE;
-            }
-            Integer i = codeCounts.get(code);
-            codeCounts.put(code, (i == null) ? 1 : i + 1);
-        }
-
-        void report(PrintWriter out) {
-            if (codeCounts == null) {
-                return;
-            }
-            out.println("By group...");
-            Table groupTable = new Table();
-            for (Messages.Group g : Messages.Group.values()) {
-                groupTable.put(g.optName(), groupCounts[g.ordinal()]);
-            }
-            groupTable.print(out);
-            out.println();
-            out.println("By diagnostic kind...");
-            Table dkindTable = new Table();
-            for (Diagnostic.Kind k : Diagnostic.Kind.values()) {
-                dkindTable.put(k.toString().toLowerCase(), dkindCounts[k.ordinal()]);
-            }
-            dkindTable.print(out);
-            out.println();
-            out.println("By message kind...");
-            Table codeTable = new Table();
-            for (Map.Entry<String, Integer> e : codeCounts.entrySet()) {
-                String code = e.getKey();
-                String msg;
-                try {
-                    msg = code.equals(NO_CODE) ? "OTHER" : bundle.getString(code);
-                } catch (MissingResourceException ex) {
-                    msg = code;
-                }
-                codeTable.put(msg, e.getValue());
-            }
-            codeTable.print(out);
-        }
-
-        /**
-         * A table of (int, String) sorted by decreasing int.
-         */
-        private static class Table {
-
-            private static final Comparator<Integer> DECREASING = new Comparator<Integer>() {
-
-                public int compare(Integer o1, Integer o2) {
-                    return o2.compareTo(o1);
-                }
-            };
-            private final TreeMap<Integer, Set<String>> map = new TreeMap<Integer, Set<String>>(DECREASING);
-
-            void put(String label, int n) {
-                if (n == 0) {
-                    return;
-                }
-                Set<String> labels = map.get(n);
-                if (labels == null) {
-                    map.put(n, labels = new TreeSet<String>());
-                }
-                labels.add(label);
-            }
-
-            void print(PrintWriter out) {
-                for (Map.Entry<Integer, Set<String>> e : map.entrySet()) {
-                    int count = e.getKey();
-                    Set<String> labels = e.getValue();
-                    for (String label : labels) {
-                        out.println(String.format("%6d: %s", count, label));
-                    }
-                }
-            }
-        }
-    }
-    // </editor-fold>
-}
--- a/src/share/classes/com/sun/tools/doclint/resources/doclint.properties	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,65 +0,0 @@
-#
-# Copyright (c) 2012, 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.
-#
-
-dc.anchor.already.defined = anchor already defined: {0}
-dc.attr.lacks.value = attribute lacks value
-dc.attr.obsolete = attribute obsolete: {0}
-dc.attr.obsolete.use.css = attribute obsolete, use CSS instead: {0}
-dc.attr.repeated = repeated attribute: {0}
-dc.attr.unknown = unknown attribute: {0}
-dc.bad.option = bad option: {0}
-dc.bad.value.for.option = bad value for option: {0} {1}
-dc.empty = no description for @{0}
-dc.entity.invalid = invalid entity &{0};
-dc.exception.not.thrown = exception not thrown: {0}
-dc.invalid.anchor = invalid name for anchor: "{0}"
-dc.invalid.param = invalid use of @param
-dc.invalid.return = invalid use of @return
-dc.invalid.throws = invalid use of @throws
-dc.invalid.uri = invalid uri: "{0}"
-dc.missing.comment = no comment
-dc.missing.param = no @param for {0}
-dc.missing.return = no @return
-dc.missing.throws = no @throws for {0}
-dc.no.alt.attr.for.image = no "alt" attribute for image
-dc.no.summary.or.caption.for.table=no summary or caption for table
-dc.param.name.not.found = @param name not found
-dc.ref.not.found = reference not found
-dc.tag.empty = empty <{0}> tag
-dc.tag.end.not.permitted = invalid end tag: </{0}>
-dc.tag.end.unexpected = unexpected end tag: </{0}>
-dc.tag.header.sequence.1 = header used out of sequence: <{0}>
-dc.tag.header.sequence.2 = header used out of sequence: <{0}>
-dc.tag.nested.not.allowed=nested tag not allowed: <{0}>
-dc.tag.not.allowed = element not allowed in documentation comments: <{0}>
-dc.tag.not.allowed.inline.element = block element not allowed within inline element <{1}>: {0}
-dc.tag.not.allowed.inline.tag = block element not allowed within @{1}: {0}
-dc.tag.not.allowed.inline.other = block element not allowed here: {0}
-dc.tag.not.closed= element not closed: {0}
-dc.tag.p.in.pre= unexpected use of <p> inside <pre> element
-dc.tag.self.closing = self-closing element not allowed
-dc.tag.start.unmatched = end tag missing: </{0}>
-dc.tag.unknown = unknown tag: {0}
-dc.text.not.allowed = text not allowed in <{0}> element
--- a/src/share/classes/com/sun/tools/javac/Server.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javac/Server.java	Wed Jan 09 18:58:20 2013 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 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
@@ -49,7 +49,7 @@
     private final OutputStream out;
     private final boolean isSocket;
     private static final JavaCompiler tool = ToolProvider.getSystemJavaCompiler();
-    private static final Logger logger = Logger.getLogger("com.sun.tools.javac");
+    private static Logger logger = Logger.getLogger("com.sun.tools.javac");
     static class CwdFileManager extends ForwardingJavaFileManager<JavaFileManager> {
         String cwd;
         CwdFileManager(JavaFileManager fileManager) {
@@ -69,7 +69,7 @@
 //      }
     }
     // static CwdFileManager fm = new CwdFileManager(tool.getStandardFileManager());
-    static final StandardJavaFileManager fm = tool.getStandardFileManager(null, null, null);
+    static StandardJavaFileManager fm = tool.getStandardFileManager(null, null, null);
     static {
         // Use the same file manager for all compilations.  This will
         // cache jar files in the standard file manager.  Use
--- a/src/share/classes/com/sun/tools/javac/api/BasicJavacTask.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javac/api/BasicJavacTask.java	Wed Jan 09 18:58:20 2013 +0100
@@ -57,13 +57,6 @@
     protected Context context;
     private TaskListener taskListener;
 
-    public static JavacTask instance(Context context) {
-        JavacTask instance = context.get(JavacTask.class);
-        if (instance == null)
-            instance = new BasicJavacTask(context, true);
-        return instance;
-    }
-
     public BasicJavacTask(Context c, boolean register) {
         context = c;
         if (register)
--- a/src/share/classes/com/sun/tools/javac/api/JavacTaskImpl.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javac/api/JavacTaskImpl.java	Wed Jan 09 18:58:20 2013 +0100
@@ -65,6 +65,7 @@
  * @author Jonathan Gibbons
  */
 public class JavacTaskImpl extends BasicJavacTask {
+    private ClientCodeWrapper ccw;
     private Main compilerMain;
     private JavaCompiler compiler;
     private Locale locale;
@@ -84,6 +85,7 @@
                 Context context,
                 List<JavaFileObject> fileObjects) {
         super(null, false);
+        this.ccw = ClientCodeWrapper.instance(context);
         this.compilerMain = compilerMain;
         this.args = args;
         this.classNames = classNames;
--- a/src/share/classes/com/sun/tools/javac/api/JavacTool.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javac/api/JavacTool.java	Wed Jan 09 18:58:20 2013 +0100
@@ -159,7 +159,7 @@
         }
     }
 
-    public static void processOptions(Context context,
+    private static void processOptions(Context context,
                                        JavaFileManager fileManager,
                                        Iterable<String> options)
     {
--- a/src/share/classes/com/sun/tools/javac/api/JavacTrees.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javac/api/JavacTrees.java	Wed Jan 09 18:58:20 2013 +0100
@@ -84,7 +84,6 @@
 import com.sun.tools.javac.tree.TreeCopier;
 import com.sun.tools.javac.tree.TreeInfo;
 import com.sun.tools.javac.tree.TreeMaker;
-import com.sun.tools.javac.util.Abort;
 import com.sun.tools.javac.util.Assert;
 import com.sun.tools.javac.util.Context;
 import com.sun.tools.javac.util.JCDiagnostic;
@@ -237,26 +236,19 @@
     public Element getElement(TreePath path) {
         JCTree tree = (JCTree) path.getLeaf();
         Symbol sym = TreeInfo.symbolFor(tree);
-        if (sym == null) {
-            if (TreeInfo.isDeclaration(tree)) {
-                for (TreePath p = path; p != null; p = p.getParentPath()) {
-                    JCTree t = (JCTree) p.getLeaf();
-                    if (t.hasTag(JCTree.Tag.CLASSDEF)) {
-                        JCClassDecl ct = (JCClassDecl) t;
-                        if (ct.sym != null) {
-                            if ((ct.sym.flags_field & Flags.UNATTRIBUTED) != 0) {
-                                attr.attribClass(ct.pos(), ct.sym);
-                                sym = TreeInfo.symbolFor(tree);
-                            }
-                            break;
+        if (sym == null && TreeInfo.isDeclaration(tree)) {
+            for (TreePath p = path; p != null; p = p.getParentPath()) {
+                JCTree t = (JCTree) p.getLeaf();
+                if (t.hasTag(JCTree.Tag.CLASSDEF)) {
+                    JCClassDecl ct = (JCClassDecl) t;
+                    if (ct.sym != null) {
+                        if ((ct.sym.flags_field & Flags.UNATTRIBUTED) != 0) {
+                            attr.attribClass(ct.pos(), ct.sym);
+                            sym = TreeInfo.symbolFor(tree);
                         }
+                        break;
                     }
                 }
-            } else if (tree.hasTag(Tag.TOPLEVEL)) {
-                JCCompilationUnit cu = (JCCompilationUnit) tree;
-                if (cu.sourcefile.isNameCompatible("package-info", JavaFileObject.Kind.SOURCE)) {
-                    sym = cu.packge;
-                }
             }
         }
         return sym;
@@ -340,8 +332,6 @@
             } else {
                 return msym;
             }
-        } catch (Abort e) { // may be thrown by Check.completionError in case of bad class file
-            return null;
         } finally {
             log.popDiagnosticHandler(deferredDiagnosticHandler);
         }
--- a/src/share/classes/com/sun/tools/javac/code/Annotations.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javac/code/Annotations.java	Wed Jan 09 18:58:20 2013 +0100
@@ -74,12 +74,12 @@
      */
     private List<Attribute.Compound> attributes = NOT_STARTED;
     /*
-     * The Symbol this Annotations belong to
+     * The Symbol this Annotatios belong to
      */
-    private final Symbol sym;
+    private final Symbol s;
 
-    public Annotations(Symbol sym) {
-        this.sym = sym;
+    public Annotations(Symbol s) {
+        this.s = s;
     }
 
     public List<Attribute.Compound> getAttributes() {
@@ -102,7 +102,7 @@
     }
 
     public void setAttributesWithCompletion(final Annotate.AnnotateRepeatedContext ctx) {
-        Assert.check(pendingCompletion() || (!isStarted() && sym.kind == PCK));
+        Assert.check(pendingCompletion() || (!isStarted() && s.kind == PCK));
 
         Map<Symbol.TypeSymbol, ListBuffer<Attribute.Compound>> annotated = ctx.annotated;
         boolean atLeastOneRepeated = false;
@@ -111,7 +111,7 @@
             if (lb.size() == 1) {
                 buf = buf.prepend(lb.first());
             } else { // repeated
-                buf = buf.prepend(new Placeholder(lb.toList(), sym));
+                buf = buf.prepend(new Placeholder(lb.toList(), s));
                 atLeastOneRepeated = true;
             }
         }
@@ -141,7 +141,7 @@
 
                 @Override
                 public String toString() {
-                    return "repeated annotation pass of: " + sym + " in: " + sym.owner;
+                    return "repeated annotation pass of: " + s + " in: " + s.owner;
                 }
 
                 @Override
@@ -253,7 +253,7 @@
 
         // Process repeated annotations
         Attribute.Compound validRepeated =
-            ctx.processRepeatedAnnotations(placeholder.getPlaceholderFor(), sym);
+                ctx.processRepeatedAnnotations(placeholder.getPlaceholderFor());
 
         if (validRepeated != null) {
             // Check that the container isn't manually
--- a/src/share/classes/com/sun/tools/javac/code/Attribute.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javac/code/Attribute.java	Wed Jan 09 18:58:20 2013 +0100
@@ -60,9 +60,6 @@
         throw new UnsupportedOperationException();
     }
 
-    public boolean isSynthesized() {
-        return false;
-    }
 
     /** The value for an annotation element of primitive type or String. */
     public static class Constant extends Attribute {
@@ -139,18 +136,6 @@
          *  access this attribute.
          */
         public final List<Pair<MethodSymbol,Attribute>> values;
-
-        private boolean synthesized = false;
-
-        @Override
-        public boolean isSynthesized() {
-            return synthesized;
-        }
-
-        public void setSynthesized(boolean synthesized) {
-            this.synthesized = synthesized;
-        }
-
         public Compound(Type type,
                         List<Pair<MethodSymbol,Attribute>> values) {
             super(type);
--- a/src/share/classes/com/sun/tools/javac/code/Flags.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javac/code/Flags.java	Wed Jan 09 18:58:20 2013 +0100
@@ -317,7 +317,7 @@
     }
 
     // Cache of modifier sets.
-    private static final Map<Long, Set<Modifier>> modifierSets =
+    private static Map<Long, Set<Modifier>> modifierSets =
         new java.util.concurrent.ConcurrentHashMap<Long, Set<Modifier>>(64);
 
     public static boolean isStatic(Symbol symbol) {
@@ -366,7 +366,7 @@
         VARARGS("varargs"),
         PACKAGE("package");
 
-        private final String name;
+        String name;
 
         Flag(String name) {
             this.name = name;
--- a/src/share/classes/com/sun/tools/javac/code/Kinds.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javac/code/Kinds.java	Wed Jan 09 18:58:20 2013 +0100
@@ -110,7 +110,7 @@
         INSTANCE_INIT("kindname.instance.init"),
         PACKAGE("kindname.package");
 
-        private final String name;
+        private String name;
 
         KindName(String name) {
             this.name = name;
--- a/src/share/classes/com/sun/tools/javac/code/Lint.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javac/code/Lint.java	Wed Jan 09 18:58:20 2013 +0100
@@ -28,14 +28,11 @@
 import java.util.EnumSet;
 import java.util.HashMap;
 import java.util.Map;
-import java.util.Set;
-import javax.lang.model.element.Modifier;
 import com.sun.tools.javac.code.Symbol.*;
 import com.sun.tools.javac.util.Context;
 import com.sun.tools.javac.util.List;
 import com.sun.tools.javac.util.Options;
 import com.sun.tools.javac.util.Pair;
-
 import static com.sun.tools.javac.code.Flags.*;
 
 
@@ -98,8 +95,7 @@
     private final EnumSet<LintCategory> values;
     private final EnumSet<LintCategory> suppressedValues;
 
-    private static final Map<String, LintCategory> map =
-            new java.util.concurrent.ConcurrentHashMap<String, LintCategory>(20);
+    private static Map<String, LintCategory> map = new HashMap<String,LintCategory>();
 
 
     protected Lint(Context context) {
--- a/src/share/classes/com/sun/tools/javac/code/Source.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javac/code/Source.java	Wed Jan 09 18:58:20 2013 +0100
@@ -87,7 +87,7 @@
 
     public final String name;
 
-    private static final Map<String,Source> tab = new HashMap<String,Source>();
+    private static Map<String,Source> tab = new HashMap<String,Source>();
     static {
         for (Source s : values()) {
             tab.put(s.name, s);
--- a/src/share/classes/com/sun/tools/javac/code/Symbol.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javac/code/Symbol.java	Wed Jan 09 18:58:20 2013 +0100
@@ -83,13 +83,13 @@
      *  Attributes of class symbols should be accessed through the accessor
      *  method to make sure that the class symbol is loaded.
      */
-    public List<Attribute.Compound> getRawAttributes() {
-        return annotations.getAttributes();
+    public List<Attribute.Compound> getAnnotationMirrors() {
+        return Assert.checkNonNull(annotations.getAttributes());
     }
 
     /** Fetch a particular annotation from a symbol. */
     public Attribute.Compound attribute(Symbol anno) {
-        for (Attribute.Compound a : getRawAttributes()) {
+        for (Attribute.Compound a : getAnnotationMirrors()) {
             if (a.type.tsym == anno) return a;
         }
         return null;
@@ -447,14 +447,6 @@
     }
 
     /**
-     * This is the implementation for {@code
-     * javax.lang.model.element.Element.getAnnotationMirrors()}.
-     */
-    public final List<Attribute.Compound> getAnnotationMirrors() {
-        return getRawAttributes();
-    }
-
-    /**
      * @deprecated this method should never be used by javac internally.
      */
     @Deprecated
@@ -670,21 +662,15 @@
             return flags_field;
         }
 
-        @Override
-        public List<Attribute.Compound> getRawAttributes() {
+        public List<Attribute.Compound> getAnnotationMirrors() {
             if (completer != null) complete();
             if (package_info != null && package_info.completer != null) {
                 package_info.complete();
-                mergeAttributes();
+                if (annotations.isEmpty()) {
+                    annotations.setAttributes(package_info.annotations);
             }
-            return super.getRawAttributes();
-        }
-
-        private void mergeAttributes() {
-            if (annotations.isEmpty() &&
-                !package_info.annotations.isEmpty()) {
-                annotations.setAttributes(package_info.annotations);
             }
+            return Assert.checkNonNull(annotations.getAttributes());
         }
 
         /** A package "exists" if a type or package that exists has
@@ -784,10 +770,9 @@
             return members_field;
         }
 
-        @Override
-        public List<Attribute.Compound> getRawAttributes() {
+        public List<Attribute.Compound> getAnnotationMirrors() {
             if (completer != null) complete();
-            return super.getRawAttributes();
+            return Assert.checkNonNull(annotations.getAttributes());
         }
 
         public Type erasure(Types types) {
@@ -1381,7 +1366,7 @@
             return defaultValue;
         }
 
-         public List<VarSymbol> getParameters() {
+        public List<VarSymbol> getParameters() {
             return params();
         }
 
@@ -1389,10 +1374,6 @@
             return (flags() & VARARGS) != 0;
         }
 
-        public boolean isDefault() {
-            return (flags() & DEFAULT) != 0;
-        }
-
         public <R, P> R accept(ElementVisitor<R, P> v, P p) {
             return v.visitExecutable(this, p);
         }
--- a/src/share/classes/com/sun/tools/javac/code/TargetType.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javac/code/TargetType.java	Wed Jan 09 18:58:20 2013 +0100
@@ -166,7 +166,7 @@
     static final int MAXIMUM_TARGET_TYPE_VALUE = 0x22;
 
     private final int targetTypeValue;
-    private final Set<TargetAttribute> flags;
+    private Set<TargetAttribute> flags;
 
     TargetType(int targetTypeValue, TargetAttribute... attributes) {
         if (targetTypeValue < Byte.MIN_VALUE
@@ -233,10 +233,10 @@
         return this.targetTypeValue;
     }
 
-    private static final TargetType[] targets;
+    private static TargetType[] targets = null;
 
-    static {
-        targets = new TargetType[MAXIMUM_TARGET_TYPE_VALUE + 1];
+    private static TargetType[] buildTargets() {
+        TargetType[] targets = new TargetType[MAXIMUM_TARGET_TYPE_VALUE + 1];
         TargetType[] alltargets = values();
         for (TargetType target : alltargets) {
             if (target.targetTypeValue >= 0)
@@ -246,9 +246,13 @@
             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;
 
@@ -256,6 +260,9 @@
     }
 
     public static TargetType fromTargetTypeValue(int tag) {
+        if (targets == null)
+            targets = buildTargets();
+
         if (((byte)tag) == ((byte)UNKNOWN.targetTypeValue))
             return UNKNOWN;
 
--- a/src/share/classes/com/sun/tools/javac/code/Type.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javac/code/Type.java	Wed Jan 09 18:58:20 2013 +0100
@@ -302,12 +302,10 @@
      * never complete classes. Where isSameType would complete a
      * class, equals assumes that the two types are different.
      */
-    @Override
     public boolean equals(Object t) {
         return super.equals(t);
     }
 
-    @Override
     public int hashCode() {
         return super.hashCode();
     }
@@ -998,6 +996,34 @@
             return "(" + argtypes + ")" + restype;
         }
 
+        public boolean equals(Object obj) {
+            if (this == obj)
+                return true;
+            if (!(obj instanceof MethodType))
+                return false;
+            MethodType m = (MethodType)obj;
+            List<Type> args1 = argtypes;
+            List<Type> args2 = m.argtypes;
+            while (!args1.isEmpty() && !args2.isEmpty()) {
+                if (!args1.head.equals(args2.head))
+                    return false;
+                args1 = args1.tail;
+                args2 = args2.tail;
+            }
+            if (!args1.isEmpty() || !args2.isEmpty())
+                return false;
+            return restype.equals(m.restype);
+        }
+
+        public int hashCode() {
+            int h = METHOD.ordinal();
+            for (List<Type> thisargs = this.argtypes;
+                 thisargs.tail != null; /*inlined: thisargs.nonEmpty()*/
+                 thisargs = thisargs.tail)
+                h = (h << 5) + thisargs.head.hashCode();
+            return (h << 5) + this.restype.hashCode();
+        }
+
         public List<Type>        getParameterTypes() { return argtypes; }
         public Type              getReturnType()     { return restype; }
         public List<Type>        getThrownTypes()    { return thrown; }
--- a/src/share/classes/com/sun/tools/javac/code/TypeTag.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javac/code/TypeTag.java	Wed Jan 09 18:58:20 2013 +0100
@@ -135,11 +135,9 @@
     /** This field will only be used for tags related with numeric types for
      *  optimization reasons.
      */
-    private final int order;
+    private int order = 0;
 
-    private TypeTag() {
-        this(0);
-    }
+    private TypeTag() {}
 
     private TypeTag(int order) {
         this.order = order;
--- a/src/share/classes/com/sun/tools/javac/code/Types.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javac/code/Types.java	Wed Jan 09 18:58:20 2013 +0100
@@ -1037,11 +1037,11 @@
                     if (!visit(supertype(t), supertype(s)))
                         return false;
 
-                    HashSet<UniqueType> set = new HashSet<UniqueType>();
+                    HashSet<SingletonType> set = new HashSet<SingletonType>();
                     for (Type x : interfaces(t))
-                        set.add(new UniqueType(x, Types.this));
+                        set.add(new SingletonType(x));
                     for (Type x : interfaces(s)) {
-                        if (!set.remove(new UniqueType(x, Types.this)))
+                        if (!set.remove(new SingletonType(x)))
                             return false;
                     }
                     return (set.isEmpty());
@@ -2879,7 +2879,7 @@
         }
         return tvars1;
     }
-    private static final Mapping newInstanceFun = new Mapping("newInstanceFun") {
+    static private Mapping newInstanceFun = new Mapping("newInstanceFun") {
             public Type apply(Type t) { return new TypeVar(t.tsym, t.getUpperBound(), t.getLowerBound()); }
         };
     // </editor-fold>
@@ -3167,7 +3167,7 @@
             }
             @Override
             public int hashCode() {
-                return 127 * Types.this.hashCode(t1) + Types.this.hashCode(t2);
+                return 127 * Types.hashCode(t1) + Types.hashCode(t2);
             }
             @Override
             public boolean equals(Object obj) {
@@ -3430,7 +3430,7 @@
     /**
      * Compute a hash code on a type.
      */
-    public int hashCode(Type t) {
+    public static int hashCode(Type t) {
         return hashCode.visit(t);
     }
     // where
@@ -3453,16 +3453,6 @@
             }
 
             @Override
-            public Integer visitMethodType(MethodType t, Void ignored) {
-                int h = METHOD.ordinal();
-                for (List<Type> thisargs = t.argtypes;
-                     thisargs.tail != null;
-                     thisargs = thisargs.tail)
-                    h = (h << 5) + visit(thisargs.head);
-                return (h << 5) + visit(t.restype);
-            }
-
-            @Override
             public Integer visitWildcardType(WildcardType t, Void ignored) {
                 int result = t.kind.hashCode();
                 if (t.type != null) {
@@ -4122,28 +4112,21 @@
     /**
      * A wrapper for a type that allows use in sets.
      */
-    public static class UniqueType {
-        public final Type type;
-        final Types types;
-
-        public UniqueType(Type type, Types types) {
-            this.type = type;
-            this.types = types;
+    class SingletonType {
+        final Type t;
+        SingletonType(Type t) {
+            this.t = t;
         }
-
         public int hashCode() {
-            return types.hashCode(type);
+            return Types.hashCode(t);
         }
-
         public boolean equals(Object obj) {
-            return (obj instanceof UniqueType) &&
-                types.isSameType(type, ((UniqueType)obj).type);
+            return (obj instanceof SingletonType) &&
+                isSameType(t, ((SingletonType)obj).t);
         }
-
         public String toString() {
-            return type.toString();
+            return t.toString();
         }
-
     }
     // </editor-fold>
 
--- a/src/share/classes/com/sun/tools/javac/comp/Annotate.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javac/comp/Annotate.java	Wed Jan 09 18:58:20 2013 +0100
@@ -26,6 +26,7 @@
 package com.sun.tools.javac.comp;
 
 import java.util.Map;
+
 import com.sun.tools.javac.util.*;
 import com.sun.tools.javac.util.JCDiagnostic.DiagnosticPosition;
 import com.sun.tools.javac.code.*;
@@ -170,8 +171,8 @@
          * @param repeatingAnnotations a List of repeating annotations
          * @return a new Attribute.Compound that is the container for the repeatingAnnotations
          */
-        public Attribute.Compound processRepeatedAnnotations(List<Attribute.Compound> repeatingAnnotations, Symbol sym) {
-            return Annotate.this.processRepeatedAnnotations(repeatingAnnotations, this, sym);
+        public Attribute.Compound processRepeatedAnnotations(List<Attribute.Compound> repeatingAnnotations) {
+            return Annotate.this.processRepeatedAnnotations(repeatingAnnotations, this);
         }
 
         /**
@@ -338,11 +339,10 @@
      * annotation are invalid.  This method reports errors/warnings.
      */
     private Attribute.Compound processRepeatedAnnotations(List<Attribute.Compound> annotations,
-                                                          AnnotateRepeatedContext ctx,
-                                                          Symbol on) {
+            AnnotateRepeatedContext ctx) {
         Attribute.Compound firstOccurrence = annotations.head;
         List<Attribute> repeated = List.nil();
-        Type origAnnoType = null;
+        Type origAnnoType;
         Type arrayOfOrigAnnoType = null;
         Type targetContainerType = null;
         MethodSymbol containerValueSymbol = null;
@@ -390,17 +390,9 @@
                                                       new Attribute.Array(arrayOfOrigAnnoType, repeated));
             annoTree = m.Annotation(new Attribute.Compound(targetContainerType,
                     List.of(p)));
-
-            if (!chk.annotationApplicable(annoTree, on))
-                log.error(annoTree.pos(), "invalid.containedby.annotation.incompatible.target", targetContainerType, origAnnoType);
-
-            if (!chk.validateAnnotationDeferErrors(annoTree))
-                log.error(annoTree.pos(), "duplicate.annotation.invalid.repeated", origAnnoType);
-
             Attribute.Compound c = enterAnnotation(annoTree,
                                                    targetContainerType,
                                                    ctx.env);
-            c.setSynthesized(true);
             return c;
         } else {
             return null; // errors should have been reported elsewhere
@@ -418,7 +410,7 @@
         // annotation's declaration, or null if it has none
         Attribute.Compound ca = origAnnoDecl.attribute(syms.containedByType.tsym);
         if (ca == null) { // has no ContainedBy annotation
-            log.error(pos, "duplicate.annotation.missing.container", origAnnoType, syms.containedByType);
+            log.error(pos, "duplicate.annotation.missing.container", origAnnoType);
             return null;
         }
 
--- a/src/share/classes/com/sun/tools/javac/comp/Check.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javac/comp/Check.java	Wed Jan 09 18:58:20 2013 +0100
@@ -1854,15 +1854,13 @@
         for (Scope.Entry e1 = t1.tsym.members().elems; e1 != null; e1 = e1.sibling) {
             Symbol s1 = e1.sym;
             Type st1 = null;
-            if (s1.kind != MTH || !s1.isInheritedIn(site.tsym, types) ||
-                    (s1.flags() & SYNTHETIC) != 0) continue;
+            if (s1.kind != MTH || !s1.isInheritedIn(site.tsym, types)) continue;
             Symbol impl = ((MethodSymbol)s1).implementation(site.tsym, types, false);
             if (impl != null && (impl.flags() & ABSTRACT) == 0) continue;
             for (Scope.Entry e2 = t2.tsym.members().lookup(s1.name); e2.scope != null; e2 = e2.next()) {
                 Symbol s2 = e2.sym;
                 if (s1 == s2) continue;
-                if (s2.kind != MTH || !s2.isInheritedIn(site.tsym, types) ||
-                        (s2.flags() & SYNTHETIC) != 0) continue;
+                if (s2.kind != MTH || !s2.isInheritedIn(site.tsym, types)) continue;
                 if (st1 == null) st1 = types.memberType(t1, s1);
                 Type st2 = types.memberType(t2, s2);
                 if (types.overrideEquivalent(st1, st2)) {
@@ -2925,54 +2923,39 @@
     }
 
     /** Check an annotation value.
-     *
-     * @param a The annotation tree to check
-     * @return true if this annotation tree is valid, otherwise false
      */
-    public boolean validateAnnotationDeferErrors(JCAnnotation a) {
-        boolean res = false;
-        final Log.DiagnosticHandler diagHandler = new Log.DiscardDiagnosticHandler(log);
-        try {
-            res = validateAnnotation(a);
-        } finally {
-            log.popDiagnosticHandler(diagHandler);
-        }
-        return res;
-    }
-
-    private boolean validateAnnotation(JCAnnotation a) {
-        boolean isValid = true;
-        // collect an inventory of the annotation elements
-        Set<MethodSymbol> members = new LinkedHashSet<MethodSymbol>();
+    public void validateAnnotation(JCAnnotation a) {
+        // collect an inventory of the members (sorted alphabetically)
+        Set<MethodSymbol> members = new TreeSet<MethodSymbol>(new Comparator<Symbol>() {
+            public int compare(Symbol t, Symbol t1) {
+                return t.name.compareTo(t1.name);
+            }
+        });
         for (Scope.Entry e = a.annotationType.type.tsym.members().elems;
              e != null;
              e = e.sibling)
             if (e.sym.kind == MTH)
                 members.add((MethodSymbol) e.sym);
 
-        // remove the ones that are assigned values
+        // count them off as they're annotated
         for (JCTree arg : a.args) {
             if (!arg.hasTag(ASSIGN)) continue; // recovery
             JCAssign assign = (JCAssign) arg;
             Symbol m = TreeInfo.symbol(assign.lhs);
             if (m == null || m.type.isErroneous()) continue;
-            if (!members.remove(m)) {
-                isValid = false;
+            if (!members.remove(m))
                 log.error(assign.lhs.pos(), "duplicate.annotation.member.value",
                           m.name, a.type);
-            }
         }
 
         // all the remaining ones better have default values
-        List<Name> missingDefaults = List.nil();
+        ListBuffer<Name> missingDefaults = ListBuffer.lb();
         for (MethodSymbol m : members) {
             if (m.defaultValue == null && !m.type.isErroneous()) {
-                missingDefaults = missingDefaults.append(m.name);
+                missingDefaults.append(m.name);
             }
         }
-        missingDefaults = missingDefaults.reverse();
         if (missingDefaults.nonEmpty()) {
-            isValid = false;
             String key = (missingDefaults.size() > 1)
                     ? "annotation.missing.default.value.1"
                     : "annotation.missing.default.value";
@@ -2983,23 +2966,21 @@
         // repeated values in its value member
         if (a.annotationType.type.tsym != syms.annotationTargetType.tsym ||
             a.args.tail == null)
-            return isValid;
+            return;
 
-        if (!a.args.head.hasTag(ASSIGN)) return false; // error recovery
+        if (!a.args.head.hasTag(ASSIGN)) return; // error recovery
         JCAssign assign = (JCAssign) a.args.head;
         Symbol m = TreeInfo.symbol(assign.lhs);
-        if (m.name != names.value) return false;
+        if (m.name != names.value) return;
         JCTree rhs = assign.rhs;
-        if (!rhs.hasTag(NEWARRAY)) return false;
+        if (!rhs.hasTag(NEWARRAY)) return;
         JCNewArray na = (JCNewArray) rhs;
         Set<Symbol> targets = new HashSet<Symbol>();
         for (JCTree elem : na.elems) {
             if (!targets.add(TreeInfo.symbol(elem))) {
-                isValid = false;
                 log.error(elem.pos(), "repeated.annotation.target");
             }
         }
-        return isValid;
     }
 
     void checkDeprecatedAnnotation(DiagnosticPosition pos, Symbol s) {
--- a/src/share/classes/com/sun/tools/javac/comp/ConstFold.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javac/comp/ConstFold.java	Wed Jan 09 18:58:20 2013 +0100
@@ -62,9 +62,9 @@
         syms = Symtab.instance(context);
     }
 
-    static final Integer minusOne = -1;
-    static final Integer zero     = 0;
-    static final Integer one      = 1;
+    static Integer minusOne = -1;
+    static Integer zero     = 0;
+    static Integer one      = 1;
 
    /** Convert boolean to integer (true = 1, false = 0).
     */
--- a/src/share/classes/com/sun/tools/javac/comp/Flow.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javac/comp/Flow.java	Wed Jan 09 18:58:20 2013 +0100
@@ -246,8 +246,8 @@
          */
         SPECULATIVE_LOOP("var.might.be.assigned.in.loop", true);
 
-        final String errKey;
-        final boolean isFinal;
+        String errKey;
+        boolean isFinal;
 
         FlowKind(String errKey, boolean isFinal) {
             this.errKey = errKey;
@@ -295,7 +295,7 @@
                 }
             };
 
-            final JCTree.Tag treeTag;
+            JCTree.Tag treeTag;
 
             private JumpKind(Tag treeTag) {
                 this.treeTag = treeTag;
--- a/src/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java	Wed Jan 09 18:58:20 2013 +0100
@@ -864,8 +864,8 @@
         Type mtype = types.erasure(tree.descriptorType);
         MethodSymbol samSym = (MethodSymbol) types.findDescriptorSymbol(tree.type.tsym);
         List<Object> staticArgs = List.<Object>of(
-                new Pool.MethodHandle(ClassFile.REF_invokeInterface, types.findDescriptorSymbol(tree.type.tsym), types),
-                new Pool.MethodHandle(refKind, refSym, types),
+                new Pool.MethodHandle(ClassFile.REF_invokeInterface, types.findDescriptorSymbol(tree.type.tsym)),
+                new Pool.MethodHandle(refKind, refSym),
                 new MethodType(mtype.getParameterTypes(),
                         mtype.getReturnType(),
                         mtype.getThrownTypes(),
--- a/src/share/classes/com/sun/tools/javac/comp/Resolve.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javac/comp/Resolve.java	Wed Jan 09 18:58:20 2013 +0100
@@ -158,7 +158,7 @@
         OBJECT_INIT("object-init"),
         INTERNAL("internal");
 
-        final String opt;
+        String opt;
 
         private VerboseResolutionMode(String opt) {
             this.opt = opt;
@@ -651,8 +651,8 @@
          */
         INACCESSIBLE_VARARGS("inaccessible.varargs.type", "inaccessible.varargs.type");
         
-        final String basicKey;
-        final String inferKey;
+        String basicKey;
+        String inferKey;
 
         MethodCheckDiag(String basicKey, String inferKey) {
             this.basicKey = basicKey;
@@ -3513,8 +3513,8 @@
             }
         };
 
-        final boolean isBoxingRequired;
-        final boolean isVarargsRequired;
+        boolean isBoxingRequired;
+        boolean isVarargsRequired;
 
         MethodResolutionPhase(boolean isBoxingRequired, boolean isVarargsRequired) {
            this.isBoxingRequired = isBoxingRequired;
--- a/src/share/classes/com/sun/tools/javac/file/ZipFileIndex.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javac/file/ZipFileIndex.java	Wed Jan 09 18:58:20 2013 +0100
@@ -83,7 +83,7 @@
     public final static long NOT_MODIFIED = Long.MIN_VALUE;
 
 
-    private static final boolean NON_BATCH_MODE = System.getProperty("nonBatchMode") != null;// TODO: Use -XD compiler switch for this.
+    private static boolean NON_BATCH_MODE = System.getProperty("nonBatchMode") != null;// TODO: Use -XD compiler switch for this.
 
     private Map<RelativeDirectory, DirectoryEntry> directories =
             Collections.<RelativeDirectory, DirectoryEntry>emptyMap();
@@ -548,15 +548,17 @@
                 }
 
                 if (i >= 0) {
-                    zipDir = new byte[get4ByteLittleEndian(endbuf, i + 12)];
+                    zipDir = new byte[get4ByteLittleEndian(endbuf, i + 12) + 2];
+                    zipDir[0] = endbuf[i + 10];
+                    zipDir[1] = endbuf[i + 11];
                     int sz = get4ByteLittleEndian(endbuf, i + 16);
                     // a negative offset or the entries field indicates a
                     // potential zip64 archive
-                    if (sz < 0 || get2ByteLittleEndian(endbuf, i + 10) == 0xffff) {
+                    if (sz < 0 || get2ByteLittleEndian(zipDir, 0) == 0xffff) {
                         throw new ZipFormatException("detected a zip64 archive");
                     }
                     zipRandomFile.seek(start + sz);
-                    zipRandomFile.readFully(zipDir, 0, zipDir.length);
+                    zipRandomFile.readFully(zipDir, 2, zipDir.length - 2);
                     return;
                 } else {
                     endbufend = endbufpos + 21;
@@ -566,13 +568,14 @@
         }
 
         private void buildIndex() throws IOException {
-            int len = zipDir.length;
+            int entryCount = get2ByteLittleEndian(zipDir, 0);
 
             // Add each of the files
-            if (len > 0) {
+            if (entryCount > 0) {
                 directories = new LinkedHashMap<RelativeDirectory, DirectoryEntry>();
                 ArrayList<Entry> entryList = new ArrayList<Entry>();
-                for (int pos = 0; pos < len; ) {
+                int pos = 2;
+                for (int i = 0; i < entryCount; i++) {
                     pos = readEntry(pos, entryList, directories);
                 }
 
--- a/src/share/classes/com/sun/tools/javac/jvm/ClassFile.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javac/jvm/ClassFile.java	Wed Jan 09 18:58:20 2013 +0100
@@ -26,8 +26,6 @@
 package com.sun.tools.javac.jvm;
 
 import com.sun.tools.javac.code.Type;
-import com.sun.tools.javac.code.Types;
-import com.sun.tools.javac.code.Types.UniqueType;
 import com.sun.tools.javac.util.Name;
 
 
@@ -168,29 +166,22 @@
      */
     public static class NameAndType {
         Name name;
-        UniqueType uniqueType;
-        Types types;
+        Type type;
 
-        NameAndType(Name name, Type type, Types types) {
+        NameAndType(Name name, Type type) {
             this.name = name;
-            this.uniqueType = new UniqueType(type, types);
-            this.types = types;
+            this.type = type;
         }
 
-        void setType(Type type) {
-            this.uniqueType = new UniqueType(type, types);
+        public boolean equals(Object other) {
+            return
+                other instanceof NameAndType &&
+                name == ((NameAndType) other).name &&
+                type.equals(((NameAndType) other).type);
         }
 
-        @Override
-        public boolean equals(Object other) {
-            return (other instanceof NameAndType &&
-                    name == ((NameAndType) other).name &&
-                        uniqueType.equals(((NameAndType) other).uniqueType));
-        }
-
-        @Override
         public int hashCode() {
-            return name.hashCode() * uniqueType.hashCode();
+            return name.hashCode() * type.hashCode();
         }
     }
 }
--- a/src/share/classes/com/sun/tools/javac/jvm/ClassReader.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javac/jvm/ClassReader.java	Wed Jan 09 18:58:20 2013 +0100
@@ -488,20 +488,20 @@
         case CONSTANT_Fieldref: {
             ClassSymbol owner = readClassSymbol(getChar(index + 1));
             NameAndType nt = (NameAndType)readPool(getChar(index + 3));
-            poolObj[i] = new VarSymbol(0, nt.name, nt.uniqueType.type, owner);
+            poolObj[i] = new VarSymbol(0, nt.name, nt.type, owner);
             break;
         }
         case CONSTANT_Methodref:
         case CONSTANT_InterfaceMethodref: {
             ClassSymbol owner = readClassSymbol(getChar(index + 1));
             NameAndType nt = (NameAndType)readPool(getChar(index + 3));
-            poolObj[i] = new MethodSymbol(0, nt.name, nt.uniqueType.type, owner);
+            poolObj[i] = new MethodSymbol(0, nt.name, nt.type, owner);
             break;
         }
         case CONSTANT_NameandType:
             poolObj[i] = new NameAndType(
                 readName(getChar(index + 1)),
-                readType(getChar(index + 3)), types);
+                readType(getChar(index + 3)));
             break;
         case CONSTANT_Integer:
             poolObj[i] = getInt(index + 1);
@@ -1224,7 +1224,7 @@
         if (nt == null)
             return null;
 
-        MethodType type = nt.uniqueType.type.asMethodType();
+        MethodType type = nt.type.asMethodType();
 
         for (Scope.Entry e = scope.lookup(nt.name); e.scope != null; e = e.next())
             if (e.sym.kind == MTH && isSameBinaryType(e.sym.type.asMethodType(), type))
@@ -1236,16 +1236,16 @@
         if ((flags & INTERFACE) != 0)
             // no enclosing instance
             return null;
-        if (nt.uniqueType.type.getParameterTypes().isEmpty())
+        if (nt.type.getParameterTypes().isEmpty())
             // no parameters
             return null;
 
         // A constructor of an inner class.
         // Remove the first argument (the enclosing instance)
-        nt.setType(new MethodType(nt.uniqueType.type.getParameterTypes().tail,
-                                 nt.uniqueType.type.getReturnType(),
-                                 nt.uniqueType.type.getThrownTypes(),
-                                 syms.methodClass));
+        nt.type = new MethodType(nt.type.getParameterTypes().tail,
+                                 nt.type.getReturnType(),
+                                 nt.type.getThrownTypes(),
+                                 syms.methodClass);
         // Try searching again
         return findMethod(nt, scope, flags);
     }
@@ -1360,16 +1360,6 @@
     void attachAnnotationDefault(final Symbol sym) {
         final MethodSymbol meth = (MethodSymbol)sym; // only on methods
         final Attribute value = readAttributeValue();
-
-        // The default value is set later during annotation. It might
-        // be the case that the Symbol sym is annotated _after_ the
-        // repeating instances that depend on this default value,
-        // because of this we set an interim value that tells us this
-        // element (most likely) has a default.
-        //
-        // Set interim value for now, reset just before we do this
-        // properly at annotate time.
-        meth.defaultValue = value;
         annotate.normal(new AnnotationDefaultCompleter(meth, value));
     }
 
@@ -1690,9 +1680,6 @@
         public void enterAnnotation() {
             JavaFileObject previousClassFile = currentClassFile;
             try {
-                // Reset the interim value set earlier in
-                // attachAnnotationDefault().
-                sym.defaultValue = null;
                 currentClassFile = classFile;
                 sym.defaultValue = deproxy(sym.type.getReturnType(), value);
             } finally {
@@ -1959,7 +1946,7 @@
 
         if (readAllOfClassFile) {
             for (int i = 1; i < poolObj.length; i++) readPool(i);
-            c.pool = new Pool(poolObj.length, poolObj, types);
+            c.pool = new Pool(poolObj.length, poolObj);
         }
 
         // reset and read rest of classinfo
--- a/src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java	Wed Jan 09 18:58:20 2013 +0100
@@ -39,12 +39,7 @@
 import com.sun.tools.javac.code.Attribute.RetentionPolicy;
 import com.sun.tools.javac.code.Symbol.*;
 import com.sun.tools.javac.code.Type.*;
-import com.sun.tools.javac.code.Types.UniqueType;
 import com.sun.tools.javac.file.BaseFileObject;
-import com.sun.tools.javac.jvm.Pool.DynamicMethod;
-import com.sun.tools.javac.jvm.Pool.Method;
-import com.sun.tools.javac.jvm.Pool.MethodHandle;
-import com.sun.tools.javac.jvm.Pool.Variable;
 import com.sun.tools.javac.util.*;
 
 import static com.sun.tools.javac.code.BoundKind.*;
@@ -147,7 +142,7 @@
     /** The bootstrap methods to be written in the corresponding class attribute
      *  (one for each invokedynamic)
      */
-    Map<DynamicMethod, MethodHandle> bootstrapMethods;
+    Map<MethodSymbol, Pool.MethodHandle> bootstrapMethods;
 
     /** The log to use for verbose output.
      */
@@ -482,10 +477,10 @@
         while (i < pool.pp) {
             Object value = pool.pool[i];
             Assert.checkNonNull(value);
-            if (value instanceof Method)
-                value = ((Method)value).m;
-            else if (value instanceof Variable)
-                value = ((Variable)value).v;
+            if (value instanceof Pool.Method)
+                value = ((Pool.Method)value).m;
+            else if (value instanceof Pool.Variable)
+                value = ((Pool.Variable)value).v;
 
             if (value instanceof MethodSymbol) {
                 MethodSymbol m = (MethodSymbol)value;
@@ -498,9 +493,8 @@
                 } else {
                     //invokedynamic
                     DynamicMethodSymbol dynSym = (DynamicMethodSymbol)m;
-                    MethodHandle handle = new MethodHandle(dynSym.bsmKind, dynSym.bsm, types);
-                    DynamicMethod dynMeth = new DynamicMethod(dynSym, types);
-                    bootstrapMethods.put(dynMeth, handle);
+                    Pool.MethodHandle handle = new Pool.MethodHandle(dynSym.bsmKind, dynSym.bsm);
+                    bootstrapMethods.put(dynSym, handle);
                     //init cp entries
                     pool.put(names.BootstrapMethods);
                     pool.put(handle);
@@ -537,7 +531,7 @@
                 NameAndType nt = (NameAndType)value;
                 poolbuf.appendByte(CONSTANT_NameandType);
                 poolbuf.appendChar(pool.put(nt.name));
-                poolbuf.appendChar(pool.put(typeSig(nt.uniqueType.type)));
+                poolbuf.appendChar(pool.put(typeSig(nt.type)));
             } else if (value instanceof Integer) {
                 poolbuf.appendByte(CONSTANT_Integer);
                 poolbuf.appendInt(((Integer)value).intValue());
@@ -555,18 +549,17 @@
             } else if (value instanceof String) {
                 poolbuf.appendByte(CONSTANT_String);
                 poolbuf.appendChar(pool.put(names.fromString((String)value)));
-            } else if (value instanceof UniqueType) {
-                Type type = ((UniqueType)value).type;
-                if (type instanceof MethodType) {
-                    poolbuf.appendByte(CONSTANT_MethodType);
-                    poolbuf.appendChar(pool.put(typeSig((MethodType)type)));
-                } else {
-                    if (type.hasTag(CLASS)) enterInner((ClassSymbol)type.tsym);
-                    poolbuf.appendByte(CONSTANT_Class);
-                    poolbuf.appendChar(pool.put(xClassName(type)));
-                }
-            } else if (value instanceof MethodHandle) {
-                MethodHandle ref = (MethodHandle)value;
+            } else if (value instanceof MethodType) {
+                MethodType mtype = (MethodType)value;
+                poolbuf.appendByte(CONSTANT_MethodType);
+                poolbuf.appendChar(pool.put(typeSig(mtype)));
+            } else if (value instanceof Type) {
+                Type type = (Type)value;
+                if (type.hasTag(CLASS)) enterInner((ClassSymbol)type.tsym);
+                poolbuf.appendByte(CONSTANT_Class);
+                poolbuf.appendChar(pool.put(xClassName(type)));
+            } else if (value instanceof Pool.MethodHandle) {
+                Pool.MethodHandle ref = (Pool.MethodHandle)value;
                 poolbuf.appendByte(CONSTANT_MethodHandle);
                 poolbuf.appendByte(ref.refKind);
                 poolbuf.appendChar(pool.put(ref.refSym));
@@ -596,7 +589,7 @@
         return new NameAndType(fieldName(sym),
                                retrofit
                                ? sym.erasure(types)
-                               : sym.externalType(types), types);
+                               : sym.externalType(types));
         // if we retrofit, then the NameAndType has been read in as is
         // and no change is necessary. If we compile normally, the
         // NameAndType is generated from a symbol reference, and the
@@ -721,7 +714,7 @@
             endAttr(alenIdx);
             acount++;
         }
-        acount += writeJavaAnnotations(sym.getRawAttributes());
+        acount += writeJavaAnnotations(sym.getAnnotationMirrors());
         return acount;
     }
 
@@ -732,7 +725,7 @@
         boolean hasVisible = false;
         boolean hasInvisible = false;
         if (m.params != null) for (VarSymbol s : m.params) {
-            for (Attribute.Compound a : s.getRawAttributes()) {
+            for (Attribute.Compound a : s.getAnnotationMirrors()) {
                 switch (types.getRetention(a)) {
                 case SOURCE: break;
                 case CLASS: hasInvisible = true; break;
@@ -748,7 +741,7 @@
             databuf.appendByte(m.params.length());
             for (VarSymbol s : m.params) {
                 ListBuffer<Attribute.Compound> buf = new ListBuffer<Attribute.Compound>();
-                for (Attribute.Compound a : s.getRawAttributes())
+                for (Attribute.Compound a : s.getAnnotationMirrors())
                     if (types.getRetention(a) == RetentionPolicy.RUNTIME)
                         buf.append(a);
                 databuf.appendChar(buf.length());
@@ -763,7 +756,7 @@
             databuf.appendByte(m.params.length());
             for (VarSymbol s : m.params) {
                 ListBuffer<Attribute.Compound> buf = new ListBuffer<Attribute.Compound>();
-                for (Attribute.Compound a : s.getRawAttributes())
+                for (Attribute.Compound a : s.getAnnotationMirrors())
                     if (types.getRetention(a) == RetentionPolicy.CLASS)
                         buf.append(a);
                 databuf.appendChar(buf.length());
@@ -958,16 +951,14 @@
     void writeBootstrapMethods() {
         int alenIdx = writeAttr(names.BootstrapMethods);
         databuf.appendChar(bootstrapMethods.size());
-        for (Map.Entry<DynamicMethod, MethodHandle> entry : bootstrapMethods.entrySet()) {
-            DynamicMethod dmeth = entry.getKey();
-            DynamicMethodSymbol dsym = (DynamicMethodSymbol)dmeth.baseSymbol();
+        for (Map.Entry<MethodSymbol, Pool.MethodHandle> entry : bootstrapMethods.entrySet()) {
+            DynamicMethodSymbol dsym = (DynamicMethodSymbol)entry.getKey();
             //write BSM handle
             databuf.appendChar(pool.get(entry.getValue()));
             //write static args length
             databuf.appendChar(dsym.staticArgs.length);
             //write static args array
-            Object[] uniqueArgs = dmeth.uniqueStaticArgs;
-            for (Object o : uniqueArgs) {
+            for (Object o : dsym.staticArgs) {
                 databuf.appendChar(pool.get(o));
             }
         }
@@ -1543,7 +1534,7 @@
         pool = c.pool;
         innerClasses = null;
         innerClassesQueue = null;
-        bootstrapMethods = new LinkedHashMap<DynamicMethod, MethodHandle>();
+        bootstrapMethods = new LinkedHashMap<MethodSymbol, Pool.MethodHandle>();
 
         Type supertype = types.supertype(c.type);
         List<Type> interfaces = types.interfaces(c.type);
@@ -1636,7 +1627,7 @@
         }
 
         acount += writeFlagAttrs(c.flags());
-        acount += writeJavaAnnotations(c.getRawAttributes());
+        acount += writeJavaAnnotations(c.getAnnotationMirrors());
         acount += writeEnclosingMethodAttribute(c);
         acount += writeExtraClassAttributes(c);
 
--- a/src/share/classes/com/sun/tools/javac/jvm/Code.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javac/jvm/Code.java	Wed Jan 09 18:58:20 2013 +0100
@@ -27,7 +27,6 @@
 
 import com.sun.tools.javac.code.*;
 import com.sun.tools.javac.code.Symbol.*;
-import com.sun.tools.javac.code.Types.UniqueType;
 import com.sun.tools.javac.util.*;
 import com.sun.tools.javac.util.JCDiagnostic.DiagnosticPosition;
 
@@ -902,7 +901,6 @@
         if (o instanceof ClassSymbol) return syms.classType;
         if (o instanceof Type.ArrayType) return syms.classType;
         if (o instanceof Type.MethodType) return syms.methodTypeType;
-        if (o instanceof UniqueType) return typeForPool(((UniqueType)o).type);
         if (o instanceof Pool.MethodHandle) return syms.methodHandleType;
         throw new AssertionError(o);
     }
@@ -1032,7 +1030,7 @@
             Object o = pool.pool[od];
             Type t = (o instanceof Symbol)
                 ? ((Symbol)o).erasure(types)
-                : types.erasure((((UniqueType)o).type));
+                : types.erasure(((Type)o));
             state.push(t);
             break; }
         case ldc2w:
@@ -1547,10 +1545,10 @@
     public void compressCatchTable() {
         ListBuffer<char[]> compressedCatchInfo = ListBuffer.lb();
         List<Integer> handlerPcs = List.nil();
-        for (char[] catchEntry : catchInfo) {
+        for (char[] catchEntry : catchInfo.elems) {
             handlerPcs = handlerPcs.prepend((int)catchEntry[2]);
         }
-        for (char[] catchEntry : catchInfo) {
+        for (char[] catchEntry : catchInfo.elems) {
             int startpc = catchEntry[0];
             int endpc = catchEntry[1];
             if (startpc == endpc ||
@@ -1827,7 +1825,7 @@
         }
     }
 
-    static final Type jsrReturnValue = new Type(INT, null);
+    static Type jsrReturnValue = new Type(INT, null);
 
 
 /* **************************************************************************
--- a/src/share/classes/com/sun/tools/javac/jvm/Gen.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javac/jvm/Gen.java	Wed Jan 09 18:58:20 2013 +0100
@@ -94,10 +94,6 @@
         return instance;
     }
 
-    /* Constant pool, reset by genClass.
-     */
-    private Pool pool;
-
     protected Gen(Context context) {
         context.put(genKey, this);
 
@@ -130,7 +126,6 @@
         genCrt = options.isSet(XJCOV);
         debugCode = options.isSet("debugcode");
         allowInvokedynamic = target.hasInvokedynamic() || options.isSet("invokedynamic");
-        pool = new Pool(types);
 
         generateIproxies =
             target.requiresIproxy() ||
@@ -179,6 +174,10 @@
      */
     private boolean useJsrLocally;
 
+    /* Constant pool, reset by genClass.
+     */
+    private Pool pool = new Pool();
+
     /** Code buffer, set by genMethod.
      */
     private Code code;
@@ -706,7 +705,7 @@
         }
         int startpc = code.curPc();
         genStat(tree, env);
-        if (tree.hasTag(Tag.BLOCK)) crtFlags |= CRT_BLOCK;
+        if (tree.hasTag(BLOCK)) crtFlags |= CRT_BLOCK;
         code.crt.put(tree, crtFlags, startpc, code.curPc());
     }
 
--- a/src/share/classes/com/sun/tools/javac/jvm/Pool.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javac/jvm/Pool.java	Wed Jan 09 18:58:20 2013 +0100
@@ -28,9 +28,6 @@
 import com.sun.tools.javac.code.Kinds;
 import com.sun.tools.javac.code.Symbol;
 import com.sun.tools.javac.code.Symbol.*;
-import com.sun.tools.javac.code.Type;
-import com.sun.tools.javac.code.Types;
-import com.sun.tools.javac.code.Types.UniqueType;
 
 import com.sun.tools.javac.util.ArrayUtils;
 import com.sun.tools.javac.util.Assert;
@@ -63,14 +60,11 @@
      */
     Map<Object,Integer> indices;
 
-    Types types;
-
     /** Construct a pool with given number of elements and element array.
      */
-    public Pool(int pp, Object[] pool, Types types) {
+    public Pool(int pp, Object[] pool) {
         this.pp = pp;
         this.pool = pool;
-        this.types = types;
         this.indices = new HashMap<Object,Integer>(pool.length);
         for (int i = 1; i < pp; i++) {
             if (pool[i] != null) indices.put(pool[i], i);
@@ -79,8 +73,8 @@
 
     /** Construct an empty pool.
      */
-    public Pool(Types types) {
-        this(1, new Object[64], types);
+    public Pool() {
+        this(1, new Object[64]);
     }
 
     /** Return the number of entries in the constant pool.
@@ -117,16 +111,14 @@
         }
         return index.intValue();
     }
-
+    
     Object makePoolValue(Object o) {
         if (o instanceof DynamicMethodSymbol) {
-            return new DynamicMethod((DynamicMethodSymbol)o, types);
+            return new DynamicMethod((DynamicMethodSymbol)o);
         } else if (o instanceof MethodSymbol) {
-            return new Method((MethodSymbol)o, types);
+            return new Method((MethodSymbol)o);
         } else if (o instanceof VarSymbol) {
-            return new Variable((VarSymbol)o, types);
-        } else if (o instanceof Type) {
-            return new UniqueType((Type)o, types);
+            return new Variable((VarSymbol)o);
         } else {
             return o;
         }
@@ -142,11 +134,9 @@
 
     static class Method extends DelegatedSymbol {
         MethodSymbol m;
-        UniqueType uniqueType;
-        Method(MethodSymbol m, Types types) {
+        Method(MethodSymbol m) {
             super(m);
             this.m = m;
-            this.uniqueType = new UniqueType(m.type, types);
         }
         public boolean equals(Object other) {
             if (!(other instanceof Method)) return false;
@@ -154,22 +144,20 @@
             return
                 o.name == m.name &&
                 o.owner == m.owner &&
-                ((Method)other).uniqueType.equals(uniqueType);
+                o.type.equals(m.type);
         }
         public int hashCode() {
             return
                 m.name.hashCode() * 33 +
                 m.owner.hashCode() * 9 +
-                uniqueType.hashCode();
+                m.type.hashCode();
         }
     }
+    
+    static class DynamicMethod extends Method {
 
-    static class DynamicMethod extends Method {
-        public Object[] uniqueStaticArgs;
-
-        DynamicMethod(DynamicMethodSymbol m, Types types) {
-            super(m, types);
-            uniqueStaticArgs = getUniqueTypeArray(m.staticArgs, types);
+        DynamicMethod(DynamicMethodSymbol m) {
+            super(m);
         }
 
         @Override
@@ -180,8 +168,7 @@
             DynamicMethodSymbol dm2 = (DynamicMethodSymbol)((DynamicMethod)other).m;
             return dm1.bsm == dm2.bsm &&
                         dm1.bsmKind == dm2.bsmKind &&
-                        Arrays.equals(uniqueStaticArgs,
-                            ((DynamicMethod)other).uniqueStaticArgs);
+                        Arrays.equals(dm1.staticArgs, dm2.staticArgs);
         }
 
         @Override
@@ -191,31 +178,17 @@
             hash += dm.bsmKind * 7 +
                     dm.bsm.hashCode() * 11;
             for (int i = 0; i < dm.staticArgs.length; i++) {
-                hash += (uniqueStaticArgs[i].hashCode() * 23);
+                hash += (dm.staticArgs[i].hashCode() * 23) >> i;
             }
             return hash;
         }
-
-        private Object[] getUniqueTypeArray(Object[] objects, Types types) {
-            Object[] result = new Object[objects.length];
-            for (int i = 0; i < objects.length; i++) {
-                if (objects[i] instanceof Type) {
-                    result[i] = new UniqueType((Type)objects[i], types);
-                } else {
-                    result[i] = objects[i];
-                }
-            }
-            return result;
-        }
     }
 
     static class Variable extends DelegatedSymbol {
         VarSymbol v;
-        UniqueType uniqueType;
-        Variable(VarSymbol v, Types types) {
+        Variable(VarSymbol v) {
             super(v);
             this.v = v;
-            this.uniqueType = new UniqueType(v.type, types);
         }
         public boolean equals(Object other) {
             if (!(other instanceof Variable)) return false;
@@ -223,13 +196,13 @@
             return
                 o.name == v.name &&
                 o.owner == v.owner &&
-                ((Variable)other).uniqueType.equals(uniqueType);
+                o.type.equals(v.type);
         }
         public int hashCode() {
             return
                 v.name.hashCode() * 33 +
                 v.owner.hashCode() * 9 +
-                uniqueType.hashCode();
+                v.type.hashCode();
         }
     }
 
@@ -241,12 +214,9 @@
         /** Reference symbol */
         Symbol refSym;
 
-        UniqueType uniqueType;
-
-        public MethodHandle(int refKind, Symbol refSym, Types types) {
+        public MethodHandle(int refKind, Symbol refSym) {
             this.refKind = refKind;
             this.refSym = refSym;
-            this.uniqueType = new UniqueType(this.refSym.type, types);
             checkConsistent();
         }
         public boolean equals(Object other) {
@@ -257,14 +227,14 @@
             return
                 o.name == refSym.name &&
                 o.owner == refSym.owner &&
-                ((MethodHandle)other).uniqueType.equals(uniqueType);
+                o.type.equals(refSym.type);
         }
         public int hashCode() {
             return
                 refKind * 65 +
                 refSym.name.hashCode() * 33 +
                 refSym.owner.hashCode() * 9 +
-                uniqueType.hashCode();
+                refSym.type.hashCode();
         }
 
         /**
--- a/src/share/classes/com/sun/tools/javac/jvm/Target.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javac/jvm/Target.java	Wed Jan 09 18:58:20 2013 +0100
@@ -86,15 +86,17 @@
         return instance;
     }
 
-    private static final Target MIN = values()[0];
+    private static Target MIN;
     public static Target MIN() { return MIN; }
 
-    private static final Target MAX = values()[values().length - 1];
+    private static Target MAX;
     public static Target MAX() { return MAX; }
 
-    private static final Map<String,Target> tab = new HashMap<String,Target>();
+    private static Map<String,Target> tab = new HashMap<String,Target>();
     static {
         for (Target t : values()) {
+            if (MIN == null) MIN = t;
+            MAX = t;
             tab.put(t.name, t);
         }
         tab.put("5", JDK1_5);
--- a/src/share/classes/com/sun/tools/javac/main/JavaCompiler.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javac/main/JavaCompiler.java	Wed Jan 09 18:58:20 2013 +0100
@@ -189,7 +189,7 @@
         }
     }
 
-    private static final CompilePolicy DEFAULT_COMPILE_POLICY = CompilePolicy.BY_TODO;
+    private static CompilePolicy DEFAULT_COMPILE_POLICY = CompilePolicy.BY_TODO;
 
     protected static enum ImplicitSourcePolicy {
         /** Don't generate or process implicitly read source files. */
@@ -544,7 +544,7 @@
         public static CompileState max(CompileState a, CompileState b) {
             return a.value > b.value ? a : b;
         }
-        private final int value;
+        private int value;
     };
     /** Partial map to record which compiler phases have been executed
      * for each compilation unit. Used for ATTR and FLOW phases.
@@ -929,16 +929,6 @@
         }
     }
 
-    /**
-     * Set needRootClasses to true, in JavaCompiler subclass constructor
-     * that want to collect public apis of classes supplied on the command line.
-     */
-    protected boolean needRootClasses = false;
-
-    /**
-     * The list of classes explicitly supplied on the command line for compilation.
-     * Not always populated.
-     */
     private List<JCClassDecl> rootClasses;
 
     /**
@@ -995,10 +985,9 @@
             }
         }
 
-        // If generating source, or if tracking public apis,
-        // then remember the classes declared in
-        // the original compilation units listed on the command line.
-        if (needRootClasses || sourceOutput || stubOutput) {
+        //If generating source, remember the classes declared in
+        //the original compilation units listed on the command line.
+        if (sourceOutput || stubOutput) {
             ListBuffer<JCClassDecl> cdefs = lb();
             for (JCCompilationUnit unit : roots) {
                 for (List<JCTree> defs = unit.defs;
@@ -1259,12 +1248,6 @@
                 attr.postAttr(env.tree);
             }
             compileStates.put(env, CompileState.ATTR);
-            if (rootClasses != null && rootClasses.contains(env.enclClass)) {
-                // This was a class that was explicitly supplied for compilation.
-                // If we want to capture the public api of this class,
-                // then now is a good time to do it.
-                reportPublicApi(env.enclClass.sym);
-            }
         }
         finally {
             log.useSource(prev);
@@ -1273,14 +1256,6 @@
         return env;
     }
 
-    /** Report the public api of a class that was supplied explicitly for compilation,
-     *  for example on the command line to javac.
-     * @param sym The symbol of the class.
-     */
-    public void reportPublicApi(ClassSymbol sym) {
-       // Override to collect the reported public api.
-    }
-
     /**
      * Perform dataflow checks on attributed parse trees.
      * These include checks for definite assignment and unreachable statements.
@@ -1702,7 +1677,7 @@
 
     /** Print numbers of errors and warnings.
      */
-    public void printCount(String kind, int count) {
+    protected void printCount(String kind, int count) {
         if (count != 0) {
             String key;
             if (count == 1)
--- a/src/share/classes/com/sun/tools/javac/main/Main.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javac/main/Main.java	Wed Jan 09 18:58:20 2013 +0100
@@ -44,8 +44,6 @@
 
 import com.sun.source.util.JavacTask;
 import com.sun.source.util.Plugin;
-import com.sun.tools.doclint.DocLint;
-import com.sun.tools.javac.api.BasicJavacTask;
 import com.sun.tools.javac.code.Source;
 import com.sun.tools.javac.file.CacheFSInfo;
 import com.sun.tools.javac.file.JavacFileManager;
@@ -430,7 +428,6 @@
             if (batchMode)
                 CacheFSInfo.preRegister(context);
 
-            // FIXME: this code will not be invoked if using JavacTask.parse/analyze/generate
             // invoke any available plugins
             String plugins = options.get(PLUGIN);
             if (plugins != null) {
@@ -451,7 +448,7 @@
                             try {
                                 if (task == null)
                                     task = JavacTask.instance(pEnv);
-                                plugin.init(task, p.tail.toArray(new String[p.tail.size()]));
+                                plugin.call(task, p.tail.toArray(new String[p.tail.size()]));
                             } catch (Throwable ex) {
                                 if (apiMode)
                                     throw new RuntimeException(ex);
@@ -467,31 +464,10 @@
                 }
             }
 
+            fileManager = context.get(JavaFileManager.class);
+
             comp = JavaCompiler.instance(context);
-
-            // FIXME: this code will not be invoked if using JavacTask.parse/analyze/generate
-            String xdoclint = options.get(XDOCLINT);
-            String xdoclintCustom = options.get(XDOCLINT_CUSTOM);
-            if (xdoclint != null || xdoclintCustom != null) {
-                Set<String> doclintOpts = new LinkedHashSet<String>();
-                if (xdoclint != null)
-                    doclintOpts.add(DocLint.XMSGS_OPTION);
-                if (xdoclintCustom != null) {
-                    for (String s: xdoclintCustom.split("\\s+")) {
-                        if (s.isEmpty())
-                            continue;
-                        doclintOpts.add(s.replace(XDOCLINT_CUSTOM.text, DocLint.XMSGS_CUSTOM_PREFIX));
-                    }
-                }
-                if (!(doclintOpts.size() == 1
-                        && doclintOpts.iterator().next().equals(DocLint.XMSGS_CUSTOM_PREFIX + "none"))) {
-                    JavacTask t = BasicJavacTask.instance(context);
-                    new DocLint().init(t, doclintOpts.toArray(new String[doclintOpts.size()]));
-                    comp.keepComments = true;
-                }
-            }
-
-            fileManager = context.get(JavaFileManager.class);
+            if (comp == null) return Result.SYSERR;
 
             if (!files.isEmpty()) {
                 // add filenames to fileObjects
--- a/src/share/classes/com/sun/tools/javac/main/Option.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javac/main/Option.java	Wed Jan 09 18:58:20 2013 +0100
@@ -25,30 +25,28 @@
 
 package com.sun.tools.javac.main;
 
+import java.util.Collections;
+import com.sun.tools.javac.util.Log.PrefixKind;
+import com.sun.tools.javac.util.Log.WriterKind;
+import com.sun.tools.javac.util.Log;
+import com.sun.tools.javac.code.Lint;
+import com.sun.tools.javac.code.Source;
+import com.sun.tools.javac.code.Type;
+import com.sun.tools.javac.jvm.Target;
+import com.sun.tools.javac.util.Options;
+import com.sun.tools.javac.processing.JavacProcessingEnvironment;
 import java.io.File;
 import java.io.FileWriter;
 import java.io.PrintWriter;
-import java.util.Collections;
 import java.util.EnumSet;
 import java.util.LinkedHashMap;
 import java.util.Map;
 import java.util.Set;
-
 import javax.lang.model.SourceVersion;
 
-import com.sun.tools.doclint.DocLint;
-import com.sun.tools.javac.code.Lint;
-import com.sun.tools.javac.code.Source;
-import com.sun.tools.javac.code.Type;
-import com.sun.tools.javac.jvm.Target;
-import com.sun.tools.javac.processing.JavacProcessingEnvironment;
-import com.sun.tools.javac.util.Log;
-import com.sun.tools.javac.util.Log.PrefixKind;
-import com.sun.tools.javac.util.Log.WriterKind;
-import com.sun.tools.javac.util.Options;
 import static com.sun.tools.javac.main.Option.ChoiceKind.*;
+import static com.sun.tools.javac.main.Option.OptionKind.*;
 import static com.sun.tools.javac.main.Option.OptionGroup.*;
-import static com.sun.tools.javac.main.Option.OptionKind.*;
 
 /**
  * Options for javac. The specific Option to handle a command-line option
@@ -81,24 +79,6 @@
     XLINT_CUSTOM("-Xlint:", "opt.Xlint.suboptlist",
             EXTENDED,   BASIC, ANYOF, getXLintChoices()),
 
-    XDOCLINT("-Xdoclint", "opt.Xdoclint", EXTENDED, BASIC),
-
-    XDOCLINT_CUSTOM("-Xdoclint:", "opt.Xdoclint.subopts", "opt.Xdoclint.custom", EXTENDED, BASIC) {
-        @Override
-        public boolean matches(String option) {
-            return DocLint.isValidOption(
-                    option.replace(XDOCLINT_CUSTOM.text, DocLint.XMSGS_CUSTOM_PREFIX));
-        }
-
-        @Override
-        public boolean process(OptionHelper helper, String option) {
-            String prev = helper.get(XDOCLINT_CUSTOM);
-            String next = (prev == null) ? option : (prev + " " + option);
-            helper.put(XDOCLINT_CUSTOM.text, next);
-            return false;
-        }
-    },
-
     // -nowarn is retained for command-line backward compatibility
     NOWARN("-nowarn", "opt.nowarn", STANDARD, BASIC) {
         @Override
@@ -187,6 +167,7 @@
     ENCODING("-encoding", "opt.arg.encoding", "opt.encoding", STANDARD, FILEMANAGER) {
         @Override
         public boolean process(OptionHelper helper, String option, String operand) {
+//            System.err.println("process encoding " + operand);
             return super.process(helper, option, operand);
         }
 
@@ -265,7 +246,9 @@
         }
     },
 
-    A("-A", "opt.arg.key.equals.value", "opt.A", STANDARD, BASIC, true) {
+    A("-A", "opt.arg.key.equals.value", "opt.A", STANDARD, BASIC) {
+        { hasSuffix = true; }
+
         @Override
         public boolean matches(String arg) {
             return arg.startsWith("-A");
@@ -310,6 +293,8 @@
     // This option exists only for the purpose of documenting itself.
     // It's actually implemented by the launcher.
     J("-J", "opt.arg.flag", "opt.J", STANDARD, INFO) {
+        { hasSuffix = true; }
+
         @Override
         public boolean process(OptionHelper helper, String option) {
             throw new AssertionError
@@ -317,6 +302,10 @@
         }
     },
 
+    // stop after parsing and attributing.
+    // new HiddenOption("-attrparseonly"),
+
+    // new Option("-moreinfo",                                      "opt.moreinfo") {
     MOREINFO("-moreinfo", null, HIDDEN, BASIC) {
         @Override
         public boolean process(OptionHelper helper, String option) {
@@ -328,6 +317,23 @@
     // treat warnings as errors
     WERROR("-Werror", "opt.Werror", STANDARD, BASIC),
 
+//    // use complex inference from context in the position of a method call argument
+//    COMPLEXINFERENCE("-complexinference", null, HIDDEN, BASIC),
+
+    // generare source stubs
+    // new HiddenOption("-stubs"),
+
+    // relax some constraints to allow compiling from stubs
+    // new HiddenOption("-relax"),
+
+    // output source after translating away inner classes
+    // new Option("-printflat",                             "opt.printflat"),
+    // new HiddenOption("-printflat"),
+
+    // display scope search details
+    // new Option("-printsearch",                           "opt.printsearch"),
+    // new HiddenOption("-printsearch"),
+
     // prompt after each error
     // new Option("-prompt",                                        "opt.prompt"),
     PROMPT("-prompt", null, HIDDEN, BASIC),
@@ -336,8 +342,13 @@
     DOE("-doe", null, HIDDEN, BASIC),
 
     // output source after type erasure
+    // new Option("-s",                                     "opt.s"),
     PRINTSOURCE("-printsource", null, HIDDEN, BASIC),
 
+    // output shrouded class files
+    // new Option("-scramble",                              "opt.scramble"),
+    // new Option("-scrambleall",                           "opt.scrambleall"),
+
     // display warnings for generic unchecked operations
     WARNUNCHECKED("-warnunchecked", null, HIDDEN, BASIC) {
         @Override
@@ -397,16 +408,18 @@
      * -XDx sets the option x to the value x.
      */
     XD("-XD", null, HIDDEN, BASIC) {
+        String s;
         @Override
         public boolean matches(String s) {
+            this.s = s;
             return s.startsWith(text);
         }
         @Override
         public boolean process(OptionHelper helper, String option) {
-            option = option.substring(text.length());
-            int eq = option.indexOf('=');
-            String key = (eq < 0) ? option : option.substring(0, eq);
-            String value = (eq < 0) ? option : option.substring(eq+1);
+            s = s.substring(text.length());
+            int eq = s.indexOf('=');
+            String key = (eq < 0) ? s : s.substring(0, eq);
+            String value = (eq < 0) ? s : s.substring(eq+1);
             helper.put(key, value);
             return false;
         }
@@ -415,6 +428,8 @@
     // This option exists only for the purpose of documenting itself.
     // It's actually implemented by the CommandLine class.
     AT("@", "opt.arg.file", "opt.AT", STANDARD, INFO) {
+        { hasSuffix = true; }
+
         @Override
         public boolean process(OptionHelper helper, String option) {
             throw new AssertionError("the @ flag should be caught by CommandLine.");
@@ -430,15 +445,17 @@
      * name to a separate list.
      */
     SOURCEFILE("sourcefile", null, HIDDEN, INFO) {
+        String s;
         @Override
         public boolean matches(String s) {
+            this.s = s;
             return s.endsWith(".java")  // Java source file
                 || SourceVersion.isName(s);   // Legal type name
         }
         @Override
         public boolean process(OptionHelper helper, String option) {
-            if (option.endsWith(".java") ) {
-                File f = new File(option);
+            if (s.endsWith(".java") ) {
+                File f = new File(s);
                 if (!f.exists()) {
                     helper.error("err.file.not.found", f);
                     return true;
@@ -448,9 +465,9 @@
                     return true;
                 }
                 helper.addFile(f);
-            } else {
-                helper.addClassName(option);
             }
+            else
+                helper.addClassName(s);
             return false;
         }
     };
@@ -504,7 +521,7 @@
 
     /** Suffix option (-foo=bar or -foo:bar)
      */
-    final boolean hasSuffix;
+    boolean hasSuffix;
 
     /** The kind of choices for this option, if any.
      */
@@ -518,30 +535,24 @@
 
     Option(String text, String descrKey,
             OptionKind kind, OptionGroup group) {
-        this(text, null, descrKey, kind, group, null, null, false);
+        this(text, null, descrKey, kind, group, null, null);
     }
 
     Option(String text, String argsNameKey, String descrKey,
             OptionKind kind, OptionGroup group) {
-        this(text, argsNameKey, descrKey, kind, group, null, null, false);
-    }
-
-    Option(String text, String argsNameKey, String descrKey,
-            OptionKind kind, OptionGroup group, boolean doHasSuffix) {
-        this(text, argsNameKey, descrKey, kind, group, null, null, doHasSuffix);
+        this(text, argsNameKey, descrKey, kind, group, null, null);
     }
 
     Option(String text, String descrKey,
             OptionKind kind, OptionGroup group,
             ChoiceKind choiceKind, Map<String,Boolean> choices) {
-        this(text, null, descrKey, kind, group, choiceKind, choices, false);
+        this(text, null, descrKey, kind, group, choiceKind, choices);
     }
 
     Option(String text, String descrKey,
             OptionKind kind, OptionGroup group,
             ChoiceKind choiceKind, String... choices) {
-        this(text, null, descrKey, kind, group, choiceKind,
-                createChoices(choices), false);
+        this(text, null, descrKey, kind, group, choiceKind, createChoices(choices));
     }
     // where
         private static Map<String,Boolean> createChoices(String... choices) {
@@ -553,8 +564,7 @@
 
     private Option(String text, String argsNameKey, String descrKey,
             OptionKind kind, OptionGroup group,
-            ChoiceKind choiceKind, Map<String,Boolean> choices,
-            boolean doHasSuffix) {
+            ChoiceKind choiceKind, Map<String,Boolean> choices) {
         this.text = text;
         this.argsNameKey = argsNameKey;
         this.descrKey = descrKey;
@@ -563,7 +573,7 @@
         this.choiceKind = choiceKind;
         this.choices = choices;
         char lastChar = text.charAt(text.length()-1);
-        this.hasSuffix = doHasSuffix || lastChar == ':' || lastChar == '=';
+        hasSuffix = lastChar == ':' || lastChar == '=';
     }
 
     public String getText() {
--- a/src/share/classes/com/sun/tools/javac/model/JavacTypes.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javac/model/JavacTypes.java	Wed Jan 09 18:58:20 2013 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2012, 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
@@ -25,16 +25,11 @@
 
 package com.sun.tools.javac.model;
 
-import java.util.Collections;
-import java.util.EnumSet;
-import java.util.HashSet;
-import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Set;
-
+import java.util.EnumSet;
 import javax.lang.model.element.*;
 import javax.lang.model.type.*;
-
 import com.sun.tools.javac.code.*;
 import com.sun.tools.javac.code.Symbol.*;
 import com.sun.tools.javac.util.*;
@@ -306,31 +301,4 @@
             throw new IllegalArgumentException(o.toString());
         return clazz.cast(o);
     }
-
-    public Set<MethodSymbol> getOverriddenMethods(Element elem) {
-        if (elem.getKind() != ElementKind.METHOD
-                || elem.getModifiers().contains(Modifier.STATIC)
-                || elem.getModifiers().contains(Modifier.PRIVATE))
-            return Collections.emptySet();
-
-        if (!(elem instanceof MethodSymbol))
-            throw new IllegalArgumentException();
-
-        MethodSymbol m = (MethodSymbol) elem;
-        ClassSymbol origin = (ClassSymbol) m.owner;
-
-        Set<MethodSymbol> results = new LinkedHashSet<MethodSymbol>();
-        for (Type t : types.closure(origin.type)) {
-            if (t != origin.type) {
-                ClassSymbol c = (ClassSymbol) t.tsym;
-                for (Scope.Entry e = c.members().lookup(m.name); e.scope != null; e = e.next()) {
-                    if (e.sym.kind == Kinds.MTH && m.overrides(e.sym, origin, types, true)) {
-                        results.add((MethodSymbol) e.sym);
-                    }
-                }
-            }
-        }
-
-        return results;
-    }
 }
--- a/src/share/classes/com/sun/tools/javac/parser/DocCommentParser.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javac/parser/DocCommentParser.java	Wed Jan 09 18:58:20 2013 +0100
@@ -25,12 +25,15 @@
 
 package com.sun.tools.javac.parser;
 
+import com.sun.tools.javac.util.Filter;
 import java.text.BreakIterator;
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.HashSet;
+import java.util.LinkedList;
 import java.util.Locale;
 import java.util.Map;
+import java.util.Queue;
 import java.util.Set;
 
 import com.sun.source.doctree.AttributeTree.ValueKind;
@@ -49,6 +52,7 @@
 import com.sun.tools.javac.tree.DocTreeMaker;
 import com.sun.tools.javac.tree.JCTree;
 import com.sun.tools.javac.util.DiagnosticSource;
+import com.sun.tools.javac.util.JCDiagnostic;
 import com.sun.tools.javac.util.List;
 import com.sun.tools.javac.util.ListBuffer;
 import com.sun.tools.javac.util.Log;
@@ -732,9 +736,7 @@
             nextChar();
             return m.at(p).Entity(names.fromChars(buf, namep, bp - namep - 1));
         } else {
-            String code = checkSemi
-                    ? "dc.missing.semicolon"
-                    : "dc.bad.entity";
+            String code = checkSemi ? "dc.missing.semicolon" : "dc.bad.entity";
             return erroneous(code, p);
         }
     }
@@ -886,10 +888,8 @@
     }
 
     protected void addPendingText(ListBuffer<DCTree> list, int textEnd) {
-        if (textStart != -1) {
-            if (textStart <= textEnd) {
-                list.add(m.at(textStart).Text(newString(textStart, textEnd + 1)));
-            }
+        if (textStart != -1 && textStart <= textEnd) {
+            list.add(m.at(textStart).Text(newString(textStart, textEnd + 1)));
             textStart = -1;
         }
     }
@@ -1196,16 +1196,6 @@
                                 return m.at(pos).See(html);
                             break;
 
-                        case '@':
-                            if (newline)
-                                throw new ParseException("dc.no.content");
-                            break;
-
-                        case EOI:
-                            if (bp == buf.length - 1)
-                                throw new ParseException("dc.no.content");
-                            break;
-
                         default:
                             if (isJavaIdentifierStart(ch) || ch == '#') {
                                 DCReference ref = reference(true);
--- a/src/share/classes/com/sun/tools/javac/parser/JavaTokenizer.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javac/parser/JavaTokenizer.java	Wed Jan 09 18:58:20 2013 +0100
@@ -44,7 +44,7 @@
  */
 public class JavaTokenizer {
 
-    private static final boolean scannerDebug = false;
+    private static boolean scannerDebug = false;
 
     /** Allow hex floating-point literals.
      */
--- a/src/share/classes/com/sun/tools/javac/parser/JavacParser.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javac/parser/JavacParser.java	Wed Jan 09 18:58:20 2013 +0100
@@ -842,7 +842,9 @@
      *                  | "*" | "/" | "%"
      */
     JCExpression term2Rest(JCExpression t, int minprec) {
+        List<JCExpression[]> savedOd = odStackSupply.elems;
         JCExpression[] odStack = newOdStack();
+        List<Token[]> savedOp = opStackSupply.elems;
         Token[] opStack = newOpStack();
 
         // optimization, was odStack = new Tree[...]; opStack = new Tree[...];
@@ -873,8 +875,8 @@
             }
         }
 
-        odStackSupply.add(odStack);
-        opStackSupply.add(opStack);
+        odStackSupply.elems = savedOd; // optimization
+        opStackSupply.elems = savedOp; // optimization
         return t;
     }
 //where
@@ -928,19 +930,23 @@
         /** optimization: To save allocating a new operand/operator stack
          *  for every binary operation, we use supplys.
          */
-        ArrayList<JCExpression[]> odStackSupply = new ArrayList<JCExpression[]>();
-        ArrayList<Token[]> opStackSupply = new ArrayList<Token[]>();
+        ListBuffer<JCExpression[]> odStackSupply = new ListBuffer<JCExpression[]>();
+        ListBuffer<Token[]> opStackSupply = new ListBuffer<Token[]>();
 
         private JCExpression[] newOdStack() {
-            if (odStackSupply.isEmpty())
-                return new JCExpression[infixPrecedenceLevels + 1];
-            return odStackSupply.remove(odStackSupply.size() - 1);
+            if (odStackSupply.elems == odStackSupply.last)
+                odStackSupply.append(new JCExpression[infixPrecedenceLevels + 1]);
+            JCExpression[] odStack = odStackSupply.elems.head;
+            odStackSupply.elems = odStackSupply.elems.tail;
+            return odStack;
         }
 
         private Token[] newOpStack() {
-            if (opStackSupply.isEmpty())
-                return new Token[infixPrecedenceLevels + 1];
-            return opStackSupply.remove(opStackSupply.size() - 1);
+            if (opStackSupply.elems == opStackSupply.last)
+                opStackSupply.append(new Token[infixPrecedenceLevels + 1]);
+            Token[] opStack = opStackSupply.elems.head;
+            opStackSupply.elems = opStackSupply.elems.tail;
+            return opStack;
         }
 
     /**
@@ -2016,7 +2022,7 @@
                 ListBuffer<JCStatement> stats =
                         variableDeclarators(mods, t, new ListBuffer<JCStatement>());
                 // A "LocalVariableDeclarationStatement" subsumes the terminating semicolon
-                storeEnd(stats.last(), token.endPos);
+                storeEnd(stats.elems.last(), token.endPos);
                 accept(SEMI);
                 return stats.toList();
             }
@@ -2054,7 +2060,7 @@
                 ListBuffer<JCStatement> stats =
                         variableDeclarators(mods, t, new ListBuffer<JCStatement>());
                 // A "LocalVariableDeclarationStatement" subsumes the terminating semicolon
-                storeEnd(stats.last(), token.endPos);
+                storeEnd(stats.elems.last(), token.endPos);
                 accept(SEMI);
                 return stats.toList();
             } else {
@@ -2591,7 +2597,7 @@
         vdefs.append(variableDeclaratorRest(pos, mods, type, name, reqInit, dc));
         while (token.kind == COMMA) {
             // All but last of multiple declarators subsume a comma
-            storeEnd((JCTree)vdefs.last(), token.endPos);
+            storeEnd((JCTree)vdefs.elems.last(), token.endPos);
             nextToken();
             vdefs.append(variableDeclarator(mods, type, reqInit, dc));
         }
@@ -2656,7 +2662,7 @@
         defs.append(resource());
         while (token.kind == SEMI) {
             // All but last of multiple declarators must subsume a semicolon
-            storeEnd(defs.last(), token.endPos);
+            storeEnd(defs.elems.last(), token.endPos);
             int semiColonPos = token.pos;
             nextToken();
             if (token.kind == RPAREN) { // Optional trailing semicolon
@@ -2738,7 +2744,7 @@
         JCTree.JCCompilationUnit toplevel = F.at(firstToken.pos).TopLevel(packageAnnotations, pid, defs.toList());
         if (!consumedToplevelDoc)
             attach(toplevel, firstToken.comment(CommentStyle.JAVADOC));
-        if (defs.isEmpty())
+        if (defs.elems.isEmpty())
             storeEnd(toplevel, S.prevToken().endPos);
         if (keepDocComments)
             toplevel.docComments = docComments;
--- a/src/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java	Wed Jan 09 18:58:20 2013 +0100
@@ -1336,7 +1336,7 @@
         return nodes;
     }
 
-    private static final TreeScanner treeCleaner = new TreeScanner() {
+    private static TreeScanner treeCleaner = new TreeScanner() {
             public void scan(JCTree node) {
                 super.scan(node);
                 if (node != null)
--- a/src/share/classes/com/sun/tools/javac/resources/compiler.properties	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javac/resources/compiler.properties	Wed Jan 09 18:58:20 2013 +0100
@@ -315,17 +315,13 @@
 compiler.err.duplicate.annotation=\
     duplicate annotation
 
-# 0: type
-compiler.err.duplicate.annotation.invalid.repeated=\
-    annotation {0} cannot be repeated\nIt does not define a valid containing annotation.
-
 # 0: name, 1: type
 compiler.err.duplicate.annotation.member.value=\
     duplicate annotation member value {0} in {1}
 
-# 0: type, 1: type
+# 0: type
 compiler.err.duplicate.annotation.missing.container=\
-    duplicate annotation, the declaration of {0} does not have a valid {1} annotation
+    duplicate annotation, the declaration of {0} does not have a ContainedBy annotation
 
 # 0: type, 1: type
 compiler.err.invalid.container.no.containedby=\
@@ -2391,9 +2387,6 @@
 compiler.err.dc.missing.semicolon=\
     semicolon missing
 
-compiler.err.dc.no.content=\
-    no content
-
 compiler.err.dc.no.tag.name=\
     no tag name after '@'
 
--- a/src/share/classes/com/sun/tools/javac/resources/javac.properties	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javac/resources/javac.properties	Wed Jan 09 18:58:20 2013 +0100
@@ -138,14 +138,6 @@
     Enable recommended warnings
 javac.opt.Xlint.suboptlist=\
     Enable or disable specific warnings
-javac.opt.Xdoclint=\
-    Enable recommended checks for problems in javadoc comments
-javac.opt.Xdoclint.subopts = \
-    (all|[-]<group>)[/<access>]
-javac.opt.Xdoclint.custom=\n\
-\        Enable or disable specific checks for problems in javadoc comments,\n\
-\        where <group> is one of accessibility, html, reference, or syntax,\n\
-\        and <access> is one of public, protected, package, or private.
 javac.opt.Xstdout=\
     Redirect standard output
 javac.opt.X=\
--- a/src/share/classes/com/sun/tools/javac/sym/CreateSymbols.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javac/sym/CreateSymbols.java	Wed Jan 09 18:58:20 2013 +0100
@@ -33,7 +33,6 @@
 import com.sun.tools.javac.code.Attribute;
 import com.sun.tools.javac.code.Symtab;
 import com.sun.tools.javac.code.Type;
-import com.sun.tools.javac.code.Types;
 import com.sun.tools.javac.jvm.ClassReader;
 import com.sun.tools.javac.jvm.ClassWriter;
 import com.sun.tools.javac.jvm.Pool;
@@ -174,8 +173,7 @@
                                    List.<Pair<Symbol.MethodSymbol,Attribute>>nil());
 
         Type.moreInfo = true;
-        Types types = Types.instance(task.getContext());
-        Pool pool = new Pool(types);
+        Pool pool = new Pool();
         for (JavaFileObject file : fm.list(jarLocation, "", EnumSet.of(CLASS), true)) {
             String className = fm.inferBinaryName(jarLocation, file);
             int index = className.lastIndexOf('.');
--- a/src/share/classes/com/sun/tools/javac/tree/DCTree.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javac/tree/DCTree.java	Wed Jan 09 18:58:20 2013 +0100
@@ -36,8 +36,6 @@
 import com.sun.tools.javac.util.JCDiagnostic.SimpleDiagnosticPosition;
 import com.sun.tools.javac.util.List;
 import com.sun.tools.javac.util.Name;
-import java.io.IOException;
-import java.io.StringWriter;
 import javax.tools.JavaFileObject;
 
 /**
@@ -67,21 +65,6 @@
         return new SimpleDiagnosticPosition(dc.comment.getSourcePos(pos));
     }
 
-    /** Convert a tree to a pretty-printed string. */
-    @Override
-    public String toString() {
-        StringWriter s = new StringWriter();
-        try {
-            new DocPretty(s).print(this);
-        }
-        catch (IOException e) {
-            // should never happen, because StringWriter is defined
-            // never to throw any IOExceptions
-            throw new AssertionError(e);
-        }
-        return s.toString();
-    }
-
     public static class DCDocComment extends DCTree implements DocCommentTree {
         final Comment comment; // required for the implicit source pos table
 
--- a/src/share/classes/com/sun/tools/javac/tree/DocPretty.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javac/tree/DocPretty.java	Wed Jan 09 18:58:20 2013 +0100
@@ -81,7 +81,7 @@
     /**
      * Print list.
      */
-    public void print(List<? extends DocTree> list) throws IOException {
+    protected void print(List<? extends DocTree> list) throws IOException {
         for (DocTree t: list) {
             print(t);
         }
--- a/src/share/classes/com/sun/tools/javac/tree/JCTree.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javac/tree/JCTree.java	Wed Jan 09 18:58:20 2013 +0100
@@ -340,17 +340,15 @@
          */
         LETEXPR;                         // ala scheme
 
-        private final Tag noAssignTag;
+        private Tag noAssignTag;
 
-        private static final int numberOfOperators = MOD.ordinal() - POS.ordinal() + 1;
+        private static int numberOfOperators = MOD.ordinal() - POS.ordinal() + 1;
 
         private Tag(Tag noAssignTag) {
             this.noAssignTag = noAssignTag;
         }
 
-        private Tag() {
-            this(null);
-        }
+        private Tag() { }
 
         public static int getNumberOfOperators() {
             return numberOfOperators;
@@ -1875,8 +1873,8 @@
             /** ArrayType # new */
             ARRAY_CTOR(ReferenceMode.NEW, false);
 
-            final ReferenceMode mode;
-            final boolean unbound;
+            ReferenceMode mode;
+            boolean unbound;
 
             private ReferenceKind(ReferenceMode mode, boolean unbound) {
                 this.mode = mode;
--- a/src/share/classes/com/sun/tools/javac/tree/TreeInfo.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javac/tree/TreeInfo.java	Wed Jan 09 18:58:20 2013 +0100
@@ -26,7 +26,6 @@
 package com.sun.tools.javac.tree;
 
 
-
 import com.sun.source.tree.Tree;
 import com.sun.tools.javac.code.*;
 import com.sun.tools.javac.comp.AttrContext;
@@ -360,13 +359,6 @@
         return (docComments == null) ? null : docComments.getCommentText(tree);
     }
 
-    public static DCTree.DCDocComment getCommentTree(Env<?> env, JCTree tree) {
-        DocCommentTable docComments = (tree.hasTag(JCTree.Tag.TOPLEVEL))
-                ? ((JCCompilationUnit) tree).docComments
-                : env.toplevel.docComments;
-        return (docComments == null) ? null : docComments.getCommentTree(tree);
-    }
-
     /** The position of the first statement in a block, or the position of
      *  the block itself if it is empty.
      */
--- a/src/share/classes/com/sun/tools/javac/tree/TreeMaker.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javac/tree/TreeMaker.java	Wed Jan 09 18:58:20 2013 +0100
@@ -684,7 +684,7 @@
     public JCVariableDecl VarDef(VarSymbol v, JCExpression init) {
         return (JCVariableDecl)
             new JCVariableDecl(
-                Modifiers(v.flags(), Annotations(v.getRawAttributes())),
+                Modifiers(v.flags(), Annotations(v.getAnnotationMirrors())),
                 v.name,
                 Type(v.type),
                 init,
@@ -800,7 +800,7 @@
     public JCMethodDecl MethodDef(MethodSymbol m, Type mtype, JCBlock body) {
         return (JCMethodDecl)
             new JCMethodDecl(
-                Modifiers(m.flags(), Annotations(m.getRawAttributes())),
+                Modifiers(m.flags(), Annotations(m.getAnnotationMirrors())),
                 m.name,
                 Type(mtype.getReturnType()),
                 TypeParams(mtype.getTypeArguments()),
--- a/src/share/classes/com/sun/tools/javac/util/BaseFileManager.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javac/util/BaseFileManager.java	Wed Jan 09 18:58:20 2013 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009, 2012, 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
@@ -181,7 +181,7 @@
         return false;
     }
     // where
-        private static final Set<Option> javacFileManagerOptions =
+        private static Set<Option> javacFileManagerOptions =
             Option.getJavacFileManagerOptions();
 
     public int isSupportedOption(String option) {
--- a/src/share/classes/com/sun/tools/javac/util/List.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javac/util/List.java	Wed Jan 09 18:58:20 2013 +0100
@@ -74,7 +74,7 @@
         return (List<A>)EMPTY_LIST;
     }
 
-    private static final List<?> EMPTY_LIST = new List<Object>(null,null) {
+    private static List<?> EMPTY_LIST = new List<Object>(null,null) {
         public List<Object> setTail(List<Object> tail) {
             throw new UnsupportedOperationException();
         }
@@ -391,7 +391,7 @@
         return (List<T>)list;
     }
 
-    private static final Iterator<?> EMPTYITERATOR = new Iterator<Object>() {
+    private static Iterator<?> EMPTYITERATOR = new Iterator<Object>() {
             public boolean hasNext() {
                 return false;
             }
--- a/src/share/classes/com/sun/tools/javac/util/ListBuffer.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javac/util/ListBuffer.java	Wed Jan 09 18:58:20 2013 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 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
@@ -52,20 +52,19 @@
 
     /** The list of elements of this buffer.
      */
-    private List<A> elems;
+    public List<A> elems;
 
-    /** A pointer pointing to the last element of 'elems' containing data,
-     *  or null if the list is empty.
+    /** A pointer pointing to the last, sentinel element of `elems'.
      */
-    private List<A> last;
+    public List<A> last;
 
     /** The number of element in this buffer.
      */
-    private int count;
+    public int count;
 
     /** Has a list been created from this buffer yet?
      */
-    private boolean shared;
+    public boolean shared;
 
     /** Create a new initially empty list buffer.
      */
@@ -74,8 +73,8 @@
     }
 
     public final void clear() {
-        this.elems = List.nil();
-        this.last = null;
+        this.elems = new List<A>(null,null);
+        this.last = this.elems;
         count = 0;
         shared = false;
     }
@@ -104,23 +103,22 @@
     /** Copy list and sets last.
      */
     private void copy() {
-        if (elems.nonEmpty()) {
-            List<A> orig = elems;
-
-            elems = last = List.<A>of(orig.head);
-
-            while ((orig = orig.tail).nonEmpty()) {
-                last.tail = List.<A>of(orig.head);
-                last = last.tail;
-            }
+        List<A> p = elems = new List<A>(elems.head, elems.tail);
+        while (true) {
+            List<A> tail = p.tail;
+            if (tail == null) break;
+            tail = new List<A>(tail.head, tail.tail);
+            p.setTail(tail);
+            p = tail;
         }
+        last = p;
+        shared = false;
     }
 
     /** Prepend an element to buffer.
      */
     public ListBuffer<A> prepend(A x) {
         elems = elems.prepend(x);
-        if (last == null) last = elems;
         count++;
         return this;
     }
@@ -130,13 +128,9 @@
     public ListBuffer<A> append(A x) {
         x.getClass(); // null check
         if (shared) copy();
-        List<A> newLast = List.<A>of(x);
-        if (last != null) {
-            last.tail = newLast;
-            last = newLast;
-        } else {
-            elems = last = newLast;
-        }
+        last.head = x;
+        last.setTail(new List<A>(null,null));
+        last = last.tail;
         count++;
         return this;
     }
@@ -198,9 +192,8 @@
      */
     public A next() {
         A x = elems.head;
-        if (!elems.isEmpty()) {
+        if (elems != last) {
             elems = elems.tail;
-            if (elems.isEmpty()) last = null;
             count--;
         }
         return x;
@@ -212,10 +205,10 @@
         return new Iterator<A>() {
             List<A> elems = ListBuffer.this.elems;
             public boolean hasNext() {
-                return !elems.isEmpty();
+                return elems != last;
             }
             public A next() {
-                if (elems.isEmpty())
+                if (elems == last)
                     throw new NoSuchElementException();
                 A elem = elems.head;
                 elems = elems.tail;
@@ -270,8 +263,4 @@
     public A peek() {
         return first();
     }
-
-    public A last() {
-        return last != null ? last.head : null;
-    }
 }
--- a/src/share/classes/com/sun/tools/javac/util/MandatoryWarningHandler.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javac/util/MandatoryWarningHandler.java	Wed Jan 09 18:58:20 2013 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 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
@@ -91,7 +91,7 @@
         DeferredDiagnosticKind(String v) { value = v; }
         String getKey(String prefix) { return prefix + value; }
 
-        private final String value;
+        private String value;
     }
 
 
--- a/src/share/classes/com/sun/tools/javac/util/RichDiagnosticFormatter.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javac/util/RichDiagnosticFormatter.java	Wed Jan 09 18:58:20 2013 +0100
@@ -249,7 +249,7 @@
         INTERSECTION("where.description.intersection");
 
         /** resource key for this where clause kind */
-        private final String key;
+        private String key;
 
         WhereClauseKind(String key) {
             this.key = key;
--- a/src/share/classes/com/sun/tools/javadoc/AnnotationTypeDocImpl.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javadoc/AnnotationTypeDocImpl.java	Wed Jan 09 18:58:20 2013 +0100
@@ -27,13 +27,13 @@
 
 import com.sun.javadoc.*;
 
-import com.sun.source.util.TreePath;
 import com.sun.tools.javac.code.Kinds;
 import com.sun.tools.javac.code.Scope;
 import com.sun.tools.javac.code.Symbol.*;
 import com.sun.tools.javac.tree.JCTree.*;
 import com.sun.tools.javac.util.List;
 import com.sun.tools.javac.util.Names;
+import com.sun.tools.javac.util.Position;
 
 /**
  * Represents an annotation type.
@@ -51,11 +51,12 @@
         extends ClassDocImpl implements AnnotationTypeDoc {
 
     public AnnotationTypeDocImpl(DocEnv env, ClassSymbol sym) {
-        this(env, sym, null);
+        this(env, sym, null, null, null);
     }
 
-    public AnnotationTypeDocImpl(DocEnv env, ClassSymbol sym, TreePath treePath) {
-        super(env, sym, treePath);
+    public AnnotationTypeDocImpl(DocEnv env, ClassSymbol sym,
+                          String doc, JCClassDecl tree, Position.LineMap lineMap) {
+        super(env, sym, doc, tree, lineMap);
     }
 
     /**
--- a/src/share/classes/com/sun/tools/javadoc/AnnotationTypeElementDocImpl.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javadoc/AnnotationTypeElementDocImpl.java	Wed Jan 09 18:58:20 2013 +0100
@@ -27,9 +27,9 @@
 
 import com.sun.javadoc.*;
 
-import com.sun.source.util.TreePath;
 import com.sun.tools.javac.code.Symbol.*;
 import com.sun.tools.javac.tree.JCTree.*;
+import com.sun.tools.javac.util.Position;
 
 /**
  * Represents an element of an annotation type.
@@ -50,8 +50,9 @@
         super(env, sym);
     }
 
-    public AnnotationTypeElementDocImpl(DocEnv env, MethodSymbol sym, TreePath treePath) {
-        super(env, sym, treePath);
+    public AnnotationTypeElementDocImpl(DocEnv env, MethodSymbol sym,
+                                 String doc, JCMethodDecl tree, Position.LineMap lineMap) {
+        super(env, sym, doc, tree, lineMap);
     }
 
     /**
--- a/src/share/classes/com/sun/tools/javadoc/ClassDocImpl.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javadoc/ClassDocImpl.java	Wed Jan 09 18:58:20 2013 +0100
@@ -31,14 +31,13 @@
 import java.net.URI;
 import java.util.HashSet;
 import java.util.Set;
-
 import javax.tools.FileObject;
 import javax.tools.JavaFileManager.Location;
 import javax.tools.StandardJavaFileManager;
 import javax.tools.StandardLocation;
 
 import com.sun.javadoc.*;
-import com.sun.source.util.TreePath;
+
 import com.sun.tools.javac.code.Flags;
 import com.sun.tools.javac.code.Kinds;
 import com.sun.tools.javac.code.Scope;
@@ -46,17 +45,22 @@
 import com.sun.tools.javac.code.Symbol.*;
 import com.sun.tools.javac.code.Type;
 import com.sun.tools.javac.code.Type.ClassType;
+
 import com.sun.tools.javac.comp.AttrContext;
 import com.sun.tools.javac.comp.Env;
+
 import com.sun.tools.javac.tree.JCTree;
+import com.sun.tools.javac.tree.JCTree.JCClassDecl;
 import com.sun.tools.javac.tree.JCTree.JCFieldAccess;
 import com.sun.tools.javac.tree.JCTree.JCImport;
 import com.sun.tools.javac.tree.TreeInfo;
+
 import com.sun.tools.javac.util.List;
 import com.sun.tools.javac.util.ListBuffer;
 import com.sun.tools.javac.util.Name;
 import com.sun.tools.javac.util.Names;
 import com.sun.tools.javac.util.Position;
+
 import static com.sun.tools.javac.code.Kinds.*;
 import static com.sun.tools.javac.code.TypeTag.CLASS;
 import static com.sun.tools.javac.tree.JCTree.Tag.*;
@@ -96,14 +100,15 @@
      * Constructor
      */
     public ClassDocImpl(DocEnv env, ClassSymbol sym) {
-        this(env, sym, null);
+        this(env, sym, null, null, null);
     }
 
     /**
      * Constructor
      */
-    public ClassDocImpl(DocEnv env, ClassSymbol sym, TreePath treePath) {
-        super(env, sym, treePath);
+    public ClassDocImpl(DocEnv env, ClassSymbol sym, String documentation,
+                        JCClassDecl tree, Position.LineMap lineMap) {
+        super(env, sym, documentation, tree, lineMap);
         this.type = (ClassType)sym.type;
         this.tsym = sym;
     }
--- a/src/share/classes/com/sun/tools/javadoc/ConstructorDocImpl.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javadoc/ConstructorDocImpl.java	Wed Jan 09 18:58:20 2013 +0100
@@ -27,9 +27,10 @@
 
 import com.sun.javadoc.*;
 
-import com.sun.source.util.TreePath;
 import com.sun.tools.javac.code.Symbol.ClassSymbol;
 import com.sun.tools.javac.code.Symbol.MethodSymbol;
+import com.sun.tools.javac.tree.JCTree.JCMethodDecl;
+import com.sun.tools.javac.util.Position;
 
 /**
  * Represents a constructor of a java class.
@@ -57,8 +58,9 @@
     /**
      * constructor.
      */
-    public ConstructorDocImpl(DocEnv env, MethodSymbol sym, TreePath treePath) {
-        super(env, sym, treePath);
+    public ConstructorDocImpl(DocEnv env, MethodSymbol sym,
+                              String docComment, JCMethodDecl tree, Position.LineMap lineMap) {
+        super(env, sym, docComment, tree, lineMap);
     }
 
     /**
--- a/src/share/classes/com/sun/tools/javadoc/DocEnv.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javadoc/DocEnv.java	Wed Jan 09 18:58:20 2013 +0100
@@ -27,20 +27,18 @@
 
 import java.lang.reflect.Modifier;
 import java.util.*;
-
 import javax.tools.JavaFileManager;
 
 import com.sun.javadoc.*;
-import com.sun.source.util.TreePath;
-import com.sun.tools.javac.api.JavacTrees;
+
 import com.sun.tools.javac.code.*;
 import com.sun.tools.javac.code.Symbol.*;
 import com.sun.tools.javac.code.Type.ClassType;
 import com.sun.tools.javac.comp.Check;
-import com.sun.tools.javac.tree.JCTree;
 import com.sun.tools.javac.tree.JCTree.*;
 import com.sun.tools.javac.util.Context;
 import com.sun.tools.javac.util.Names;
+import com.sun.tools.javac.util.Position;
 
 /**
  * Holds the environment for a run of javadoc.
@@ -106,8 +104,6 @@
     JavaFileManager fileManager;
     Context context;
 
-    WeakHashMap<JCTree, TreePath> treePaths = new WeakHashMap<JCTree, TreePath>();
-
     /** Allow documenting from class files? */
     boolean docClasses = false;
 
@@ -544,12 +540,13 @@
     /**
      * Create the PackageDoc (or a subtype) for a package symbol.
      */
-    void makePackageDoc(PackageSymbol pack, TreePath treePath) {
+    void makePackageDoc(PackageSymbol pack, String docComment, JCCompilationUnit tree) {
         PackageDocImpl result = packageMap.get(pack);
         if (result != null) {
-            if (treePath != null) result.setTreePath(treePath);
+            if (docComment != null) result.setRawCommentText(docComment);
+            if (tree != null) result.setTree(tree);
         } else {
-            result = new PackageDocImpl(this, pack, treePath);
+            result = new PackageDocImpl(this, pack, docComment, tree);
             packageMap.put(pack, result);
         }
     }
@@ -575,16 +572,17 @@
     /**
      * Create the ClassDoc (or a subtype) for a class symbol.
      */
-    protected void makeClassDoc(ClassSymbol clazz, TreePath treePath) {
+    protected void makeClassDoc(ClassSymbol clazz, String docComment, JCClassDecl tree, Position.LineMap lineMap) {
         ClassDocImpl result = classMap.get(clazz);
         if (result != null) {
-            if (treePath != null) result.setTreePath(treePath);
+            if (docComment != null) result.setRawCommentText(docComment);
+            if (tree != null) result.setTree(tree);
             return;
         }
-        if (isAnnotationType((JCClassDecl) treePath.getLeaf())) {   // flags of clazz may not yet be set
-            result = new AnnotationTypeDocImpl(this, clazz, treePath);
+        if (isAnnotationType(tree)) {   // flags of clazz may not yet be set
+            result = new AnnotationTypeDocImpl(this, clazz, docComment, tree, lineMap);
         } else {
-            result = new ClassDocImpl(this, clazz, treePath);
+            result = new ClassDocImpl(this, clazz, docComment, tree, lineMap);
         }
         classMap.put(clazz, result);
     }
@@ -612,12 +610,13 @@
     /**
      * Create a FieldDoc for a var symbol.
      */
-    protected void makeFieldDoc(VarSymbol var, TreePath treePath) {
+    protected void makeFieldDoc(VarSymbol var, String docComment, JCVariableDecl tree, Position.LineMap lineMap) {
         FieldDocImpl result = fieldMap.get(var);
         if (result != null) {
-            if (treePath != null) result.setTreePath(treePath);
+            if (docComment != null) result.setRawCommentText(docComment);
+            if (tree != null) result.setTree(tree);
         } else {
-            result = new FieldDocImpl(this, var, treePath);
+            result = new FieldDocImpl(this, var, docComment, tree, lineMap);
             fieldMap.put(var, result);
         }
     }
@@ -628,12 +627,14 @@
      * Create a MethodDoc for this MethodSymbol.
      * Should be called only on symbols representing methods.
      */
-    protected void makeMethodDoc(MethodSymbol meth, TreePath treePath) {
+    protected void makeMethodDoc(MethodSymbol meth, String docComment,
+                       JCMethodDecl tree, Position.LineMap lineMap) {
         MethodDocImpl result = (MethodDocImpl)methodMap.get(meth);
         if (result != null) {
-            if (treePath != null) result.setTreePath(treePath);
+            if (docComment != null) result.setRawCommentText(docComment);
+            if (tree != null) result.setTree(tree);
         } else {
-            result = new MethodDocImpl(this, meth, treePath);
+            result = new MethodDocImpl(this, meth, docComment, tree, lineMap);
             methodMap.put(meth, result);
         }
     }
@@ -655,12 +656,14 @@
      * Create the ConstructorDoc for a MethodSymbol.
      * Should be called only on symbols representing constructors.
      */
-    protected void makeConstructorDoc(MethodSymbol meth, TreePath treePath) {
+    protected void makeConstructorDoc(MethodSymbol meth, String docComment,
+                            JCMethodDecl tree, Position.LineMap lineMap) {
         ConstructorDocImpl result = (ConstructorDocImpl)methodMap.get(meth);
         if (result != null) {
-            if (treePath != null) result.setTreePath(treePath);
+            if (docComment != null) result.setRawCommentText(docComment);
+            if (tree != null) result.setTree(tree);
         } else {
-            result = new ConstructorDocImpl(this, meth, treePath);
+            result = new ConstructorDocImpl(this, meth, docComment, tree, lineMap);
             methodMap.put(meth, result);
         }
     }
@@ -682,14 +685,16 @@
      * Create the AnnotationTypeElementDoc for a MethodSymbol.
      * Should be called only on symbols representing annotation type elements.
      */
-    protected void makeAnnotationTypeElementDoc(MethodSymbol meth, TreePath treePath) {
+    protected void makeAnnotationTypeElementDoc(MethodSymbol meth,
+                                      String docComment, JCMethodDecl tree, Position.LineMap lineMap) {
         AnnotationTypeElementDocImpl result =
             (AnnotationTypeElementDocImpl)methodMap.get(meth);
         if (result != null) {
-            if (treePath != null) result.setTreePath(treePath);
+            if (docComment != null) result.setRawCommentText(docComment);
+            if (tree != null) result.setTree(tree);
         } else {
             result =
-                new AnnotationTypeElementDocImpl(this, meth, treePath);
+                new AnnotationTypeElementDocImpl(this, meth, docComment, tree, lineMap);
             methodMap.put(meth, result);
         }
     }
@@ -725,18 +730,6 @@
 //      return result;
     }
 
-    TreePath getTreePath(JCCompilationUnit tree) {
-        TreePath p = treePaths.get(tree);
-        if (p == null)
-            treePaths.put(tree, p = new TreePath(tree));
-        return p;
-    }
-
-    TreePath getTreePath(JCCompilationUnit toplevel, JCTree tree) {
-        // don't bother to cache paths for classes and members
-        return new TreePath(getTreePath(toplevel), tree);
-    }
-
     /**
      * Set the encoding.
      */
--- a/src/share/classes/com/sun/tools/javadoc/DocImpl.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javadoc/DocImpl.java	Wed Jan 09 18:58:20 2013 +0100
@@ -35,9 +35,6 @@
 import javax.tools.FileObject;
 
 import com.sun.javadoc.*;
-import com.sun.source.util.TreePath;
-import com.sun.tools.javac.tree.JCTree;
-import com.sun.tools.javac.tree.JCTree.JCCompilationUnit;
 import com.sun.tools.javac.util.Position;
 
 /**
@@ -64,12 +61,6 @@
     protected final DocEnv env;   //### Rename this everywhere to 'docenv' ?
 
     /**
-     * Back pointer to the tree node for this doc item.
-     * May be null if there is no associated tree.
-     */
-    protected TreePath treePath;
-
-    /**
      *  The complex comment object, lazily initialized.
      */
     private Comment comment;
@@ -97,21 +88,11 @@
     /**
      * Constructor.
      */
-    DocImpl(DocEnv env, TreePath treePath) {
-        this.treePath = treePath;
-        this.documentation = getCommentText(treePath);
+    DocImpl(DocEnv env, String documentation) {
+        this.documentation = documentation;
         this.env = env;
     }
 
-    private static String getCommentText(TreePath p) {
-        if (p == null)
-            return null;
-
-        JCCompilationUnit topLevel = (JCCompilationUnit) p.getCompilationUnit();
-        JCTree tree = (JCTree) p.getLeaf();
-        return topLevel.docComments.getCommentText(tree);
-    }
-
     /**
      * So subclasses have the option to do lazy initialization of
      * "documentation" string.
@@ -232,21 +213,11 @@
      * operations like internalization.
      */
     public void setRawCommentText(String rawDocumentation) {
-        treePath = null;
         documentation = rawDocumentation;
         comment = null;
     }
 
     /**
-     * Set the full unprocessed text of the comment and tree path.
-     */
-    void setTreePath(TreePath treePath) {
-        this.treePath = treePath;
-        documentation = getCommentText(treePath);
-        comment = null;
-    }
-
-    /**
      * return a key for sorting.
      */
     CollationKey key() {
--- a/src/share/classes/com/sun/tools/javadoc/ExecutableMemberDocImpl.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javadoc/ExecutableMemberDocImpl.java	Wed Jan 09 18:58:20 2013 +0100
@@ -30,12 +30,13 @@
 
 import com.sun.javadoc.*;
 
-import com.sun.source.util.TreePath;
 import com.sun.tools.javac.code.Flags;
 import com.sun.tools.javac.code.Symbol.*;
 import com.sun.tools.javac.code.Type;
+import com.sun.tools.javac.tree.JCTree.JCMethodDecl;
 import com.sun.tools.javac.util.List;
 import com.sun.tools.javac.util.ListBuffer;
+import com.sun.tools.javac.util.Position;
 
 /**
  * Represents a method or constructor of a java class.
@@ -59,8 +60,9 @@
     /**
      * Constructor.
      */
-    public ExecutableMemberDocImpl(DocEnv env, MethodSymbol sym, TreePath treePath) {
-        super(env, sym, treePath);
+    public ExecutableMemberDocImpl(DocEnv env, MethodSymbol sym,
+                                   String rawDocs, JCMethodDecl tree, Position.LineMap lineMap) {
+        super(env, sym, rawDocs, tree, lineMap);
         this.sym = sym;
     }
 
@@ -68,7 +70,7 @@
      * Constructor.
      */
     public ExecutableMemberDocImpl(DocEnv env, MethodSymbol sym) {
-        this(env, sym, null);
+        this(env, sym, null, null, null);
     }
 
     /**
--- a/src/share/classes/com/sun/tools/javadoc/FieldDocImpl.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javadoc/FieldDocImpl.java	Wed Jan 09 18:58:20 2013 +0100
@@ -25,7 +25,6 @@
 
 package com.sun.tools.javadoc;
 
-import com.sun.source.util.TreePath;
 import java.lang.reflect.Modifier;
 
 import com.sun.javadoc.*;
@@ -62,8 +61,9 @@
     /**
      * Constructor.
      */
-    public FieldDocImpl(DocEnv env, VarSymbol sym, TreePath treePath) {
-        super(env, sym, treePath);
+    public FieldDocImpl(DocEnv env, VarSymbol sym,
+                        String rawDocs, JCVariableDecl tree, Position.LineMap lineMap) {
+        super(env, sym, rawDocs, tree, lineMap);
         this.sym = sym;
     }
 
@@ -71,7 +71,7 @@
      * Constructor.
      */
     public FieldDocImpl(DocEnv env, VarSymbol sym) {
-        this(env, sym, null);
+        this(env, sym, null, null, null);
     }
 
     /**
--- a/src/share/classes/com/sun/tools/javadoc/JavadocEnter.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javadoc/JavadocEnter.java	Wed Jan 09 18:58:20 2013 +0100
@@ -25,14 +25,13 @@
 
 package com.sun.tools.javadoc;
 
-
 import javax.tools.JavaFileObject;
 
-import com.sun.source.util.TreePath;
 import com.sun.tools.javac.code.Kinds;
 import com.sun.tools.javac.code.Symbol.*;
 import com.sun.tools.javac.comp.Enter;
 import com.sun.tools.javac.tree.JCTree.*;
+import com.sun.tools.javac.tree.TreeInfo;
 import com.sun.tools.javac.util.Context;
 import com.sun.tools.javac.util.JCDiagnostic.DiagnosticPosition;
 import com.sun.tools.javac.util.List;
@@ -86,7 +85,8 @@
     public void visitTopLevel(JCCompilationUnit tree) {
         super.visitTopLevel(tree);
         if (tree.sourcefile.isNameCompatible("package-info", JavaFileObject.Kind.SOURCE)) {
-            docenv.makePackageDoc(tree.packge, docenv.getTreePath(tree));
+            String comment = TreeInfo.getCommentText(env, tree);
+            docenv.makePackageDoc(tree.packge, comment, tree);
         }
     }
 
@@ -95,8 +95,9 @@
         super.visitClassDef(tree);
         if (tree.sym == null) return;
         if (tree.sym.kind == Kinds.TYP || tree.sym.kind == Kinds.ERR) {
+            String comment = TreeInfo.getCommentText(env, tree);
             ClassSymbol c = tree.sym;
-            docenv.makeClassDoc(c, docenv.getTreePath(env.toplevel, tree));
+            docenv.makeClassDoc(c, comment, tree, env.toplevel.lineMap);
         }
     }
 
--- a/src/share/classes/com/sun/tools/javadoc/JavadocMemberEnter.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javadoc/JavadocMemberEnter.java	Wed Jan 09 18:58:20 2013 +0100
@@ -25,13 +25,14 @@
 
 package com.sun.tools.javadoc;
 
-import com.sun.source.util.TreePath;
 import com.sun.tools.javac.code.Flags;
 import com.sun.tools.javac.code.Kinds;
 import com.sun.tools.javac.code.Symbol.*;
 import com.sun.tools.javac.comp.MemberEnter;
 import com.sun.tools.javac.tree.JCTree.*;
+import com.sun.tools.javac.tree.TreeInfo;
 import com.sun.tools.javac.util.Context;
+import com.sun.tools.javac.util.Position;
 
 /**
  *  Javadoc's own memberEnter phase does a few things above and beyond that
@@ -72,13 +73,14 @@
         super.visitMethodDef(tree);
         MethodSymbol meth = tree.sym;
         if (meth == null || meth.kind != Kinds.MTH) return;
-        TreePath treePath = docenv.getTreePath(env.toplevel, tree);
+        String docComment = TreeInfo.getCommentText(env, tree);
+        Position.LineMap lineMap = env.toplevel.lineMap;
         if (meth.isConstructor())
-            docenv.makeConstructorDoc(meth, treePath);
+            docenv.makeConstructorDoc(meth, docComment, tree, lineMap);
         else if (isAnnotationTypeElement(meth))
-            docenv.makeAnnotationTypeElementDoc(meth, treePath);
+            docenv.makeAnnotationTypeElementDoc(meth, docComment, tree, lineMap);
         else
-            docenv.makeMethodDoc(meth, treePath);
+            docenv.makeMethodDoc(meth, docComment, tree, lineMap);
 
         // release resources
         tree.body = null;
@@ -90,7 +92,9 @@
         if (tree.sym != null &&
                 tree.sym.kind == Kinds.VAR &&
                 !isParameter(tree.sym)) {
-            docenv.makeFieldDoc(tree.sym, docenv.getTreePath(env.toplevel, tree));
+            String docComment = TreeInfo.getCommentText(env, tree);
+            Position.LineMap lineMap = env.toplevel.lineMap;
+            docenv.makeFieldDoc(tree.sym, docComment, tree, lineMap);
         }
     }
 
--- a/src/share/classes/com/sun/tools/javadoc/MemberDocImpl.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javadoc/MemberDocImpl.java	Wed Jan 09 18:58:20 2013 +0100
@@ -27,8 +27,9 @@
 
 import com.sun.javadoc.*;
 
-import com.sun.source.util.TreePath;
 import com.sun.tools.javac.code.Symbol;
+import com.sun.tools.javac.tree.JCTree;
+import com.sun.tools.javac.util.Position;
 
 /**
  * Represents a member of a java class: field, constructor, or method.
@@ -56,8 +57,8 @@
     /**
      * constructor.
      */
-    public MemberDocImpl(DocEnv env, Symbol sym, TreePath treePath) {
-        super(env, sym, treePath);
+    public MemberDocImpl(DocEnv env, Symbol sym, String doc, JCTree tree, Position.LineMap lineMap) {
+        super(env, sym, doc, tree, lineMap);
     }
 
     /**
--- a/src/share/classes/com/sun/tools/javadoc/MethodDocImpl.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javadoc/MethodDocImpl.java	Wed Jan 09 18:58:20 2013 +0100
@@ -28,10 +28,12 @@
 import java.lang.reflect.Modifier;
 
 import com.sun.javadoc.*;
-import com.sun.source.util.TreePath;
 import com.sun.tools.javac.code.*;
 import com.sun.tools.javac.code.Symbol.*;
 import com.sun.tools.javac.code.Type;
+import com.sun.tools.javac.tree.JCTree.JCMethodDecl;
+import com.sun.tools.javac.util.Position;
+
 import static com.sun.tools.javac.code.TypeTag.CLASS;
 
 /**
@@ -60,8 +62,9 @@
     /**
      * constructor.
      */
-    public MethodDocImpl(DocEnv env, MethodSymbol sym, TreePath treePath) {
-        super(env, sym, treePath);
+    public MethodDocImpl(DocEnv env, MethodSymbol sym,
+                         String docComment, JCMethodDecl tree, Position.LineMap lineMap) {
+        super(env, sym, docComment, tree, lineMap);
     }
 
     /**
@@ -84,13 +87,6 @@
     }
 
     /**
-     * Return true if this method is default
-     */
-    public boolean isDefault() {
-        return (sym.flags() & Flags.DEFAULT) != 0;
-    }
-
-    /**
      * Return true if this method is abstract
      */
     public boolean isAbstract() {
--- a/src/share/classes/com/sun/tools/javadoc/PackageDocImpl.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javadoc/PackageDocImpl.java	Wed Jan 09 18:58:20 2013 +0100
@@ -31,7 +31,6 @@
 import javax.tools.FileObject;
 
 import com.sun.javadoc.*;
-import com.sun.source.util.TreePath;
 import com.sun.tools.javac.code.Attribute;
 import com.sun.tools.javac.code.Scope;
 import com.sun.tools.javac.code.Symbol.ClassSymbol;
@@ -76,16 +75,17 @@
      * Constructor
      */
     public PackageDocImpl(DocEnv env, PackageSymbol sym) {
-        this(env, sym, null);
+        this(env, sym, null, null);
     }
 
     /**
      * Constructor
      */
-    public PackageDocImpl(DocEnv env, PackageSymbol sym, TreePath treePath) {
-        super(env, treePath);
+    public PackageDocImpl(DocEnv env, PackageSymbol sym,
+                          String documentation, JCTree tree) {
+        super(env, documentation);
         this.sym = sym;
-        this.tree = (treePath == null) ? null : (JCCompilationUnit) treePath.getCompilationUnit();
+        this.tree = (JCCompilationUnit) tree;
         foundDoc = (documentation != null);
     }
 
@@ -93,8 +93,8 @@
         this.tree = (JCCompilationUnit) tree;
     }
 
-    public void setTreePath(TreePath treePath) {
-        super.setTreePath(treePath);
+    public void setRawCommentText(String rawDocumentation) {
+        super.setRawCommentText(rawDocumentation);
         checkDoc();
     }
 
@@ -288,9 +288,9 @@
      * Return an empty array if there are none.
      */
     public AnnotationDesc[] annotations() {
-        AnnotationDesc res[] = new AnnotationDesc[sym.getRawAttributes().length()];
+        AnnotationDesc res[] = new AnnotationDesc[sym.getAnnotationMirrors().length()];
         int i = 0;
-        for (Attribute.Compound a : sym.getRawAttributes()) {
+        for (Attribute.Compound a : sym.getAnnotationMirrors()) {
             res[i++] = new AnnotationDescImpl(env, a);
         }
         return res;
--- a/src/share/classes/com/sun/tools/javadoc/ParameterImpl.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javadoc/ParameterImpl.java	Wed Jan 09 18:58:20 2013 +0100
@@ -99,9 +99,9 @@
      * Return an empty array if there are none.
      */
     public AnnotationDesc[] annotations() {
-        AnnotationDesc res[] = new AnnotationDesc[sym.getRawAttributes().length()];
+        AnnotationDesc res[] = new AnnotationDesc[sym.getAnnotationMirrors().length()];
         int i = 0;
-        for (Attribute.Compound a : sym.getRawAttributes()) {
+        for (Attribute.Compound a : sym.getAnnotationMirrors()) {
             res[i++] = new AnnotationDescImpl(env, a);
         }
         return res;
--- a/src/share/classes/com/sun/tools/javadoc/ProgramElementDocImpl.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javadoc/ProgramElementDocImpl.java	Wed Jan 09 18:58:20 2013 +0100
@@ -29,12 +29,10 @@
 import java.text.CollationKey;
 
 import com.sun.javadoc.*;
-import com.sun.source.util.TreePath;
 import com.sun.tools.javac.code.Attribute;
 import com.sun.tools.javac.code.Symbol;
 import com.sun.tools.javac.code.Symbol.ClassSymbol;
 import com.sun.tools.javac.tree.JCTree;
-import com.sun.tools.javac.tree.JCTree.JCCompilationUnit;
 import com.sun.tools.javac.util.Position;
 
 /**
@@ -68,20 +66,16 @@
     // Cache for getModifiers().
     private int modifiers = -1;
 
-    protected ProgramElementDocImpl(DocEnv env, Symbol sym, TreePath treePath) {
-        super(env, treePath);
+    protected ProgramElementDocImpl(DocEnv env, Symbol sym,
+                                    String doc, JCTree tree, Position.LineMap lineMap) {
+        super(env, doc);
         this.sym = sym;
-        if (treePath != null) {
-            tree = (JCTree) treePath.getLeaf();
-            lineMap = ((JCCompilationUnit) treePath.getCompilationUnit()).lineMap;
-        }
+        this.tree = tree;
+        this.lineMap = lineMap;
     }
 
-    @Override
-    void setTreePath(TreePath treePath) {
-        super.setTreePath(treePath);
-        this.tree = (JCTree) treePath.getLeaf();
-        this.lineMap = ((JCCompilationUnit) treePath.getCompilationUnit()).lineMap;
+    void setTree(JCTree tree) {
+        this.tree = tree;
     }
 
     /**
@@ -164,9 +158,9 @@
      * Return an empty array if there are none.
      */
     public AnnotationDesc[] annotations() {
-        AnnotationDesc res[] = new AnnotationDesc[sym.getRawAttributes().length()];
+        AnnotationDesc res[] = new AnnotationDesc[sym.getAnnotationMirrors().length()];
         int i = 0;
-        for (Attribute.Compound a : sym.getRawAttributes()) {
+        for (Attribute.Compound a : sym.getAnnotationMirrors()) {
             res[i++] = new AnnotationDescImpl(env, a);
         }
         return res;
--- a/src/share/classes/com/sun/tools/javadoc/RootDocImpl.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javadoc/RootDocImpl.java	Wed Jan 09 18:58:20 2013 +0100
@@ -331,6 +331,7 @@
     @Override
     protected String documentation() {
         if (documentation == null) {
+            int cnt = options.length();
             JavaFileObject overviewPath = getOverviewPath();
             if (overviewPath == null) {
                 // no doc file to be had
--- a/src/share/classes/com/sun/tools/javah/JavahTask.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javah/JavahTask.java	Wed Jan 09 18:58:20 2013 +0100
@@ -147,7 +147,7 @@
         }
     }
 
-    static final Option[] recognizedOptions = {
+    static Option[] recognizedOptions = {
         new Option(true, "-o") {
             void process(JavahTask task, String opt, String arg) {
                 task.ofile = new File(arg);
--- a/src/share/classes/com/sun/tools/javap/JavapTask.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/com/sun/tools/javap/JavapTask.java	Wed Jan 09 18:58:20 2013 +0100
@@ -117,7 +117,7 @@
         final String[] aliases;
     }
 
-    static final Option[] recognizedOptions = {
+    static Option[] recognizedOptions = {
 
         new Option(false, "-help", "--help", "-?") {
             void process(JavapTask task, String opt, String arg) {
--- a/src/share/classes/javax/lang/model/element/ExecutableElement.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/javax/lang/model/element/ExecutableElement.java	Wed Jan 09 18:58:20 2013 +0100
@@ -78,16 +78,6 @@
     boolean isVarArgs();
 
     /**
-     * Returns {@code true} if this method is a default method and
-     * returns {@code false} otherwise.
-     *
-     * @return {@code true} if this method is a default method and
-     * {@code false} otherwise
-     * @since 1.8
-     */
-    boolean isDefault();
-
-    /**
      * Returns the exceptions and other throwables listed in this
      * method or constructor's {@code throws} clause in declaration
      * order.
--- a/src/share/classes/javax/lang/model/element/Modifier.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/javax/lang/model/element/Modifier.java	Wed Jan 09 18:58:20 2013 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 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
@@ -61,10 +61,16 @@
     /** The modifier {@code native} */          NATIVE,
     /** The modifier {@code strictfp} */        STRICTFP;
 
+
+    private String lowercase = null;    // modifier name in lowercase
+
     /**
      * Returns this modifier's name in lowercase.
      */
     public String toString() {
-        return name().toLowerCase(java.util.Locale.US);
+        if (lowercase == null) {
+           lowercase = name().toLowerCase(java.util.Locale.US);
+        }
+        return lowercase;
     }
 }
--- a/src/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor7.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor7.java	Wed Jan 09 18:58:20 2013 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2011 Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
--- a/src/share/classes/javax/lang/model/util/AbstractTypeVisitor8.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/javax/lang/model/util/AbstractTypeVisitor8.java	Wed Jan 09 18:58:20 2013 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * 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
--- a/src/share/classes/javax/lang/model/util/ElementFilter.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/javax/lang/model/util/ElementFilter.java	Wed Jan 09 18:58:20 2013 +0100
@@ -66,19 +66,19 @@
 public class ElementFilter {
     private ElementFilter() {} // Do not instantiate.
 
-    private static final Set<ElementKind> CONSTRUCTOR_KIND =
+    private static Set<ElementKind> CONSTRUCTOR_KIND =
         Collections.unmodifiableSet(EnumSet.of(ElementKind.CONSTRUCTOR));
 
-    private static final Set<ElementKind> FIELD_KINDS =
+    private static Set<ElementKind> FIELD_KINDS =
         Collections.unmodifiableSet(EnumSet.of(ElementKind.FIELD,
                                                ElementKind.ENUM_CONSTANT));
-    private static final Set<ElementKind> METHOD_KIND =
+    private static Set<ElementKind> METHOD_KIND =
         Collections.unmodifiableSet(EnumSet.of(ElementKind.METHOD));
 
-    private static final Set<ElementKind> PACKAGE_KIND =
+    private static Set<ElementKind> PACKAGE_KIND =
         Collections.unmodifiableSet(EnumSet.of(ElementKind.PACKAGE));
 
-    private static final Set<ElementKind> TYPE_KINDS =
+    private static Set<ElementKind> TYPE_KINDS =
         Collections.unmodifiableSet(EnumSet.of(ElementKind.CLASS,
                                                ElementKind.ENUM,
                                                ElementKind.INTERFACE,
--- a/src/share/classes/javax/lang/model/util/ElementKindVisitor8.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/javax/lang/model/util/ElementKindVisitor8.java	Wed Jan 09 18:58:20 2013 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * 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
--- a/src/share/classes/javax/tools/StandardLocation.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/src/share/classes/javax/tools/StandardLocation.java	Wed Jan 09 18:58:20 2013 +0100
@@ -97,7 +97,7 @@
         return locations.get(name);
     }
     //where
-        private static final ConcurrentMap<String,Location> locations
+        private static ConcurrentMap<String,Location> locations
             = new ConcurrentHashMap<String,Location>();
 
     public String getName() { return name(); }
--- a/test/com/sun/javadoc/testHtmlTableTags/TestHtmlTableTags.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/test/com/sun/javadoc/testHtmlTableTags/TestHtmlTableTags.java	Wed Jan 09 18:58:20 2013 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009, 2012, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -207,7 +207,7 @@
             "Instance Methods</a></span><span class=\"tabEnd\">&nbsp;</span></span>" +
             "<span id=\"t4\" class=\"tableTab\"><span><a href=\"javascript:show(8);\">" +
             "Concrete Methods</a></span><span class=\"tabEnd\">&nbsp;</span></span>" +
-            "<span id=\"t6\" class=\"tableTab\"><span><a href=\"javascript:show(32);\">" +
+            "<span id=\"t5\" class=\"tableTab\"><span><a href=\"javascript:show(16);\">" +
             "Deprecated Methods</a></span><span class=\"tabEnd\">&nbsp;</span></span>" +
             "</caption>"
         },
--- a/test/com/sun/javadoc/testLambdaFeature/TestLambdaFeature.java	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,102 +0,0 @@
-/*
- * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-/*
- * @test
- * @bug      8004893
- * @summary  Make sure that the lambda feature changes work fine in
- *           javadoc.
- * @author   bpatel
- * @library  ../lib/
- * @build    JavadocTester TestLambdaFeature
- * @run main TestLambdaFeature
- */
-
-public class TestLambdaFeature extends JavadocTester {
-
-    //Test information.
-    private static final String BUG_ID = "8004893";
-
-    //Javadoc arguments.
-    private static final String[] ARGS = new String[] {
-        "-d", BUG_ID, "-sourcepath", SRC_DIR, "pkg"
-    };
-
-    //Input for string search tests.
-    private static final String[][] TEST = {
-        {BUG_ID + FS + "pkg" + FS + "A.html",
-            "<td class=\"colFirst\"><code>default void</code></td>"},
-        {BUG_ID + FS + "pkg" + FS + "A.html",
-            "<pre>default&nbsp;void&nbsp;defaultMethod()</pre>"},
-        {BUG_ID + FS + "pkg" + FS + "A.html",
-            "<caption><span id=\"t0\" class=\"activeTableTab\"><span>" +
-            "All Methods</span><span class=\"tabEnd\">&nbsp;</span></span>" +
-            "<span id=\"t2\" class=\"tableTab\"><span>" +
-            "<a href=\"javascript:show(2);\">Instance Methods</a></span>" +
-            "<span class=\"tabEnd\">&nbsp;</span></span><span id=\"t3\" " +
-            "class=\"tableTab\"><span><a href=\"javascript:show(4);\">" +
-            "Abstract Methods</a></span><span class=\"tabEnd\">&nbsp;</span>" +
-            "</span><span id=\"t5\" class=\"tableTab\"><span>" +
-            "<a href=\"javascript:show(16);\">Default Methods</a></span>" +
-            "<span class=\"tabEnd\">&nbsp;</span></span></caption>"},
-        {BUG_ID + FS + "pkg" + FS + "A.html",
-            "<dl>" + NL + "<dt>Functional Interface:</dt>" + NL +
-            "<dd>This is a functional interface and can therefore be used as " +
-            "the assignment target for a lambda expression or method " +
-            "reference. </dd>" + NL + "</dl>"}
-    };
-    private static final String[][] NEGATED_TEST = {
-        {BUG_ID + FS + "pkg" + FS + "A.html",
-            "<td class=\"colFirst\"><code>default default void</code></td>"},
-        {BUG_ID + FS + "pkg" + FS + "A.html",
-            "<pre>default&nbsp;default&nbsp;void&nbsp;defaultMethod()</pre>"},
-        {BUG_ID + FS + "pkg" + FS + "B.html",
-            "<td class=\"colFirst\"><code>default void</code></td>"},
-        {BUG_ID + FS + "pkg" + FS + "B.html",
-            "<dl>" + NL + "<dt>Functional Interface:</dt>"}
-    };
-
-    /**
-     * The entry point of the test.
-     * @param args the array of command line arguments.
-     */
-    public static void main(String[] args) {
-        TestLambdaFeature tester = new TestLambdaFeature();
-        run(tester, ARGS, TEST, NEGATED_TEST);
-        tester.printSummary();
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public String getBugId() {
-        return BUG_ID;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    public String getBugName() {
-        return getClass().getName();
-    }
-}
--- a/test/com/sun/javadoc/testLambdaFeature/pkg/A.java	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-/*
- * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package pkg;
-
-public interface A {
-
-    public void method1();
-
-    public default void defaultMethod() { }
-}
--- a/test/com/sun/javadoc/testLambdaFeature/pkg/B.java	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-/*
- * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package pkg;
-
-public abstract class B {
-
-    public abstract void method1();
-
-    public void method2() { }
-}
--- a/test/com/sun/javadoc/testMethodTypes/TestMethodTypes.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/test/com/sun/javadoc/testMethodTypes/TestMethodTypes.java	Wed Jan 09 18:58:20 2013 +0100
@@ -55,7 +55,7 @@
             "Instance Methods</a></span><span class=\"tabEnd\">&nbsp;</span></span>" +
             "<span id=\"t4\" class=\"tableTab\"><span><a href=\"javascript:show(8);\">" +
             "Concrete Methods</a></span><span class=\"tabEnd\">&nbsp;</span></span>" +
-            "<span id=\"t6\" class=\"tableTab\"><span><a href=\"javascript:show(32);\">" +
+            "<span id=\"t5\" class=\"tableTab\"><span><a href=\"javascript:show(16);\">" +
             "Deprecated Methods</a></span><span class=\"tabEnd\">&nbsp;</span></span>" +
             "</caption>"
         },
@@ -87,7 +87,7 @@
             "Abstract Methods</a></span><span class=\"tabEnd\">&nbsp;</span></span>" +
             "<span id=\"t4\" class=\"tableTab\"><span><a href=\"javascript:show(8);\">" +
             "Concrete Methods</a></span><span class=\"tabEnd\">&nbsp;</span></span>" +
-            "<span id=\"t6\" class=\"tableTab\"><span><a href=\"javascript:show(32);\">" +
+            "<span id=\"t5\" class=\"tableTab\"><span><a href=\"javascript:show(16);\">" +
             "Deprecated Methods</a></span><span class=\"tabEnd\">&nbsp;</span></span>" +
             "</caption>"
         },
--- a/test/tools/doclint/AccessTest.java	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,65 +0,0 @@
-/*
- * @test /nodynamiccopyright/
- * @bug 8004832
- * @summary Add new doclint package
- * @build DocLintTester
- * @run main DocLintTester -ref AccessTest.protected.out AccessTest.java
- * @run main DocLintTester -Xmsgs -ref AccessTest.private.out AccessTest.java
- * @run main DocLintTester -Xmsgs:syntax -ref AccessTest.private.out AccessTest.java
- * @run main DocLintTester -Xmsgs:syntax/public -ref AccessTest.public.out AccessTest.java
- * @run main DocLintTester -Xmsgs:syntax/protected -ref AccessTest.protected.out AccessTest.java
- * @run main DocLintTester -Xmsgs:syntax/package -ref AccessTest.package.out AccessTest.java
- * @run main DocLintTester -Xmsgs:syntax/private -ref AccessTest.private.out AccessTest.java
- * @run main DocLintTester -Xmsgs:all,-syntax AccessTest.java
- * @run main DocLintTester -Xmsgs:all,-syntax/public AccessTest.java
- * @run main DocLintTester -Xmsgs:all,-syntax/protected -ref AccessTest.public.out AccessTest.java
- * @run main DocLintTester -Xmsgs:all,-syntax/package -ref AccessTest.protected.out AccessTest.java
- * @run main DocLintTester -Xmsgs:all,-syntax/private -ref AccessTest.package.out AccessTest.java
- */
-
-/** */
-public class AccessTest {
-    /**
-     * public a < b
-     */
-    public void public_syntax_error() { }
-
-    /**
-     * protected a < b
-     */
-    protected void protected_syntax_error() { }
-
-    /**
-     * package-private a < b
-     */
-    void syntax_error() { }
-
-    /**
-     * private a < b
-     */
-    private void private_syntax_error() { }
-}
-
-/** */
-class AccessTest2 {
-    /**
-     * public a < b
-     */
-    public void public_syntax_error() { }
-
-    /**
-     * protected a < b
-     */
-    protected void protected_syntax_error() { }
-
-    /**
-     * package-private a < b
-     */
-    void syntax_error() { }
-
-    /**
-     * private a < b
-     */
-    private void private_syntax_error() { }
-}
-
--- a/test/tools/doclint/AccessTest.package.out	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-AccessTest.java:23: error: malformed HTML
-     * public a < b
-                ^
-AccessTest.java:28: error: malformed HTML
-     * protected a < b
-                   ^
-AccessTest.java:33: error: malformed HTML
-     * package-private a < b
-                         ^
-AccessTest.java:46: error: malformed HTML
-     * public a < b
-                ^
-AccessTest.java:51: error: malformed HTML
-     * protected a < b
-                   ^
-AccessTest.java:56: error: malformed HTML
-     * package-private a < b
-                         ^
-6 errors
-
--- a/test/tools/doclint/AccessTest.private.out	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-AccessTest.java:23: error: malformed HTML
-     * public a < b
-                ^
-AccessTest.java:28: error: malformed HTML
-     * protected a < b
-                   ^
-AccessTest.java:33: error: malformed HTML
-     * package-private a < b
-                         ^
-AccessTest.java:38: error: malformed HTML
-     * private a < b
-                 ^
-AccessTest.java:46: error: malformed HTML
-     * public a < b
-                ^
-AccessTest.java:51: error: malformed HTML
-     * protected a < b
-                   ^
-AccessTest.java:56: error: malformed HTML
-     * package-private a < b
-                         ^
-AccessTest.java:61: error: malformed HTML
-     * private a < b
-                 ^
-8 errors
-
-
--- a/test/tools/doclint/AccessTest.protected.out	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-AccessTest.java:23: error: malformed HTML
-     * public a < b
-                ^
-AccessTest.java:28: error: malformed HTML
-     * protected a < b
-                   ^
-2 errors
-
--- a/test/tools/doclint/AccessTest.public.out	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-AccessTest.java:23: error: malformed HTML
-     * public a < b
-                ^
-1 error
-
--- a/test/tools/doclint/AccessibilityTest.java	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-/*
- * @test /nodynamiccopyright/
- * @bug 8004832
- * @summary Add new doclint package
- * @build DocLintTester
- * @run main DocLintTester -Xmsgs:-accessibility AccessibilityTest.java
- * @run main DocLintTester -ref AccessibilityTest.out AccessibilityTest.java
- */
-
-/** */
-public class AccessibilityTest {
-
-    /**
-     * <h2> ... </h2>
-     */
-    public void missing_h1() { }
-
-    /**
-     * <h1> ... </h1>
-     * <h3> ... </h3>
-     */
-    public void missing_h2() { }
-
-    /**
-     * <img src="x.jpg">
-     */
-    public void missing_alt() { }
-
-    /**
-     * <table summary="ok"><tr><th>head<tr><td>data</table>
-     */
-    public void table_with_summary() { }
-
-    /**
-     * <table><caption>ok</caption><tr><th>head<tr><td>data</table>
-     */
-    public void table_with_caption() { }
-
-    /**
-     * <table><tr><th>head<tr><td>data</table>
-     */
-    public void table_without_summary_and_caption() { }
-}
-
--- a/test/tools/doclint/AccessibilityTest.out	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-AccessibilityTest.java:14: error: header used out of sequence: <H2>
-     * <h2> ... </h2>
-       ^
-AccessibilityTest.java:20: error: header used out of sequence: <H3>
-     * <h3> ... </h3>
-       ^
-AccessibilityTest.java:25: error: no "alt" attribute for image
-     * <img src="x.jpg">
-       ^
-AccessibilityTest.java:40: error: no summary or caption for table
-     * <table><tr><th>head<tr><td>data</table>
-                                      ^
-4 errors
--- a/test/tools/doclint/DocLintTester.java	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,135 +0,0 @@
-/*
- * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import com.sun.tools.doclint.DocLint;
-import java.io.BufferedReader;
-import java.io.FileReader;
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.io.Reader;
-import java.io.StringWriter;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-
-public class DocLintTester {
-
-    public static void main(String... args) throws Exception {
-        new DocLintTester().run(args);
-    }
-
-    public void run(String... args) throws Exception {
-        String testSrc = System.getProperty("test.src");
-
-        File refFile = null;
-        List<String> opts = new ArrayList<String>();
-        List<File> files = new ArrayList<File>();
-        for (int i = 0; i < args.length; i++) {
-            String arg = args[i];
-            if (arg.equals("-ref")) {
-                refFile = new File(testSrc, args[++i]);
-            } else if (arg.startsWith("-Xmsgs")) {
-                opts.add(arg);
-            } else
-                files.add(new File(testSrc, arg));
-        }
-
-        check(opts, files, refFile);
-
-        if (errors > 0)
-            throw new Exception(errors + " errors occurred");
-    }
-
-    void check(List<String> opts, List<File> files, File refFile) throws Exception {
-        List<String> args = new ArrayList<String>();
-        args.addAll(opts);
-        for (File file: files)
-            args.add(file.getPath());
-
-        StringWriter sw = new StringWriter();
-        PrintWriter pw = new PrintWriter(sw);
-        new DocLint().run(pw, args.toArray(new String[args.size()]));
-        pw.flush();
-        String out = normalizeNewlines(removeFileNames(sw.toString())).trim();
-        if (out != null)
-            System.err.println("Output:\n" + out);
-
-        if (refFile == null) {
-            if (!out.isEmpty())
-                error("unexpected output");
-        } else {
-            String expect = readFile(refFile);
-            if (!expect.equals(out)) {
-                error("expected output not found");
-                System.err.println("EXPECT>>" + expect + "<<");
-                System.err.println(" FOUND>>" + out    + "<<");
-            }
-        }
-    }
-
-    String readFile(File file) throws IOException {
-        StringBuilder sb = new StringBuilder();
-        Reader in = new BufferedReader(new FileReader(file));
-        try {
-            char[] buf = new char[1024];
-            int n;
-            while ((n = in.read(buf)) != -1)
-                sb.append(buf, 0, n);
-        } finally {
-            in.close();
-        }
-        return sb.toString().trim();
-    }
-
-    private static final Pattern dirFileLine = Pattern.compile(
-            "(?m)"                          // multi-line mode
-            + "^([^: ]+?)"                  // directory part of file name
-            + "([A-Za-z0-9.]+:[0-9]+:)");   // file name and line number
-
-    String removeFileNames(String s) {
-        Matcher m = dirFileLine.matcher(s);
-        StringBuffer sb = new StringBuffer();
-        while (m.find()) {
-            m.appendReplacement(sb, "$2");
-        }
-        m.appendTail(sb);
-        return sb.toString();
-    }
-
-    private static final String nl = System.getProperty("line.separator");
-    String normalizeNewlines(String s) {
-        return (nl.equals("\n") ? s : s.replace(nl, "\n"));
-    }
-
-
-    void error(String msg) {
-        System.err.println("Error: " + msg);
-        errors++;
-    }
-
-    int errors;
-}
--- a/test/tools/doclint/EmptyAuthorTest.java	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-/*
- * @test /nodynamiccopyright/
- * @bug 8004832
- * @summary Add new doclint package
- * @build DocLintTester
- * @run main DocLintTester -Xmsgs:-syntax EmptyAuthorTest.java
- * @run main DocLintTester -Xmsgs:syntax -ref EmptyAuthorTest.out EmptyAuthorTest.java
- */
-
-/** @author */
-public class EmptyAuthorTest {
-}
--- a/test/tools/doclint/EmptyAuthorTest.out	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-EmptyAuthorTest.java:10: warning: no description for @author
-/** @author */
-    ^
-1 warning
-
--- a/test/tools/doclint/EmptyExceptionTest.java	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-/*
- * @test /nodynamiccopyright/
- * @bug 8004832
- * @summary Add new doclint package
- * @build DocLintTester
- * @run main DocLintTester -Xmsgs:-syntax EmptyExceptionTest.java
- * @run main DocLintTester -Xmsgs:syntax -ref EmptyExceptionTest.out EmptyExceptionTest.java
- */
-
-/** . */
-public class EmptyExceptionTest {
-    /** @exception NullPointerException */
-    int emptyException() throws NullPointerException { }
-}
--- a/test/tools/doclint/EmptyExceptionTest.out	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,4 +0,0 @@
-EmptyExceptionTest.java:12: warning: no description for @exception
-    /** @exception NullPointerException */
-        ^
-1 warning
--- a/test/tools/doclint/EmptyParamTest.java	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-/*
- * @test /nodynamiccopyright/
- * @bug 8004832
- * @summary Add new doclint package
- * @build DocLintTester
- * @run main DocLintTester -Xmsgs:-syntax EmptyParamTest.java
- * @run main DocLintTester -Xmsgs:syntax -ref EmptyParamTest.out EmptyParamTest.java
- */
-
-/** . */
-public class EmptyParamTest {
-    /** @param i */
-    int emptyParam(int i) { }
-}
--- a/test/tools/doclint/EmptyParamTest.out	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-EmptyParamTest.java:12: warning: no description for @param
-    /** @param i */
-        ^
-1 warning
-
--- a/test/tools/doclint/EmptyReturnTest.java	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-/*
- * @test /nodynamiccopyright/
- * @bug 8004832
- * @summary Add new doclint package
- * @build DocLintTester
- * @run main DocLintTester -Xmsgs:-syntax EmptyReturnTest.java
- * @run main DocLintTester -Xmsgs:syntax -ref EmptyReturnTest.out EmptyReturnTest.java
- */
-
-/** . */
-public class EmptyReturnTest {
-    /** @return */
-    int emptyReturn() { }
-}
--- a/test/tools/doclint/EmptyReturnTest.out	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-EmptyReturnTest.java:12: warning: no description for @return
-    /** @return */
-        ^
-1 warning
-
--- a/test/tools/doclint/EmptySerialDataTest.java	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-/*
- * @test /nodynamiccopyright/
- * @bug 8004832
- * @summary Add new doclint package
- * @build DocLintTester
- * @run main DocLintTester -Xmsgs:-syntax EmptySerialDataTest.java
- * @run main DocLintTester -Xmsgs:syntax -ref EmptySerialDataTest.out EmptySerialDataTest.java
- */
-
-import java.io.ObjectOutputStream;
-import java.io.Serializable;
-
-/** . */
-public class EmptySerialDataTest implements Serializable {
-    /** @serialData */
-    private void writeObject(ObjectOutputStream s) { }
-}
--- a/test/tools/doclint/EmptySerialDataTest.out	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-EmptySerialDataTest.java:15: warning: no description for @serialData
-    /** @serialData */
-        ^
-1 warning
-
--- a/test/tools/doclint/EmptySerialFieldTest.java	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-/*
- * @test /nodynamiccopyright/
- * @bug 8004832
- * @summary Add new doclint package
- * @build DocLintTester
- * @run main DocLintTester -Xmsgs:-syntax EmptySerialFieldTest.java
- * @run main DocLintTester -Xmsgs:syntax -ref EmptySerialFieldTest.out EmptySerialFieldTest.java
- */
-
-import java.io.ObjectStreamField;
-import java.io.Serializable;
-
-/** . */
-public class EmptySerialFieldTest implements Serializable {
-
-    /**
-     * @serialField empty    String
-     */
-    private static final ObjectStreamField[] serialPersistentFields = {
-        new ObjectStreamField("empty", String.class),
-    };
-}
--- a/test/tools/doclint/EmptySerialFieldTest.out	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-EmptySerialFieldTest.java:17: warning: no description for @serialField
-     * @serialField empty    String
-       ^
-1 warning
-
--- a/test/tools/doclint/EmptySinceTest.java	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-/*
- * @test /nodynamiccopyright/
- * @bug 8004832
- * @summary Add new doclint package
- * @build DocLintTester
- * @run main DocLintTester -Xmsgs:-syntax EmptySinceTest.java
- * @run main DocLintTester -Xmsgs:syntax -ref EmptySinceTest.out EmptySinceTest.java
- */
-
-/** . */
-public class EmptySinceTest {
-    /** @since */
-    int emptySince() { }
-}
--- a/test/tools/doclint/EmptySinceTest.out	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-EmptySinceTest.java:12: warning: no description for @since
-    /** @since */
-        ^
-1 warning
-
--- a/test/tools/doclint/EmptyVersionTest.java	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-/*
- * @test /nodynamiccopyright/
- * @bug 8004832
- * @summary Add new doclint package
- * @build DocLintTester
- * @run main DocLintTester -Xmsgs:-syntax EmptyVersionTest.java
- * @run main DocLintTester -Xmsgs:syntax -ref EmptyVersionTest.out EmptyVersionTest.java
- */
-
-/** . */
-public class EmptyVersionTest {
-    /** @version */
-    int missingVersion() { }
-}
--- a/test/tools/doclint/EmptyVersionTest.out	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,4 +0,0 @@
-EmptyVersionTest.java:12: warning: no description for @version
-    /** @version */
-        ^
-1 warning
--- a/test/tools/doclint/HtmlAttrsTest.java	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-/*
- * @test /nodynamiccopyright/
- * @bug 8004832
- * @summary Add new doclint package
- * @build DocLintTester
- * @run main DocLintTester -Xmsgs:-html HtmlAttrsTest.java
- * @run main DocLintTester -ref HtmlAttrsTest.out HtmlAttrsTest.java
- */
-
-/** */
-public class HtmlAttrsTest {
-    /**
-     * <p xyz>
-     */
-    public void unknown() { }
-
-    /**
-     * <img name="x" alt="alt">
-     */
-    public void obsolete() { }
-
-    /**
-     * <font size="3"> text </font>
-     */
-    public void obsolete_use_css() { }
-}
-
--- a/test/tools/doclint/HtmlAttrsTest.out	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-HtmlAttrsTest.java:13: error: unknown attribute: xyz
-     * <p xyz>
-          ^
-HtmlAttrsTest.java:18: warning: attribute obsolete: name
-     * <img name="x" alt="alt">
-            ^
-HtmlAttrsTest.java:23: warning: attribute obsolete, use CSS instead: size
-     * <font size="3"> text </font>
-             ^
-1 error
-2 warnings
-
--- a/test/tools/doclint/HtmlTagsTest.java	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,58 +0,0 @@
-/*
- * @test /nodynamiccopyright/
- * @bug 8004832
- * @summary Add new doclint package
- * @build DocLintTester
- * @run main DocLintTester -Xmsgs:-html HtmlTagsTest.java
- * @run main DocLintTester -ref HtmlTagsTest.out HtmlTagsTest.java
- */
-
-/** */
-public class HtmlTagsTest {
-    /**
-     * <xyz> ... </xyz>
-     */
-    public void unknownTag1() { }
-
-    /**
-     * <div> <xyz> </div>
-     */
-    public void unknownTag2() { }
-
-    /**
-     * <br/>
-     */
-    public void selfClosingTag() { }
-
-    /**
-     * <html>
-     */
-    public void not_allowed() { }
-
-    /**
-     * <span> <p> </span>
-     */
-    public void not_allowed_inline() { }
-
-    /**
-     * {@link java.lang.String <p> }
-     * {@link java.lang.String <p> }
-     */
-    public void not_allowed_inline_2() { }
-
-    /**
-     * <img src="any.jpg" alt="alt"> </img>
-     */
-    public void end_not_allowed() { }
-
-    /**
-     * <i> <b> </i>
-     */
-    public void start_not_matched() { }
-
-    /**
-     * <i> </b> </i>
-     */
-    public void end_unexpected() { }
-}
-
--- a/test/tools/doclint/HtmlTagsTest.out	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-HtmlTagsTest.java:13: error: unknown tag: xyz
-     * <xyz> ... </xyz>
-       ^
-HtmlTagsTest.java:13: error: unknown tag: xyz
-     * <xyz> ... </xyz>
-                 ^
-HtmlTagsTest.java:18: error: unknown tag: xyz
-     * <div> <xyz> </div>
-             ^
-HtmlTagsTest.java:23: error: self-closing element not allowed
-     * <br/>
-       ^
-HtmlTagsTest.java:28: error: element not allowed in documentation comments: <html>
-     * <html>
-       ^
-HtmlTagsTest.java:33: error: block element not allowed within inline element <span>: p
-     * <span> <p> </span>
-              ^
-HtmlTagsTest.java:38: error: block element not allowed within @link: p
-     * {@link java.lang.String <p> }
-                               ^
-HtmlTagsTest.java:39: error: block element not allowed within @link: p
-     * {@link java.lang.String <p> }
-                               ^
-HtmlTagsTest.java:44: error: invalid end tag: </img>
-     * <img src="any.jpg" alt="alt"> </img>
-                                     ^
-HtmlTagsTest.java:49: error: end tag missing: </b>
-     * <i> <b> </i>
-           ^
-HtmlTagsTest.java:54: error: unexpected end tag: </b>
-     * <i> </b> </i>
-           ^
-HtmlTagsTest.java:54: warning: empty <i> tag
-     * <i> </b> </i>
-                ^
-11 errors
-1 warning
--- a/test/tools/doclint/MissingCommentTest.java	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-/*
- * @test /nodynamiccopyright/
- * @build DocLintTester
- * @run main DocLintTester -Xmsgs:-missing MissingCommentTest.java
- * @run main DocLintTester -Xmsgs:missing -ref MissingCommentTest.out MissingCommentTest.java
- */
-
-public class MissingCommentTest {
-    MissingCommentTest() { }
-
-    int missingComment;
-
-    void missingComment() { }
-}
--- a/test/tools/doclint/MissingCommentTest.out	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-MissingCommentTest.java:8: warning: no comment
-public class MissingCommentTest {
-       ^
-MissingCommentTest.java:9: warning: no comment
-    MissingCommentTest() { }
-    ^
-MissingCommentTest.java:11: warning: no comment
-    int missingComment;
-        ^
-MissingCommentTest.java:13: warning: no comment
-    void missingComment() { }
-         ^
-4 warnings
-
--- a/test/tools/doclint/MissingParamsTest.java	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-/*
- * @test /nodynamiccopyright/
- * @bug 8004832
- * @summary Add new doclint package
- * @build DocLintTester
- * @run main DocLintTester -Xmsgs:-missing MissingParamsTest.java
- * @run main DocLintTester -Xmsgs:missing -ref MissingParamsTest.out MissingParamsTest.java
- */
-
-/** . */
-public class MissingParamsTest {
-    /** */
-    MissingParamsTest(int param) { }
-
-    /** */
-    <T> MissingParamsTest() { }
-
-    /** */
-    void missingParam(int param) { }
-
-    /** */
-    <T> void missingTyparam() { }
-}
--- a/test/tools/doclint/MissingParamsTest.out	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-MissingParamsTest.java:13: warning: no @param for param
-    MissingParamsTest(int param) { }
-    ^
-MissingParamsTest.java:16: warning: no @param for <T>
-    <T> MissingParamsTest() { }
-        ^
-MissingParamsTest.java:19: warning: no @param for param
-    void missingParam(int param) { }
-         ^
-MissingParamsTest.java:22: warning: no @param for <T>
-    <T> void missingTyparam() { }
-             ^
-4 warnings
-
--- a/test/tools/doclint/MissingReturnTest.java	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-/*
- * @test /nodynamiccopyright/
- * @bug 8004832
- * @summary Add new doclint package
- * @build DocLintTester
- * @run main DocLintTester -Xmsgs:-missing MissingReturnTest.java
- * @run main DocLintTester -Xmsgs:missing -ref MissingReturnTest.out MissingReturnTest.java
- */
-
-/** . */
-public class MissingReturnTest {
-    /** no return allowed */
-    MissingReturnTest() { }
-
-    /** no return allowed */
-    void return_void() { }
-
-    /** no return required */
-    Void return_Void() { }
-
-    /** */
-    int missingReturn() { }
-}
--- a/test/tools/doclint/MissingReturnTest.out	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-MissingReturnTest.java:22: warning: no @return
-    int missingReturn() { }
-        ^
-1 warning
-
--- a/test/tools/doclint/MissingThrowsTest.java	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-/*
- * @test /nodynamiccopyright/
- * @bug 8004832
- * @summary Add new doclint package
- * @build DocLintTester
- * @run main DocLintTester -Xmsgs:-missing MissingThrowsTest.java
- * @run main DocLintTester -Xmsgs:missing -ref MissingThrowsTest.out MissingThrowsTest.java
- */
-
-/** */
-public class MissingThrowsTest {
-    /** */
-    void missingThrows() throws Exception { }
-}
--- a/test/tools/doclint/MissingThrowsTest.out	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,4 +0,0 @@
-MissingThrowsTest.java:13: warning: no @throws for java.lang.Exception
-    void missingThrows() throws Exception { }
-         ^
-1 warning
--- a/test/tools/doclint/OptionTest.java	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,96 +0,0 @@
-/*
- * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-/*
- * @test
- * @bug 8004832
- * @summary Add new doclint package
- */
-
-import com.sun.tools.doclint.DocLint;
-
-public class OptionTest {
-    public static void main(String... args) throws Exception {
-        new OptionTest().run();
-    }
-
-    String[] positiveTests = {
-        "-Xmsgs",
-        "-Xmsgs:all",
-        "-Xmsgs:none",
-        "-Xmsgs:accessibility",
-        "-Xmsgs:html",
-        "-Xmsgs:missing",
-        "-Xmsgs:reference",
-        "-Xmsgs:syntax",
-        "-Xmsgs:html/public",
-        "-Xmsgs:html/protected",
-        "-Xmsgs:html/package",
-        "-Xmsgs:html/private",
-        "-Xmsgs:-html/public",
-        "-Xmsgs:-html/protected",
-        "-Xmsgs:-html/package",
-        "-Xmsgs:-html/private",
-        "-Xmsgs:html,syntax",
-        "-Xmsgs:html,-syntax",
-        "-Xmsgs:-html,syntax",
-        "-Xmsgs:-html,-syntax",
-        "-Xmsgs:html/public,syntax",
-        "-Xmsgs:html,syntax/public",
-        "-Xmsgs:-html/public,syntax/public"
-    };
-
-    String[] negativeTests = {
-        "-typo",
-        "-Xmsgs:-all",
-        "-Xmsgs:-none",
-        "-Xmsgs:typo",
-        "-Xmsgs:html/typo",
-        "-Xmsgs:html/public,typo",
-        "-Xmsgs:html/public,syntax/typo",
-    };
-
-    void run() throws Exception {
-        test(positiveTests, true);
-        test(negativeTests, false);
-
-        if (errors > 0)
-            throw new Exception(errors + " errors occurred");
-    }
-
-    void test(String[] tests, boolean expect) {
-        for (String test: tests) {
-            System.err.println("test: " + test);
-            boolean found = DocLint.isValidOption(test);
-            if (found != expect)
-                error("Unexpected result: " + found + ",expected: " + expect);
-        }
-    }
-
-    void error(String msg) {
-        System.err.println("Error: " + msg);
-        errors++;
-    }
-
-    int errors;
-}
--- a/test/tools/doclint/OverridesTest.java	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,93 +0,0 @@
-/*
- * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-/*
- * @test
- * @bug 8004832
- * @summary Add new doclint package
- * @build DocLintTester
- * @run main DocLintTester -Xmsgs:all OverridesTest.java
- */
-
-/*
- * This is a test that missing comments on methods may be inherited
- * from overridden methods. As such, there should be no errors due
- * to missing comments (or any other types of error) in this test.
- */
-
-/** An interface. */
-interface I1 {
-    /**
-     * A method
-     * @param p a param
-     * @throws Exception an exception
-     * @return an int
-     */
-    int m(int p) throws Exception;
-}
-
-/** An extending interface. */
-interface I2 extends I1 { }
-
-/** An abstract class. */
-abstract class C1 {
-    /**
-     * A method
-     * @param p a param
-     * @throws Exception an exception
-     * @return an int
-     */
-    int m(int p) throws Exception;
-}
-
-/** An implementing class. */
-class C2 implements I1 {
-    int m(int  p) throws Exception { return p; }
-}
-
-/** An extending class. */
-class C3 extends C1 {
-    int m(int  p) throws Exception { return p; }
-}
-
-/** An extending and implementing class. */
-class C4 extends C1 implements I1 {
-    int m(int  p) throws Exception { return p; }
-}
-
-/** An implementing class using inheritdoc. */
-class C5 implements I1 {
-    /** {@inheritDoc} */
-    int m(int  p) throws Exception { return p; }
-}
-
-/** An implementing class with incomplete documentation. */
-class C6 implements I1 {
-    /** Overriding method */
-    int m(int  p) throws Exception { return p; }
-}
-
-/** A class implementing an inherited interface. */
-class C7 implements I2 {
-    int m(int  p) throws Exception { return p; }
-}
--- a/test/tools/doclint/ReferenceTest.java	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +0,0 @@
-/*
- * @test /nodynamiccopyright/
- * @bug 8004832
- * @summary Add new doclint package
- * @build DocLintTester
- * @run main DocLintTester -Xmsgs:-reference ReferenceTest.java
- * @run main DocLintTester -ref ReferenceTest.out ReferenceTest.java
- */
-
-/** */
-public class ReferenceTest {
-    /**
-     * @param x description
-     */
-    public int invalid_param;
-
-    /**
-     * @param x description
-     */
-    public class InvalidParam { }
-
-    /**
-     * @param x description
-     */
-    public void param_name_not_found(int a) { }
-
-    /**
-     * @param <X> description
-     */
-    public class typaram_name_not_found { }
-
-    /**
-     * @see Object#tooStrong()
-     */
-    public void ref_not_found() { }
-
-    /**
-     * @return x description
-     */
-    public int invalid_return;
-
-    /**
-     * @return x description
-     */
-    public void invalid_return();
-
-    /**
-     * @throws Exception description
-     */
-    public void exception_not_thrown() { }
-}
-
--- a/test/tools/doclint/ReferenceTest.out	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-ReferenceTest.java:13: error: invalid use of @param
-     * @param x description
-       ^
-ReferenceTest.java:18: error: invalid use of @param
-     * @param x description
-       ^
-ReferenceTest.java:23: error: @param name not found
-     * @param x description
-              ^
-ReferenceTest.java:25: warning: no @param for a
-    public void param_name_not_found(int a) { }
-                ^
-ReferenceTest.java:28: error: @param name not found
-     * @param <X> description
-               ^
-ReferenceTest.java:33: error: reference not found
-     * @see Object#tooStrong()
-            ^
-ReferenceTest.java:38: error: invalid use of @return
-     * @return x description
-       ^
-ReferenceTest.java:43: error: invalid use of @return
-     * @return x description
-       ^
-ReferenceTest.java:48: error: exception not thrown: java.lang.Exception
-     * @throws Exception description
-               ^
-8 errors
-1 warning
-
--- a/test/tools/doclint/RunTest.java	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,105 +0,0 @@
-/*
- * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-/* @test
- * @bug 8004832
- * @summary Add new doclint package
- * @bug 8000103
- * @summary Create doclint utility
- */
-
-import com.sun.tools.doclint.DocLint;
-import com.sun.tools.doclint.DocLint.BadArgs;
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.FilterOutputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.PrintStream;
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.lang.annotation.Annotation;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-
-/** javadoc error on toplevel:  a & b. */
-public class RunTest {
-    /** javadoc error on member: a < b */
-    public static void main(String... args) throws Exception {
-        new RunTest().run();
-    }
-
-
-    File testSrc = new File(System.getProperty("test.src"));
-    File thisFile = new File(testSrc, RunTest.class.getSimpleName() + ".java");
-
-    void run() throws Exception {
-        for (Method m: getClass().getDeclaredMethods()) {
-            Annotation a = m.getAnnotation(Test.class);
-            if (a != null) {
-                System.err.println("test: " + m.getName());
-                try {
-                    StringWriter sw = new StringWriter();
-                    PrintWriter pw = new PrintWriter(sw);;
-                    m.invoke(this, new Object[] { pw });
-                    String out = sw.toString();
-                    System.err.println(">>> " + out.replace("\n", "\n>>> "));
-                    if (!out.contains("a < b"))
-                        error("\"a < b\" not found");
-                    if (!out.contains("a & b"))
-                        error("\"a & b\" not found");
-                } catch (InvocationTargetException e) {
-                    Throwable cause = e.getCause();
-                    throw (cause instanceof Exception) ? ((Exception) cause) : e;
-                }
-                System.err.println();
-            }
-        }
-
-        if (errors > 0)
-            throw new Exception(errors + " errors occurred");
-    }
-
-
-    void error(String msg) {
-        System.err.println("Error: " + msg);
-        errors++;
-    }
-
-    int errors;
-
-    /** Marker annotation for test cases. */
-    @Retention(RetentionPolicy.RUNTIME)
-    @interface Test { }
-
-    @Test
-    void testMain(PrintWriter pw) throws BadArgs, IOException {
-        String[] args = { "-Xmsgs", thisFile.getPath() };
-        DocLint d = new DocLint();
-        d.run(pw, args);
-    }
-}
-
-
--- a/test/tools/doclint/SyntaxTest.java	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-/*
- * @test /nodynamiccopyright/
- * @bug 8004832
- * @summary Add new doclint package
- * @build DocLintTester
- * @run main DocLintTester -Xmsgs:-syntax SyntaxTest.java
- * @run main DocLintTester -ref SyntaxTest.out SyntaxTest.java
- */
-
-/** */
-public class SyntaxTest {
-    /**
-     * a < b
-     */
-    public void syntax_error() { }
-}
-
--- a/test/tools/doclint/SyntaxTest.out	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-SyntaxTest.java:13: error: malformed HTML
-     * a < b
-         ^
-1 error
-
--- a/test/tools/doclint/SyntheticTest.java	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-/*
- * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-/*
- * @test
- * @bug 8004832
- * @summary Add new doclint package
- * @build DocLintTester
- * @run main DocLintTester -Xmsgs:all SyntheticTest.java
- */
-
-/**
- * This is a test that messages are not generated for synthesized elements
- * such as default constructors and enum methods.
- */
-public class SyntheticTest {
-    // No explicit constructor implies a default constructor
-
-    /** enum E */
-    enum E {
-        /** enum member E1 */
-        E1,
-        /** enum member E2 */
-        E2,
-        /** enum member E3 */
-        E3
-    }
-}
-
-
--- a/test/tools/doclint/ValidTest.java	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,112 +0,0 @@
-/*
- * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-/*
- * @test
- * @bug 8004832
- * @summary Add new doclint package
- * @build DocLintTester
- * @run main DocLintTester ValidTest.java
- */
-
-class ValidTest {
-    /**
-     * &lt; &gt; &amp; &#40;
-     */
-    void entities() { }
-
-    /**
-     * <h1> ... </h1>
-     * <h2> ... </h2>
-     * <h3> ... </h3>
-     * <h4> ... </h4>
-     * <h5> ... </h5>
-     * <h6> ... </h6>
-     */
-    void all_headers() { }
-
-    /**
-     * <h1> ... </h1>
-     * <h2> ... </h2>
-     * <h3> ... </h3>
-     * <h1> ... </h1>
-     * <h2> ... </h2>
-     * <h3> ... </h3>
-     * <h2> ... </h2>
-     */
-    void header_series() { }
-
-    /**
-     * <div> <p>   </div>
-     */
-    void autoclose_tags() { }
-
-    /**
-     * @param x
-     */
-    void method_param(int x) { }
-
-    /**
-     * @param <T>
-     */
-    <T> T method_typaram(T t) { return t; }
-
-    /**
-     * @param <T>
-     */
-    class ClassTyparam<T> { }
-
-    /**
-     * @param <T>
-     */
-    interface InterfaceTyparam<T> { }
-
-    /**
-     * @return x
-     */
-    int return_int() { return 0; }
-
-    /**
-     * @exception Exception
-     */
-    void throws_Exception1() throws Exception { }
-
-    /**
-     * @throws Exception
-     */
-    void throws_Exception2() throws Exception { }
-
-    class X {
-        /**
-         * @param x
-         */
-        X(int x) { } // constructor parameter
-
-        /**
-         * @param <T>
-         */
-        <T> X(T t) { } // constructor type parameter
-    }
-
-}
-
--- a/test/tools/doclint/tidy/AnchorAlreadyDefined.java	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-/*
- * @test /nodynamiccopyright/
- * @bug 8004832
- * @summary Add new doclint package
- * @library ..
- * @build DocLintTester
- * @run main DocLintTester -ref AnchorAlreadyDefined.out AnchorAlreadyDefined.java
- */
-
-// tidy: Warning: <.*> anchor ".*" already defined
-
-/**
- * <a name="here">valid</a>
- * <a name="here">duplicate</a>
- * <h1 id="here">duplicate</h1>
- */
-public class AnchorAlreadyDefined { }
--- a/test/tools/doclint/tidy/AnchorAlreadyDefined.out	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-AnchorAlreadyDefined.java:14: error: anchor already defined: here
- * <a name="here">duplicate</a>
-      ^
-AnchorAlreadyDefined.java:15: error: anchor already defined: here
- * <h1 id="here">duplicate</h1>
-       ^
-2 errors
--- a/test/tools/doclint/tidy/BadEnd.java	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-/*
- * @test /nodynamiccopyright/
- * @bug 8004832
- * @summary Add new doclint package
- * @library ..
- * @build DocLintTester
- * @run main DocLintTester -ref BadEnd.out BadEnd.java
- */
-
-// tidy: Warning: <.*> is probably intended as </.*>
-
-/**
- * <a name="here"> text <a>
- * <code> text <code>
- */
-public class BadEnd { }
--- a/test/tools/doclint/tidy/BadEnd.out	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-BadEnd.java:14: warning: nested tag not allowed: <code>
- * <code> text <code>
-               ^
-BadEnd.java:14: error: element not closed: code
- * <code> text <code>
-               ^
-BadEnd.java:14: error: element not closed: code
- * <code> text <code>
-   ^
-BadEnd.java:13: error: element not closed: a
- * <a name="here"> text <a>
-                        ^
-BadEnd.java:13: error: element not closed: a
- * <a name="here"> text <a>
-   ^
-4 errors
-1 warning
--- a/test/tools/doclint/tidy/InsertImplicit.java	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-/*
- * @test /nodynamiccopyright/
- * @bug 8004832
- * @summary Add new doclint package
- * @library ..
- * @build DocLintTester
- * @run main DocLintTester -ref InsertImplicit.out InsertImplicit.java
- */
-
-// tidy: Warning: inserting implicit <.*>
-
-/**
- * </p>
- * <i> <blockquote> abc </blockquote> </i>
- */
-public class InsertImplicit { }
--- a/test/tools/doclint/tidy/InsertImplicit.out	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-InsertImplicit.java:13: error: unexpected end tag: </p>
- * </p>
-   ^
-InsertImplicit.java:14: error: block element not allowed within inline element <i>: blockquote
- * <i> <blockquote> abc </blockquote> </i>
-       ^
-2 errors
--- a/test/tools/doclint/tidy/InvalidEntity.java	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-/*
- * @test /nodynamiccopyright/
- * @bug 8004832
- * @summary Add new doclint package
- * @library ..
- * @build DocLintTester
- * @run main DocLintTester -ref InvalidEntity.out InvalidEntity.java
- */
-
-// tidy: Warning: replacing invalid numeric character reference .*
-
-// See
-// http://www.w3.org/TR/html4/sgml/entities.html
-// http://stackoverflow.com/questions/631406/what-is-the-difference-between-em-dash-151-and-8212
-
-/**
- * &#01;
- * &#x01;
- * &splodge;
- *
- */
-public class InvalidEntity { }
--- a/test/tools/doclint/tidy/InvalidEntity.out	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-InvalidEntity.java:17: error: invalid entity &#01;
- * &#01;
-   ^
-InvalidEntity.java:18: error: invalid entity &#x01;
- * &#x01;
-   ^
-InvalidEntity.java:19: error: invalid entity &splodge;
- * &splodge;
-   ^
-3 errors
--- a/test/tools/doclint/tidy/InvalidName.java	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-/*
- * @test /nodynamiccopyright/
- * @bug 8004832
- * @summary Add new doclint package
- * @library ..
- * @build DocLintTester
- * @run main DocLintTester -ref InvalidName.out InvalidName.java
- */
-
-// tidy: Warning: <a> cannot copy name attribute to id
-
-/**
- * <a name="abc">valid</a>
- * <a name="abc123">valid</a>
- * <a name="a.1:2-3_4">valid</a>
- * <a name="foo()">invalid</a>
- */
-public class InvalidName { }
--- a/test/tools/doclint/tidy/InvalidName.out	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,4 +0,0 @@
-InvalidName.java:16: error: invalid name for anchor: "foo()"
- * <a name="foo()">invalid</a>
-      ^
-1 error
--- a/test/tools/doclint/tidy/InvalidTag.java	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-/*
- * @test /nodynamiccopyright/
- * @bug 8004832
- * @summary Add new doclint package
- * @library ..
- * @build DocLintTester
- * @run main DocLintTester -ref InvalidTag.out InvalidTag.java
- */
-
-// tidy: Error: <.*> is not recognized!
-
-/**
- * List<String> list = new ArrayList<>();
- */
-public class InvalidTag { }
--- a/test/tools/doclint/tidy/InvalidTag.out	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-InvalidTag.java:13: error: unknown tag: String
- * List<String> list = new ArrayList<>();
-       ^
-InvalidTag.java:13: error: malformed HTML
- * List<String> list = new ArrayList<>();
-                                    ^
-InvalidTag.java:13: error: bad use of '>'
- * List<String> list = new ArrayList<>();
-                                     ^
-3 errors
--- a/test/tools/doclint/tidy/InvalidURI.java	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-/*
- * @test /nodynamiccopyright/
- * @bug 8004832
- * @summary Add new doclint package
- * @library ..
- * @build DocLintTester
- * @run main DocLintTester -ref InvalidURI.out InvalidURI.java
- */
-
-// tidy: Warning: <a> escaping malformed URI reference
-// tidy: Warning: <.*> attribute ".*" lacks value
-
-/**
- * <a href="abc">valid</a>
- * <a href="abc%20def">valid</a>
- * <a href="abc def">invalid</a>
- * <a href>no value</a>
- * <a href= >no value</a>
- * <a href="" >no value</a>
- */
-public class InvalidURI { }
--- a/test/tools/doclint/tidy/InvalidURI.out	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-InvalidURI.java:16: error: invalid uri: "abc def"
- * <a href="abc def">invalid</a>
-      ^
-InvalidURI.java:17: error: attribute lacks value
- * <a href>no value</a>
-      ^
-InvalidURI.java:18: error: attribute lacks value
- * <a href= >no value</a>
-      ^
-InvalidURI.java:19: error: attribute lacks value
- * <a href="" >no value</a>
-      ^
-4 errors
--- a/test/tools/doclint/tidy/MissingGT.java	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-/*
- * @test /nodynamiccopyright/
- * @bug 8004832
- * @summary Add new doclint package
- * @library ..
- * @build DocLintTester
- * @run main DocLintTester -ref MissingGT.out MissingGT.java
- */
-
-// tidy: Warning: <.*> missing '>' for end of tag
-
-/**
- * <img src="image.gif"
- * <i>  text </i>
- */
-public class MissingGT { }
--- a/test/tools/doclint/tidy/MissingGT.out	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,4 +0,0 @@
-MissingGT.java:13: error: malformed HTML
- * <img src="image.gif"
-   ^
-1 error
--- a/test/tools/doclint/tidy/MissingTag.java	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-/*
- * @test /nodynamiccopyright/
- * @bug 8004832
- * @summary Add new doclint package
- * @library ..
- * @build DocLintTester
- * @run main DocLintTester -ref MissingTag.out MissingTag.java
- */
-
-// tidy: Warning: missing <.*>
-// tidy: Warning: missing </.*> before </.*>
-
-/**
- * </p>
- * <h1> <b> text </h1>
- */
-public class MissingTag { }
--- a/test/tools/doclint/tidy/MissingTag.out	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-MissingTag.java:14: error: unexpected end tag: </p>
- * </p>
-   ^
-MissingTag.java:15: error: end tag missing: </b>
- * <h1> <b> text </h1>
-        ^
-2 errors
--- a/test/tools/doclint/tidy/NestedTag.java	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-/*
- * @test /nodynamiccopyright/
- * @bug 8004832
- * @summary Add new doclint package
- * @library ..
- * @build DocLintTester
- * @run main DocLintTester -ref NestedTag.out NestedTag.java
- */
-
-// tidy: Warning: nested emphasis <.*>
-
-/**
- * <b><b> text </b></b>
- * {@link java.lang.String <code>String</code>}
- */
-public class NestedTag { }
--- a/test/tools/doclint/tidy/NestedTag.out	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-NestedTag.java:13: warning: nested tag not allowed: <b>
- * <b><b> text </b></b>
-      ^
-NestedTag.java:14: warning: nested tag not allowed: <code>
- * {@link java.lang.String <code>String</code>}
-                           ^
-2 warnings
--- a/test/tools/doclint/tidy/ParaInPre.java	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-/*
- * @test /nodynamiccopyright/
- * @bug 8004832
- * @summary Add new doclint package
- * @library ..
- * @build DocLintTester
- * @run main DocLintTester -ref ParaInPre.out ParaInPre.java
- */
-
-// tidy: Warning: replacing <p> by <br>
-// tidy: Warning: using <br> in place of <p>
-
-/**
- * <pre>
- *     text
- *     <p>
- *     more text
- * </pre>
- */
-public class ParaInPre { }
--- a/test/tools/doclint/tidy/ParaInPre.out	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,4 +0,0 @@
-ParaInPre.java:16: warning: unexpected use of <p> inside <pre> element
- *     <p>
-       ^
-1 warning
--- a/test/tools/doclint/tidy/README.txt	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-The utilities in this directory can be used to determine
-common issues in javadoc comments by running the standard
-"tidy" program on the output of javadoc, and analysing
-the messages that are reported.
-
-tidy.sh is a script that will run the "tidy" program on
-the files in a directory, writing the results to a new
-directroy.
-
-tidystats.Main is a Java program that can analyze the 
-files produced by the tidy.sh script to generate a 
-summary report about the warnings that were found.
-
-
-The tests is this directory are focussed on verifying
-that doclint detects issues in javadoc comments that will
-give rise to issues detected by "tidy" in the output
-generated by javadoc. 
-
-For more information on the "tidy" program, see the HTML Tidy
-Library Project page at http://tidy.sourceforge.net/.
--- a/test/tools/doclint/tidy/RepeatedAttr.java	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-/*
- * @test /nodynamiccopyright/
- * @bug 8004832
- * @summary Add new doclint package
- * @library ..
- * @build DocLintTester
- * @run main DocLintTester -ref RepeatedAttr.out RepeatedAttr.java
- */
-
-// tidy: Warning: <.*> dropping value ".*" for repeated attribute ".*"
-
-/**
- * <img src="image.gif" alt alt="summary">
- */
-public class RepeatedAttr { }
--- a/test/tools/doclint/tidy/RepeatedAttr.out	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,4 +0,0 @@
-RepeatedAttr.java:13: error: repeated attribute: alt
- * <img src="image.gif" alt alt="summary">
-                            ^
-1 error
--- a/test/tools/doclint/tidy/TextNotAllowed.java	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-/*
- * @test /nodynamiccopyright/
- * @bug 8004832
- * @summary Add new doclint package
- * @library ..
- * @build DocLintTester
- * @run main DocLintTester -ref TextNotAllowed.out TextNotAllowed.java
- */
-
-// tidy: Warning: plain text isn't allowed in <.*> elements
-
-/**
- * <table summary=description> abc </table>
- * <table summary=description> <tbody> abc </tbody> </table>
- * <table summary=description> <tr> abc </tr> </table>
- *
- * <dl> abc </dl>
- * <ol> abc </ol>
- * <ul> abc </ul>
- *
- * <ul>
- *     <li> item
- *     <li> item
- * </ul>
- */
-public class TextNotAllowed { }
--- a/test/tools/doclint/tidy/TextNotAllowed.out	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-TextNotAllowed.java:13: error: text not allowed in <table> element
- * <table summary=description> abc </table>
-                                   ^
-TextNotAllowed.java:14: error: text not allowed in <tbody> element
- * <table summary=description> <tbody> abc </tbody> </table>
-                                           ^
-TextNotAllowed.java:15: error: text not allowed in <tr> element
- * <table summary=description> <tr> abc </tr> </table>
-                                        ^
-TextNotAllowed.java:17: error: text not allowed in <dl> element
- * <dl> abc </dl>
-            ^
-TextNotAllowed.java:18: error: text not allowed in <ol> element
- * <ol> abc </ol>
-            ^
-TextNotAllowed.java:19: error: text not allowed in <ul> element
- * <ul> abc </ul>
-            ^
-6 errors
--- a/test/tools/doclint/tidy/TrimmingEmptyTag.java	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-/*
- * @test /nodynamiccopyright/
- * @bug 8004832
- * @summary Add new doclint package
- * @library ..
- * @build DocLintTester
- * @run main DocLintTester -ref TrimmingEmptyTag.out TrimmingEmptyTag.java
- */
-
-// tidy: Warning: trimming empty <.*>
-
-/**
- * <b></b>
- * <table summary=description></table>
- * <table><caption></caption></table>
- * <code></code>
- * <dl></dl>
- * <dl><dt></dt><dd></dd></dl>
- * <font></font>
- * <i></i>
- * <ol></ol>
- * <p></p>
- * <pre></pre>
- * <span></span>
- * <tt></tt>
- * <ul></ul>
- * <ul><li></li></ul>
- */
-public class TrimmingEmptyTag { }
--- a/test/tools/doclint/tidy/TrimmingEmptyTag.out	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-TrimmingEmptyTag.java:13: warning: empty <b> tag
- * <b></b>
-      ^
-TrimmingEmptyTag.java:14: warning: empty <table> tag
- * <table summary=description></table>
-                              ^
-TrimmingEmptyTag.java:15: warning: empty <caption> tag
- * <table><caption></caption></table>
-                   ^
-TrimmingEmptyTag.java:16: warning: empty <code> tag
- * <code></code>
-         ^
-TrimmingEmptyTag.java:17: warning: empty <dl> tag
- * <dl></dl>
-       ^
-TrimmingEmptyTag.java:18: warning: empty <dt> tag
- * <dl><dt></dt><dd></dd></dl>
-           ^
-TrimmingEmptyTag.java:18: warning: empty <dd> tag
- * <dl><dt></dt><dd></dd></dl>
-                    ^
-TrimmingEmptyTag.java:19: warning: empty <font> tag
- * <font></font>
-         ^
-TrimmingEmptyTag.java:20: warning: empty <i> tag
- * <i></i>
-      ^
-TrimmingEmptyTag.java:21: warning: empty <ol> tag
- * <ol></ol>
-       ^
-TrimmingEmptyTag.java:22: warning: empty <p> tag
- * <p></p>
-      ^
-TrimmingEmptyTag.java:23: warning: empty <pre> tag
- * <pre></pre>
-        ^
-TrimmingEmptyTag.java:24: warning: empty <span> tag
- * <span></span>
-         ^
-TrimmingEmptyTag.java:25: warning: empty <tt> tag
- * <tt></tt>
-       ^
-TrimmingEmptyTag.java:26: warning: empty <ul> tag
- * <ul></ul>
-       ^
-15 warnings
--- a/test/tools/doclint/tidy/UnescapedOrUnknownEntity.java	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-/*
- * @test /nodynamiccopyright/
- * @bug 8004832
- * @summary Add new doclint package
- * @library ..
- * @build DocLintTester
- * @run main DocLintTester -ref UnescapedOrUnknownEntity.out UnescapedOrUnknownEntity.java
- */
-
-// tidy: Warning: unescaped & or unknown entity ".*"
-// tidy: Warning: unescaped & which should be written as &amp;
-// tidy: Warning: entity ".*" doesn't end in ';'
-
-/**
- * L&F
- * Drag&Drop
- * if (a & b);
- */
-public class UnescapedOrUnknownEntity { }
--- a/test/tools/doclint/tidy/UnescapedOrUnknownEntity.out	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-UnescapedOrUnknownEntity.java:15: error: semicolon missing
- * L&F
-    ^
-UnescapedOrUnknownEntity.java:16: error: semicolon missing
- * Drag&Drop
-       ^
-UnescapedOrUnknownEntity.java:17: error: bad HTML entity
- * if (a & b);
-         ^
-3 errors
-
--- a/test/tools/doclint/tidy/util/Main.java	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,182 +0,0 @@
-package tidystats;
-
-import java.io.IOException;
-import java.nio.charset.Charset;
-import java.nio.file.FileSystem;
-import java.nio.file.FileSystems;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.TreeMap;
-import java.util.TreeSet;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-public class Main {
-    public static void main(String... args) throws IOException {
-        new Main().run(args);
-    }
-
-    void run(String... args) throws IOException {
-        FileSystem fs = FileSystems.getDefault();
-        List<Path> paths = new ArrayList<>();
-
-        int i;
-        for (i = 0; i < args.length; i++) {
-            String arg = args[i];
-            if (arg.startsWith("-"))
-                throw new IllegalArgumentException(arg);
-            else
-                break;
-        }
-
-        for ( ; i < args.length; i++) {
-            Path p = fs.getPath(args[i]);
-            paths.add(p);
-        }
-
-        for (Path p: paths) {
-            scan(p);
-        }
-
-        print("%6d files read", files);
-        print("%6d files had no errors or warnings", ok);
-        print("%6d files reported \"Not all warnings/errors were shown.\"", overflow);
-        print("%6d errors found", errs);
-        print("%6d warnings found", warns);
-        print("%6d recommendations to use CSS", css);
-        print("");
-
-        Map<Integer, Set<String>> sortedCounts = new TreeMap<>(
-                new Comparator<Integer>() {
-                    @Override
-                    public int compare(Integer o1, Integer o2) {
-                        return o2.compareTo(o1);
-                    }
-                });
-
-        for (Map.Entry<Pattern, Integer> e: counts.entrySet()) {
-            Pattern p = e.getKey();
-            Integer n = e.getValue();
-            Set<String> set = sortedCounts.get(n);
-            if (set == null)
-                sortedCounts.put(n, (set = new TreeSet<>()));
-            set.add(p.toString());
-        }
-
-        for (Map.Entry<Integer, Set<String>> e: sortedCounts.entrySet()) {
-            for (String p: e.getValue()) {
-                if (p.startsWith(".*")) p = p.substring(2);
-                print("%6d: %s", e.getKey(), p);
-            }
-        }
-    }
-
-    void scan(Path p) throws IOException {
-        if (Files.isDirectory(p)) {
-            for (Path c: Files.newDirectoryStream(p)) {
-                scan(c);
-            }
-        } else if (isTidyFile(p)) {
-            scan(Files.readAllLines(p, Charset.defaultCharset()));
-        }
-    }
-
-    boolean isTidyFile(Path p) {
-        return Files.isRegularFile(p) && p.getFileName().toString().endsWith(".tidy");
-    }
-
-    void scan(List<String> lines) {
-        Matcher m;
-        files++;
-        for (String line: lines) {
-            if (okPattern.matcher(line).matches()) {
-                ok++;
-            } else if ((m = countPattern.matcher(line)).matches()) {
-                warns += Integer.valueOf(m.group(1));
-                errs += Integer.valueOf(m.group(2));
-                if (m.group(3) != null)
-                    overflow++;
-            } else if ((m = guardPattern.matcher(line)).matches()) {
-                boolean found = false;
-                for (Pattern p: patterns) {
-                    if ((m = p.matcher(line)).matches()) {
-                        found = true;
-                        count(p);
-                        break;
-                    }
-                }
-                if (!found)
-                    System.err.println("Unrecognized line: " + line);
-            } else if (cssPattern.matcher(line).matches()) {
-                css++;
-            }
-        }
-    }
-
-    Map<Pattern, Integer> counts = new HashMap<>();
-    void count(Pattern p) {
-        Integer i = counts.get(p);
-        counts.put(p, (i == null) ? 1 : i + 1);
-    }
-
-    void print(String format, Object... args) {
-        System.out.println(String.format(format, args));
-    }
-
-    Pattern okPattern = Pattern.compile("No warnings or errors were found.");
-    Pattern countPattern = Pattern.compile("([0-9]+) warnings, ([0-9]+) errors were found!.*?(Not all warnings/errors were shown.)?");
-    Pattern cssPattern = Pattern.compile("You are recommended to use CSS.*");
-    Pattern guardPattern = Pattern.compile("line [0-9]+ column [0-9]+ - (Error|Warning):.*");
-
-    Pattern[] patterns = {
-        Pattern.compile(".*Error: <.*> is not recognized!"),
-        Pattern.compile(".*Error: missing quote mark for attribute value"),
-        Pattern.compile(".*Warning: <.*> anchor \".*\" already defined"),
-        Pattern.compile(".*Warning: <.*> attribute \".*\" has invalid value \".*\""),
-        Pattern.compile(".*Warning: <.*> attribute \".*\" lacks value"),
-        Pattern.compile(".*Warning: <.*> attribute \".*\" lacks value"),
-        Pattern.compile(".*Warning: <.*> attribute with missing trailing quote mark"),
-        Pattern.compile(".*Warning: <.*> dropping value \".*\" for repeated attribute \".*\""),
-        Pattern.compile(".*Warning: <.*> inserting \".*\" attribute"),
-        Pattern.compile(".*Warning: <.*> is probably intended as </.*>"),
-        Pattern.compile(".*Warning: <.*> isn't allowed in <.*> elements"),
-        Pattern.compile(".*Warning: <.*> lacks \".*\" attribute"),
-        Pattern.compile(".*Warning: <.*> missing '>' for end of tag"),
-        Pattern.compile(".*Warning: <.*> proprietary attribute \".*\""),
-        Pattern.compile(".*Warning: <.*> unexpected or duplicate quote mark"),
-        Pattern.compile(".*Warning: <a> cannot copy name attribute to id"),
-        Pattern.compile(".*Warning: <a> escaping malformed URI reference"),
-        Pattern.compile(".*Warning: <blockquote> proprietary attribute \"pre\""),
-        Pattern.compile(".*Warning: discarding unexpected <.*>"),
-        Pattern.compile(".*Warning: discarding unexpected </.*>"),
-        Pattern.compile(".*Warning: entity \".*\" doesn't end in ';'"),
-        Pattern.compile(".*Warning: inserting implicit <.*>"),
-        Pattern.compile(".*Warning: inserting missing 'title' element"),
-        Pattern.compile(".*Warning: missing <!DOCTYPE> declaration"),
-        Pattern.compile(".*Warning: missing <.*>"),
-        Pattern.compile(".*Warning: missing </.*> before <.*>"),
-        Pattern.compile(".*Warning: nested emphasis <.*>"),
-        Pattern.compile(".*Warning: plain text isn't allowed in <.*> elements"),
-        Pattern.compile(".*Warning: replacing <p> by <br>"),
-        Pattern.compile(".*Warning: replacing invalid numeric character reference .*"),
-        Pattern.compile(".*Warning: replacing unexpected .* by </.*>"),
-        Pattern.compile(".*Warning: trimming empty <.*>"),
-        Pattern.compile(".*Warning: unescaped & or unknown entity \".*\""),
-        Pattern.compile(".*Warning: unescaped & which should be written as &amp;"),
-        Pattern.compile(".*Warning: using <br> in place of <p>")
-    };
-
-    int files;
-    int ok;
-    int warns;
-    int errs;
-    int css;
-    int overflow;
-}
-
--- a/test/tools/doclint/tidy/util/tidy.sh	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +0,0 @@
-#!/bin/sh
-#
-# Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# This code is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License version 2 only, as
-# published by the Free Software Foundation.
-#
-# This code is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# version 2 for more details (a copy is included in the LICENSE file that
-# accompanied this code).
-#
-# You should have received a copy of the GNU General Public License version
-# 2 along with this work; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-# or visit www.oracle.com if you need additional information or have any
-# questions.
-#
-
-# Run the "tidy" program over the files in a directory.
-#
-# Usage:
-#   sh tidy.sh <dir>
-#
-# The "tidy" program will be run on each HTML file in <dir>,
-# and the output placed in the corresponding location in a new
-# directory <dir>.tidy.  The console output from running "tidy" will
-# be saved in a corresponding file with an additional .tidy extension.
-#
-# Non-HTML files will be copied without modification from <dir> to
-# <dir>.tidy, so that relative links within the directory tree are
-# unaffected.
-
-dir=$1
-odir=$dir.tidy
-
-( cd $dir ; find . -type f ) | \
-    while read file ; do
-        mkdir -p $odir/$(dirname $file)
-        case $file in
-            *.html )
-                cat $dir/$file | tidy 1>$odir/$file 2>$odir/$file.tidy
-                ;;
-            * ) cp $dir/$file $odir/$file
-                ;;
-        esac
-    done
--- a/test/tools/javac/7129225/TestImportStar.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/test/tools/javac/7129225/TestImportStar.java	Wed Jan 09 18:58:20 2013 +0100
@@ -26,7 +26,7 @@
 /* @test
  * @bug 7129225
  * @summary import xxx.* isn't handled correctly by annotation processing
- * @library /tools/javac/lib
+ * @library ../lib
  * @build JavacTestingAbstractProcessor
  * @compile/fail/ref=NegTest.ref -XDrawDiagnostics TestImportStar.java
  * @compile Anno.java AnnoProcessor.java
--- a/test/tools/javac/7153958/CPoolRefClassContainingInlinedCts.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/test/tools/javac/7153958/CPoolRefClassContainingInlinedCts.java	Wed Jan 09 18:58:20 2013 +0100
@@ -27,7 +27,7 @@
  * @test
  * @bug 7153958
  * @summary add constant pool reference to class containing inlined constants
- * @compile pkg/ClassToBeStaticallyImported.java CPoolRefClassContainingInlinedCts.java
+ * @compile pkg/ClassToBeStaticallyImported.java
  * @run main CPoolRefClassContainingInlinedCts
  */
 
--- a/test/tools/javac/8000518/DuplicateConstantPoolEntry.java	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,119 +0,0 @@
-/*
- * Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-/*
- * @test
- * @bug 8000518
- * @summary Javac generates duplicate name_and_type constant pool entry for
- * class BinaryOpValueExp.java
- * @run main DuplicateConstantPoolEntry
- */
-
-import com.sun.source.util.JavacTask;
-import com.sun.tools.classfile.ClassFile;
-import com.sun.tools.classfile.ConstantPoolException;
-import java.io.File;
-import java.io.IOException;
-import java.net.URI;
-import java.util.Arrays;
-import java.util.List;
-import javax.tools.JavaCompiler;
-import javax.tools.JavaFileObject;
-import javax.tools.SimpleJavaFileObject;
-import javax.tools.ToolProvider;
-
-/*
- * This bug was reproduced having two classes B and C referenced from a class A
- * class C should be compiled and generated in advance. Later class A and B should
- * be compiled like this: javac A.java B.java
- */
-
-public class DuplicateConstantPoolEntry {
-
-    public static void main(String args[]) throws Exception {
-        new DuplicateConstantPoolEntry().run();
-    }
-
-    void run() throws Exception {
-        generateFilesNeeded();
-        checkReference();
-    }
-
-    void generateFilesNeeded() throws Exception {
-
-        StringJavaFileObject[] CSource = new StringJavaFileObject[] {
-            new StringJavaFileObject("C.java",
-                "class C {C(String s) {}}"),
-        };
-
-        List<StringJavaFileObject> AandBSource = Arrays.asList(
-                new StringJavaFileObject("A.java",
-                    "class A {void test() {new B(null);new C(null);}}"),
-                new StringJavaFileObject("B.java",
-                    "class B {B(String s) {}}")
-        );
-
-        final JavaCompiler tool = ToolProvider.getSystemJavaCompiler();
-        JavacTask compileC = (JavacTask)tool.getTask(null, null, null, null, null,
-                Arrays.asList(CSource));
-        if (!compileC.call()) {
-            throw new AssertionError("Compilation error while compiling C.java sources");
-        }
-        JavacTask compileAB = (JavacTask)tool.getTask(null, null, null,
-                Arrays.asList("-cp", "."), null, AandBSource);
-        if (!compileAB.call()) {
-            throw new AssertionError("Compilation error while compiling A and B sources");
-        }
-    }
-
-    void checkReference() throws IOException, ConstantPoolException {
-        File file = new File("A.class");
-        ClassFile classFile = ClassFile.read(file);
-        for (int i = 1;
-                i < classFile.constant_pool.size() - 1;
-                i += classFile.constant_pool.get(i).size()) {
-            for (int j = i + classFile.constant_pool.get(i).size();
-                    j < classFile.constant_pool.size();
-                    j += classFile.constant_pool.get(j).size()) {
-                if (classFile.constant_pool.get(i).toString().
-                        equals(classFile.constant_pool.get(j).toString())) {
-                    throw new AssertionError(
-                            "Duplicate entries in the constant pool at positions " +
-                            i + " and " + j);
-                }
-            }
-        }
-    }
-
-    private static class StringJavaFileObject extends SimpleJavaFileObject {
-        StringJavaFileObject(String name, String text) {
-            super(URI.create(name), JavaFileObject.Kind.SOURCE);
-            this.text = text;
-        }
-        @Override
-        public CharSequence getCharContent(boolean b) {
-            return text;
-        }
-        private String text;
-    }
-}
--- a/test/tools/javac/StringsInSwitch/StringSwitches.java	Wed Jan 09 17:55:02 2013 +0100
+++ b/test/tools/javac/StringsInSwitch/StringSwitches.java	Wed Jan 09 18:58:20 2013 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009, 2011, 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
--- a/test/tools/javac/T8003967/DetectMutableStaticFields.java	Wed Jan 09 17:55:02 2013 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,242 +0,0 @@
-/*
- * Copyright (c) 2006, 2012, 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.
- */
-
-/*
- * @test
- * @bug 8003967
- * @summary detect and remove all mutable implicit static enum fields in langtools