changeset 758:1bf969e9792f jdk7-b121

Merge
author lana
date Mon, 06 Dec 2010 20:35:49 -0800
parents d53cf2e9ad6c bcbc86cc5b31
children 11e7b4c0476e
files test/tools/javac/diags/examples/EmptyBytecodeIdent.java test/tools/javac/diags/examples/IllegalBytecodeIdentChar.java test/tools/javac/diags/examples/UnclosedBytecodeIdent.java test/tools/javac/diags/examples/UnsupportedExoticID.java test/tools/javac/quid/QuotedIdent.java test/tools/javac/quid/QuotedIdent2.java
diffstat 63 files changed, 521 insertions(+), 498 deletions(-) [+]
line wrap: on
line diff
--- a/src/share/classes/com/sun/tools/javac/code/Lint.java	Fri Dec 03 19:45:34 2010 -0800
+++ b/src/share/classes/com/sun/tools/javac/code/Lint.java	Mon Dec 06 20:35:49 2010 -0800
@@ -165,6 +165,11 @@
         FINALLY("finally"),
 
         /**
+         * Warn about issues relating to use of command line options
+         */
+        OPTIONS("options"),
+
+        /**
          * Warn about issues regarding method overrides.
          */
         OVERRIDES("overrides"),
@@ -182,39 +187,39 @@
         PROCESSING("processing"),
 
         /**
+         * Warn about unchecked operations on raw types.
+         */
+        RAW("rawtypes"),
+
+        /**
          * Warn about Serializable classes that do not provide a serial version ID.
          */
         SERIAL("serial"),
 
         /**
+         * Warn about issues relating to use of statics
+         */
+        STATIC("static"),
+
+        /**
+         * Warn about proprietary API that may be removed in a future release.
+         */
+        SUNAPI("sunapi", true),
+
+        /**
+         * Warn about issues relating to use of try blocks (i.e. try-with-resources)
+         */
+        TRY("try"),
+
+        /**
          * Warn about unchecked operations on raw types.
          */
         UNCHECKED("unchecked"),
 
         /**
-         * Warn about unchecked operations on raw types.
-         */
-        RAW("rawtypes"),
-
-        /**
-         * Warn about proprietary API that may be removed in a future release.
-         */
-        SUNAPI("sunapi", true),
-
-        /**
-         * Warn about issues relating to use of statics
-         */
-        STATIC("static"),
-
-        /**
          * Warn about potentially unsafe vararg methods
          */
-        VARARGS("varargs"),
-
-        /**
-         * Warn about issues relating to use of try blocks (i.e. try-with-resources)
-         */
-        TRY("try");
+        VARARGS("varargs");
 
         LintCategory(String option) {
             this(option, false);
--- a/src/share/classes/com/sun/tools/javac/code/Scope.java	Fri Dec 03 19:45:34 2010 -0800
+++ b/src/share/classes/com/sun/tools/javac/code/Scope.java	Mon Dec 06 20:35:49 2010 -0800
@@ -528,7 +528,7 @@
             }
             public Entry next() {
                 Entry e = super.shadowed;
-                while (isBogus())
+                while (e.isBogus())
                     e = e.shadowed;
                 return e;
             }
--- a/src/share/classes/com/sun/tools/javac/code/Source.java	Fri Dec 03 19:45:34 2010 -0800
+++ b/src/share/classes/com/sun/tools/javac/code/Source.java	Mon Dec 06 20:35:49 2010 -0800
@@ -174,9 +174,6 @@
     public boolean allowUnderscoresInLiterals() {
         return compareTo(JDK1_7) >= 0;
     }
-    public boolean allowExoticIdentifiers() {
-        return compareTo(JDK1_7) >= 0;
-    }
     public boolean allowStringsInSwitch() {
         return compareTo(JDK1_7) >= 0;
     }
--- a/src/share/classes/com/sun/tools/javac/code/Types.java	Fri Dec 03 19:45:34 2010 -0800
+++ b/src/share/classes/com/sun/tools/javac/code/Types.java	Mon Dec 06 20:35:49 2010 -0800
@@ -2772,6 +2772,8 @@
     public Type glb(Type t, Type s) {
         if (s == null)
             return t;
+        else if (t.isPrimitive() || s.isPrimitive())
+            return syms.errType;
         else if (isSubtypeNoCapture(t, s))
             return t;
         else if (isSubtypeNoCapture(s, t))
@@ -2928,6 +2930,15 @@
     }
 
     /**
+     * Return the boxed type if 't' is primitive, otherwise return 't' itself.
+     */
+    public Type boxedTypeOrType(Type t) {
+        return t.isPrimitive() ?
+            boxedClass(t).type :
+            t;
+    }
+
+    /**
      * Return the primitive type corresponding to a boxed type.
      */
     public Type unboxedType(Type t) {
--- a/src/share/classes/com/sun/tools/javac/comp/Infer.java	Fri Dec 03 19:45:34 2010 -0800
+++ b/src/share/classes/com/sun/tools/javac/comp/Infer.java	Mon Dec 06 20:35:49 2010 -0800
@@ -305,7 +305,8 @@
             uv.hibounds = hibounds.toList();
         }
         Type qtype1 = types.subst(that.qtype, that.tvars, undetvars);
-        if (!types.isSubtype(qtype1, to)) {
+        if (!types.isSubtype(qtype1,
+                qtype1.tag == UNDETVAR ? types.boxedTypeOrType(to) : to)) {
             throw unambiguousNoInstanceException
                 .setMessage("infer.no.conforming.instance.exists",
                             that.tvars, that.qtype, to);
--- a/src/share/classes/com/sun/tools/javac/file/JavacFileManager.java	Fri Dec 03 19:45:34 2010 -0800
+++ b/src/share/classes/com/sun/tools/javac/file/JavacFileManager.java	Mon Dec 06 20:35:49 2010 -0800
@@ -25,6 +25,7 @@
 
 package com.sun.tools.javac.file;
 
+import java.util.Comparator;
 import java.io.ByteArrayOutputStream;
 import java.io.File;
 import java.io.FileNotFoundException;
@@ -110,6 +111,20 @@
     protected boolean mmappedIO;
     protected boolean ignoreSymbolFile;
 
+    protected enum SortFiles implements Comparator<File> {
+        FORWARD {
+            public int compare(File f1, File f2) {
+                return f1.getName().compareTo(f2.getName());
+            }
+        },
+        REVERSE {
+            public int compare(File f1, File f2) {
+                return -f1.getName().compareTo(f2.getName());
+            }
+        };
+    };
+    protected SortFiles sortFiles;
+
     /**
      * Register a Context.Factory to create a JavacFileManager.
      */
@@ -152,6 +167,16 @@
 
         mmappedIO = options.isSet("mmappedIO");
         ignoreSymbolFile = options.isSet("ignore.symbol.file");
+
+        String sf = options.get("sortFiles");
+        if (sf != null) {
+            sortFiles = (sf.equals("reverse") ? SortFiles.REVERSE : SortFiles.FORWARD);
+        }
+    }
+
+    @Override
+    public boolean isDefaultBootClassPath() {
+        return paths.isDefaultBootClassPath();
     }
 
     public JavaFileObject getFileForInput(String name) {
@@ -293,6 +318,9 @@
             if (files == null)
                 return;
 
+            if (sortFiles != null)
+                Arrays.sort(files, sortFiles);
+
             for (File f: files) {
                 String fname = f.getName();
                 if (f.isDirectory()) {
--- a/src/share/classes/com/sun/tools/javac/file/Paths.java	Fri Dec 03 19:45:34 2010 -0800
+++ b/src/share/classes/com/sun/tools/javac/file/Paths.java	Mon Dec 06 20:35:49 2010 -0800
@@ -114,6 +114,11 @@
      */
     private File bootClassPathRtJar = null;
 
+    /**
+     *  Is bootclasspath the default?
+     */
+    private boolean isDefaultBootClassPath;
+
     Path getPathForLocation(Location location) {
         Path path = pathsForLocation.get(location);
         if (path == null)
@@ -129,7 +134,7 @@
             if (location == CLASS_PATH)
                 p = computeUserClassPath();
             else if (location == PLATFORM_CLASS_PATH)
-                p = computeBootClassPath();
+                p = computeBootClassPath(); // sets isDefaultBootClassPath
             else if (location == ANNOTATION_PROCESSOR_PATH)
                 p = computeAnnotationProcessorPath();
             else if (location == SOURCE_PATH)
@@ -138,6 +143,8 @@
                 // no defaults for other paths
                 p = null;
         } else {
+            if (location == PLATFORM_CLASS_PATH)
+                isDefaultBootClassPath = false;
             p = new Path();
             for (File f: path)
                 p.addFile(f, warn); // TODO: is use of warn appropriate?
@@ -145,6 +152,11 @@
         pathsForLocation.put(location, p);
     }
 
+    public boolean isDefaultBootClassPath() {
+        lazy();
+        return isDefaultBootClassPath;
+    }
+
     protected void lazy() {
         if (!inited) {
             warn = lint.isEnabled(Lint.LintCategory.PATH);
@@ -262,9 +274,10 @@
         }
 
         public Path addFiles(String files, boolean warn) {
-            if (files != null)
+            if (files != null) {
                 for (File file : getPathEntries(files, emptyPathDefault))
                     addFile(file, warn);
+            }
             return this;
         }
 
@@ -334,18 +347,23 @@
 
     private Path computeBootClassPath() {
         bootClassPathRtJar = null;
-        String optionValue;
         Path path = new Path();
 
-        path.addFiles(options.get(XBOOTCLASSPATH_PREPEND));
+        String bootclasspathOpt = options.get(BOOTCLASSPATH);
+        String endorseddirsOpt = options.get(ENDORSEDDIRS);
+        String extdirsOpt = options.get(EXTDIRS);
+        String xbootclasspathPrependOpt = options.get(XBOOTCLASSPATH_PREPEND);
+        String xbootclasspathAppendOpt = options.get(XBOOTCLASSPATH_APPEND);
 
-        if ((optionValue = options.get(ENDORSEDDIRS)) != null)
-            path.addDirectories(optionValue);
+        path.addFiles(xbootclasspathPrependOpt);
+
+        if (endorseddirsOpt != null)
+            path.addDirectories(endorseddirsOpt);
         else
             path.addDirectories(System.getProperty("java.endorsed.dirs"), false);
 
-        if ((optionValue = options.get(BOOTCLASSPATH)) != null) {
-            path.addFiles(optionValue);
+        if (bootclasspathOpt != null) {
+            path.addFiles(bootclasspathOpt);
         } else {
             // Standard system classes for this compiler's release.
             String files = System.getProperty("sun.boot.class.path");
@@ -357,16 +375,21 @@
             }
         }
 
-        path.addFiles(options.get(XBOOTCLASSPATH_APPEND));
+        path.addFiles(xbootclasspathAppendOpt);
 
         // Strictly speaking, standard extensions are not bootstrap
         // classes, but we treat them identically, so we'll pretend
         // that they are.
-        if ((optionValue = options.get(EXTDIRS)) != null)
-            path.addDirectories(optionValue);
+        if (extdirsOpt != null)
+            path.addDirectories(extdirsOpt);
         else
             path.addDirectories(System.getProperty("java.ext.dirs"), false);
 
+        isDefaultBootClassPath =
+                (xbootclasspathPrependOpt == null) &&
+                (bootclasspathOpt == null) &&
+                (xbootclasspathAppendOpt == null);
+
         return path;
     }
 
--- a/src/share/classes/com/sun/tools/javac/jvm/ClassReader.java	Fri Dec 03 19:45:34 2010 -0800
+++ b/src/share/classes/com/sun/tools/javac/jvm/ClassReader.java	Mon Dec 06 20:35:49 2010 -0800
@@ -2615,7 +2615,6 @@
                     String binaryName = fileManager.inferBinaryName(currentLoc, fo);
                     String simpleName = binaryName.substring(binaryName.lastIndexOf(".") + 1);
                     if (SourceVersion.isIdentifier(simpleName) ||
-                        fo.getKind() == JavaFileObject.Kind.CLASS ||
                         simpleName.equals("package-info"))
                         includeClassFile(p, fo);
                     break;
--- a/src/share/classes/com/sun/tools/javac/main/JavaCompiler.java	Fri Dec 03 19:45:34 2010 -0800
+++ b/src/share/classes/com/sun/tools/javac/main/JavaCompiler.java	Mon Dec 06 20:35:49 2010 -0800
@@ -51,6 +51,7 @@
 import com.sun.tools.javac.file.JavacFileManager;
 import com.sun.tools.javac.util.*;
 import com.sun.tools.javac.code.*;
+import com.sun.tools.javac.code.Lint.LintCategory;
 import com.sun.tools.javac.code.Symbol.*;
 import com.sun.tools.javac.tree.*;
 import com.sun.tools.javac.tree.JCTree.*;
@@ -370,6 +371,15 @@
         processPcks   = options.isSet("process.packages");
         werror        = options.isSet(WERROR);
 
+        if (source.compareTo(Source.DEFAULT) < 0) {
+            if (options.isUnset(XLINT_CUSTOM, "-" + LintCategory.OPTIONS.option)) {
+                if (fileManager instanceof BaseFileManager) {
+                    if (((BaseFileManager) fileManager).isDefaultBootClassPath())
+                        log.warning(LintCategory.OPTIONS, "source.no.bootclasspath", source.name);
+                }
+            }
+        }
+
         verboseCompilePolicy = options.isSet("verboseCompilePolicy");
 
         if (attrParseOnly)
@@ -783,6 +793,7 @@
         hasBeenUsed = true;
 
         start_msec = now();
+
         try {
             initProcessAnnotations(processors);
 
@@ -797,7 +808,7 @@
             elapsed_msec = delegateCompiler.elapsed_msec;
         } catch (Abort ex) {
             if (devVerbose)
-                ex.printStackTrace();
+                ex.printStackTrace(System.err);
         } finally {
             if (procEnvImpl != null)
                 procEnvImpl.close();
@@ -841,7 +852,7 @@
             }
         } catch (Abort ex) {
             if (devVerbose)
-                ex.printStackTrace();
+                ex.printStackTrace(System.err);
         }
 
         if (verbose) {
--- a/src/share/classes/com/sun/tools/javac/main/Main.java	Fri Dec 03 19:45:34 2010 -0800
+++ b/src/share/classes/com/sun/tools/javac/main/Main.java	Mon Dec 06 20:35:49 2010 -0800
@@ -420,7 +420,7 @@
                          processors);
 
             if (log.expectDiagKeys != null) {
-                if (log.expectDiagKeys.size() == 0) {
+                if (log.expectDiagKeys.isEmpty()) {
                     Log.printLines(log.noticeWriter, "all expected diagnostics found");
                     return EXIT_OK;
                 } else {
@@ -506,7 +506,7 @@
     void apMessage(AnnotationProcessingError ex) {
         Log.printLines(out,
                        getLocalizedString("msg.proc.annotation.uncaught.exception"));
-        ex.getCause().printStackTrace();
+        ex.getCause().printStackTrace(out);
     }
 
     /** Display the location and checksum of a class. */
@@ -563,6 +563,7 @@
     public static void useRawMessages(boolean enable) {
         if (enable) {
             messages = new JavacMessages(javacBundleName) {
+                    @Override
                     public String getLocalizedString(String key, Object... args) {
                         return key;
                     }
--- a/src/share/classes/com/sun/tools/javac/nio/JavacPathFileManager.java	Fri Dec 03 19:45:34 2010 -0800
+++ b/src/share/classes/com/sun/tools/javac/nio/JavacPathFileManager.java	Mon Dec 06 20:35:49 2010 -0800
@@ -172,6 +172,11 @@
         return getClassLoader(lb.toArray(new URL[lb.size()]));
     }
 
+    @Override
+    public boolean isDefaultBootClassPath() {
+        return searchPaths.isDefaultBootClassPath();
+    }
+
     // <editor-fold defaultstate="collapsed" desc="Location handling">
 
     public boolean hasLocation(Location location) {
--- a/src/share/classes/com/sun/tools/javac/parser/Scanner.java	Fri Dec 03 19:45:34 2010 -0800
+++ b/src/share/classes/com/sun/tools/javac/parser/Scanner.java	Mon Dec 06 20:35:49 2010 -0800
@@ -66,10 +66,6 @@
      */
     private boolean allowUnderscoresInLiterals;
 
-    /** Allow exotic identifiers.
-     */
-    private boolean allowExoticIdentifiers;
-
     /** The source language setting.
      */
     private Source source;
@@ -143,7 +139,6 @@
         allowBinaryLiterals = source.allowBinaryLiterals();
         allowHexFloats = source.allowHexFloats();
         allowUnderscoresInLiterals = source.allowBinaryLiterals();
-        allowExoticIdentifiers = source.allowExoticIdentifiers();  // for invokedynamic
     }
 
     private static final boolean hexFloatsWork = hexFloatsWork();
@@ -295,7 +290,7 @@
 
     /** Read next character in character or string literal and copy into sbuf.
      */
-    private void scanLitChar(boolean forBytecodeName) {
+    private void scanLitChar() {
         if (ch == '\\') {
             if (buf[bp+1] == '\\' && unicodeConversionBp != bp) {
                 bp++;
@@ -335,18 +330,6 @@
                     putChar('\"'); scanChar(); break;
                 case '\\':
                     putChar('\\'); scanChar(); break;
-                case '|': case ',': case '?': case '%':
-                case '^': case '_': case '{': case '}':
-                case '!': case '-': case '=':
-                    if (forBytecodeName) {
-                        // Accept escape sequences for dangerous bytecode chars.
-                        // This is illegal in normal Java string or character literals.
-                        // Note that the escape sequence itself is passed through.
-                        putChar('\\'); putChar(ch); scanChar();
-                    } else {
-                        lexError(bp, "illegal.esc.char");
-                    }
-                    break;
                 default:
                     lexError(bp, "illegal.esc.char");
                 }
@@ -355,24 +338,6 @@
             putChar(ch); scanChar();
         }
     }
-    private void scanLitChar() {
-        scanLitChar(false);
-    }
-
-    /** Read next character in an exotic name #"foo"
-     */
-    private void scanBytecodeNameChar() {
-        switch (ch) {
-        // reject any "dangerous" char which is illegal somewhere in the JVM spec
-        // cf. http://blogs.sun.com/jrose/entry/symbolic_freedom_in_the_vm
-        case '/': case '.': case ';':  // illegal everywhere
-        case '<': case '>':  // illegal in methods, dangerous in classes
-        case '[':  // illegal in classes
-            lexError(bp, "illegal.bytecode.ident.char", String.valueOf((int)ch));
-            break;
-        }
-        scanLitChar(true);
-    }
 
     private void scanDigits(int digitRadix) {
         char saveCh;
@@ -970,30 +935,6 @@
                         lexError(pos, "unclosed.str.lit");
                     }
                     return;
-                case '#':
-                    scanChar();
-                    if (ch == '\"') {
-                        if (!allowExoticIdentifiers) {
-                            lexError("unsupported.exotic.id", source.name);
-                            allowExoticIdentifiers = true;
-                        }
-                        scanChar();
-                        if (ch == '\"')
-                            lexError(pos, "empty.bytecode.ident");
-                        while (ch != '\"' && ch != CR && ch != LF && bp < buflen) {
-                            scanBytecodeNameChar();
-                        }
-                        if (ch == '\"') {
-                            name = names.fromChars(sbuf, 0, sp);
-                            token = IDENTIFIER;  // even if #"int" or #"do"
-                            scanChar();
-                        } else {
-                            lexError(pos, "unclosed.bytecode.ident");
-                        }
-                    } else {
-                        lexError("illegal.char", String.valueOf((int)'#'));
-                    }
-                    return;
                 default:
                     if (isSpecial(ch)) {
                         scanOperator();
--- a/src/share/classes/com/sun/tools/javac/resources/compiler.properties	Fri Dec 03 19:45:34 2010 -0800
+++ b/src/share/classes/com/sun/tools/javac/resources/compiler.properties	Mon Dec 06 20:35:49 2010 -0800
@@ -153,8 +153,6 @@
 
 compiler.err.else.without.if=\
     ''else'' without ''if''
-compiler.err.empty.bytecode.ident=\
-    empty bytecode identifier
 compiler.err.empty.char.lit=\
     empty character literal
 compiler.err.encl.class.required=\
@@ -201,8 +199,6 @@
 
 compiler.err.icls.cant.have.static.decl=\
     inner classes cannot have static declarations
-compiler.err.illegal.bytecode.ident.char=\
-    illegal bytecode identifier character: \\{0}
 compiler.err.illegal.char=\
     illegal character: \\{0}
 compiler.err.illegal.char.for.encoding=\
@@ -472,8 +468,6 @@
 compiler.err.types.incompatible.diff.ret=\
     types {0} and {1} are incompatible; both define {2}, but with unrelated return types
 
-compiler.err.unclosed.bytecode.ident=\
-    unclosed bytecode identifier
 compiler.err.unclosed.char.lit=\
     unclosed character literal
 compiler.err.unclosed.comment=\
@@ -770,6 +764,9 @@
 compiler.warn.static.not.qualified.by.type=\
     static {0} should be qualified by type name, {1}, instead of by an expression
 
+compiler.warn.source.no.bootclasspath=\
+    bootstrap class path not set in conjunction with -source {0}
+
 # Warnings related to annotation processing
 compiler.warn.proc.package.does.not.exist=\
     package {0} does not exist
@@ -1269,10 +1266,6 @@
     underscores in literals are not supported in -source {0}\n\
 (use -source 7 or higher to enable underscores in literals)
 
-compiler.err.unsupported.exotic.id=\
-    exotic identifiers #"___" are not supported in -source {0}\n\
-(use -source 7 or higher to enable exotic identifiers)
-
 compiler.err.try.with.resources.not.supported.in.source=\
     try-with-resources is not supported in -source {0}\n\
 (use -source 7 or higher to enable try-with-resources)
--- a/src/share/classes/com/sun/tools/javac/util/BaseFileManager.java	Fri Dec 03 19:45:34 2010 -0800
+++ b/src/share/classes/com/sun/tools/javac/util/BaseFileManager.java	Mon Dec 06 20:35:49 2010 -0800
@@ -59,7 +59,7 @@
  * There are no references here to file-system specific objects such as
  * java.io.File or java.nio.file.Path.
  */
-public class BaseFileManager {
+public abstract class BaseFileManager {
     protected BaseFileManager(Charset charset) {
         this.charset = charset;
         byteBufferCache = new ByteBufferCache();
@@ -163,6 +163,9 @@
         }
         return -1;
     }
+
+    public abstract boolean isDefaultBootClassPath();
+
     // </editor-fold>
 
     // <editor-fold defaultstate="collapsed" desc="Encoding">
--- a/src/share/classes/com/sun/tools/javadoc/JavadocClassReader.java	Fri Dec 03 19:45:34 2010 -0800
+++ b/src/share/classes/com/sun/tools/javadoc/JavadocClassReader.java	Mon Dec 06 20:35:49 2010 -0800
@@ -62,6 +62,7 @@
     private JavadocClassReader(Context context) {
         super(context, true);
         docenv = DocEnv.instance(context);
+        preferSource = true;
     }
 
     /**
--- a/test/tools/javac/6341866/T6341866.java	Fri Dec 03 19:45:34 2010 -0800
+++ b/test/tools/javac/6341866/T6341866.java	Mon Dec 06 20:35:49 2010 -0800
@@ -97,7 +97,7 @@
         processorServices.delete();
 
         List<String> opts = new ArrayList<String>();
-        opts.addAll(Arrays.asList("-d", ".", "-sourcepath", testSrc, "-classpath", testClasses, "-source", "1.6"));
+        opts.addAll(Arrays.asList("-d", ".", "-sourcepath", testSrc, "-classpath", testClasses, "-source", "1.6", "-Xlint:-options"));
         if (implicitType.opt != null)
             opts.add(implicitType.opt);
 
--- a/test/tools/javac/ClassFileModifiers/MemberModifiers.java	Fri Dec 03 19:45:34 2010 -0800
+++ b/test/tools/javac/ClassFileModifiers/MemberModifiers.java	Mon Dec 06 20:35:49 2010 -0800
@@ -26,7 +26,7 @@
  * @bug 4249112 4785453
  * @summary Verify that implicit member modifiers are set correctly.
  *
- * @compile/ref=MemberModifiers.out  -source 1.4 -target 1.4.2 -XDdumpmodifiers=cfm MemberModifiers.java
+ * @compile/ref=MemberModifiers.out  -source 1.4 -target 1.4.2 -Xlint:-options -XDdumpmodifiers=cfm MemberModifiers.java
  */
 
 // Currently, we check only that members of final classes are not final.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/tools/javac/T6900037.java	Mon Dec 06 20:35:49 2010 -0800
@@ -0,0 +1,34 @@
+/*
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 6900037
+ * @summary javac should warn if earlier -source is used and bootclasspath not set
+ * @compile T6900037.java
+ * @compile -source 1.6 T6900037.java
+ * @compile/fail/ref=T6900037.out -XDrawDiagnostics -Werror -source 1.6 T6900037.java
+ * @compile -Werror -source 1.6 -Xlint:-options T6900037.java
+ */
+
+class T6900037 { }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/tools/javac/T6900037.out	Mon Dec 06 20:35:49 2010 -0800
@@ -0,0 +1,4 @@
+- compiler.warn.source.no.bootclasspath: 1.6
+- compiler.err.warnings.and.werror
+1 error
+1 warning
--- a/test/tools/javac/TryWithResources/PlainTry.java	Fri Dec 03 19:45:34 2010 -0800
+++ b/test/tools/javac/TryWithResources/PlainTry.java	Mon Dec 06 20:35:49 2010 -0800
@@ -3,8 +3,8 @@
  * @bug 6911256 6964740
  * @author Joseph D. Darcy
  * @summary Test error messages for an unadorned try
- * @compile/fail/ref=PlainTry6.out -XDrawDiagnostics -source 6 PlainTry.java
- * @compile/fail/ref=PlainTry.out  -XDrawDiagnostics           PlainTry.java
+ * @compile/fail/ref=PlainTry6.out -XDrawDiagnostics -source 6 -Xlint:-options PlainTry.java
+ * @compile/fail/ref=PlainTry.out  -XDrawDiagnostics                           PlainTry.java
  */
 public class PlainTry {
     public static void main(String... args) {
--- a/test/tools/javac/annotations/neg/Dep.java	Fri Dec 03 19:45:34 2010 -0800
+++ b/test/tools/javac/annotations/neg/Dep.java	Mon Dec 06 20:35:49 2010 -0800
@@ -27,9 +27,9 @@
  * @summary Please add annotation <at>Deprecated to supplant the javadoc tag
  * @author gafter
  *
- * @compile      -source 1.4 -Xlint:dep-ann -Werror Dep.java
- * @compile/fail             -Xlint:dep-ann -Werror Dep.java
- * @compile                  -Xlint:dep-ann         Dep.java
+ * @compile      -source 1.4 -Xlint:-options -Xlint:dep-ann -Werror Dep.java
+ * @compile/fail                             -Xlint:dep-ann -Werror Dep.java
+ * @compile                                  -Xlint:dep-ann         Dep.java
  */
 
 /** @deprecated */
--- a/test/tools/javac/diags/examples/AnnotationsNotSupported.java	Fri Dec 03 19:45:34 2010 -0800
+++ b/test/tools/javac/diags/examples/AnnotationsNotSupported.java	Mon Dec 06 20:35:49 2010 -0800
@@ -22,7 +22,7 @@
  */
 
 // key: compiler.err.annotations.not.supported.in.source
-// options: -source 1.4
+// options: -source 1.4 -Xlint:-options
 
 @Deprecated
 class AnnotationsNotSupported { }
--- a/test/tools/javac/diags/examples/AssertAsIdentifier.java	Fri Dec 03 19:45:34 2010 -0800
+++ b/test/tools/javac/diags/examples/AssertAsIdentifier.java	Mon Dec 06 20:35:49 2010 -0800
@@ -22,7 +22,7 @@
  */
 
 // key: compiler.warn.assert.as.identifier
-// options: -source 1.3
+// options: -source 1.3 -Xlint:-options
 
 class AssertAsIdentifier {
     int assert;
--- a/test/tools/javac/diags/examples/DiamondNotSupported.java	Fri Dec 03 19:45:34 2010 -0800
+++ b/test/tools/javac/diags/examples/DiamondNotSupported.java	Mon Dec 06 20:35:49 2010 -0800
@@ -22,7 +22,7 @@
  */
 
 // key: compiler.err.diamond.not.supported.in.source
-// options: -source 6
+// options: -source 6 -Xlint:-options
 
 import java.util.*;
 
--- a/test/tools/javac/diags/examples/EmptyBytecodeIdent.java	Fri Dec 03 19:45:34 2010 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-// key: compiler.err.empty.bytecode.ident
-
-class EmptyBytecodeIdent {
-    int #"" = 3;
-}
--- a/test/tools/javac/diags/examples/EnumAsIdentifier.java	Fri Dec 03 19:45:34 2010 -0800
+++ b/test/tools/javac/diags/examples/EnumAsIdentifier.java	Mon Dec 06 20:35:49 2010 -0800
@@ -22,7 +22,7 @@
  */
 
 // key: compiler.warn.enum.as.identifier
-// options: -source 1.3
+// options: -source 1.3 -Xlint:-options
 
 class EnumAsIdentifier {
     int enum;
--- a/test/tools/javac/diags/examples/EnumsNotSupported.java	Fri Dec 03 19:45:34 2010 -0800
+++ b/test/tools/javac/diags/examples/EnumsNotSupported.java	Mon Dec 06 20:35:49 2010 -0800
@@ -22,6 +22,6 @@
  */
 
 // key: compiler.err.enums.not.supported.in.source
-// options: -source 1.4
+// options: -source 1.4 -Xlint:-options
 
 enum EnumsNotSupported { A, B, C }
--- a/test/tools/javac/diags/examples/Expected2.java	Fri Dec 03 19:45:34 2010 -0800
+++ b/test/tools/javac/diags/examples/Expected2.java	Mon Dec 06 20:35:49 2010 -0800
@@ -22,6 +22,6 @@
  */
 
 // key: compiler.err.expected2
-// options: -source 1.4
+// options: -source 1.4 -Xlint:-options
 
 int Expected2;
--- a/test/tools/javac/diags/examples/ForeachNotSupported.java	Fri Dec 03 19:45:34 2010 -0800
+++ b/test/tools/javac/diags/examples/ForeachNotSupported.java	Mon Dec 06 20:35:49 2010 -0800
@@ -22,7 +22,7 @@
  */
 
 // key: compiler.err.foreach.not.supported.in.source
-// options: -source 1.4
+// options: -source 1.4 -Xlint:-options
 
 class ForeachNotSupported {
     void m(String[] args) {
--- a/test/tools/javac/diags/examples/GenericsNotSupported.java	Fri Dec 03 19:45:34 2010 -0800
+++ b/test/tools/javac/diags/examples/GenericsNotSupported.java	Mon Dec 06 20:35:49 2010 -0800
@@ -22,6 +22,6 @@
  */
 
 // key: compiler.err.generics.not.supported.in.source
-// options: -source 1.4
+// options: -source 1.4 -Xlint:-options
 
 class GenericsNotSupported<T> { }
--- a/test/tools/javac/diags/examples/IllegalBytecodeIdentChar.java	Fri Dec 03 19:45:34 2010 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-// key: compiler.err.illegal.bytecode.ident.char
-
-class IllegalBytecodeIdentChar {
-    int #"abc/def" = 3;
-}
--- a/test/tools/javac/diags/examples/MulticatchNotSupported.java	Fri Dec 03 19:45:34 2010 -0800
+++ b/test/tools/javac/diags/examples/MulticatchNotSupported.java	Mon Dec 06 20:35:49 2010 -0800
@@ -22,7 +22,7 @@
  */
 
 // key: compiler.err.multicatch.not.supported.in.source
-// options: -source 1.6
+// options: -source 1.6 -Xlint:-options
 
 class MulticatchNotSupported {
     class E1 extends Exception { }
--- a/test/tools/javac/diags/examples/NeitherConditionalSubtype.java	Fri Dec 03 19:45:34 2010 -0800
+++ b/test/tools/javac/diags/examples/NeitherConditionalSubtype.java	Mon Dec 06 20:35:49 2010 -0800
@@ -22,7 +22,7 @@
  */
 
 // key: compiler.err.neither.conditional.subtype
-// options: -source 1.4
+// options: -source 1.4 -Xlint:-options
 
 class X {
     Object m(boolean b) {
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/tools/javac/diags/examples/SourceNoBootclasspath.java	Mon Dec 06 20:35:49 2010 -0800
@@ -0,0 +1,27 @@
+/*
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+// key: compiler.warn.source.no.bootclasspath
+// options: -source 6
+
+class SourceNoBootclasspath { }
--- a/test/tools/javac/diags/examples/StaticImportNotSupported.java	Fri Dec 03 19:45:34 2010 -0800
+++ b/test/tools/javac/diags/examples/StaticImportNotSupported.java	Mon Dec 06 20:35:49 2010 -0800
@@ -22,7 +22,7 @@
  */
 
 // key: compiler.err.static.import.not.supported.in.source
-// options: -source 1.4
+// options: -source 1.4 -Xlint:-options
 
 import static java.util.regex.Pattern.*;
 
--- a/test/tools/javac/diags/examples/StringSwitchNotSupported.java	Fri Dec 03 19:45:34 2010 -0800
+++ b/test/tools/javac/diags/examples/StringSwitchNotSupported.java	Mon Dec 06 20:35:49 2010 -0800
@@ -22,7 +22,7 @@
  */
 
 // key: compiler.err.string.switch.not.supported.in.source
-// options: -source 6
+// options: -source 6 -Xlint:-options
 
 class StringSwitchNotSupported {
     int m(String s) {
--- a/test/tools/javac/diags/examples/TryResourceNotSupported.java	Fri Dec 03 19:45:34 2010 -0800
+++ b/test/tools/javac/diags/examples/TryResourceNotSupported.java	Mon Dec 06 20:35:49 2010 -0800
@@ -22,7 +22,7 @@
  */
 
 // key: compiler.err.try.with.resources.not.supported.in.source
-// options: -source 1.6
+// options: -source 1.6 -Xlint:-options
 
 import java.io.*;
 
--- a/test/tools/javac/diags/examples/TryWithoutCatchOrFinally.java	Fri Dec 03 19:45:34 2010 -0800
+++ b/test/tools/javac/diags/examples/TryWithoutCatchOrFinally.java	Mon Dec 06 20:35:49 2010 -0800
@@ -22,7 +22,7 @@
  */
 
 // key: compiler.err.try.without.catch.or.finally
-// options: -source 1.6
+// options: -source 1.6 -Xlint:-options
 
 class TryWithoutCatchOrFinally {
     void m() {
--- a/test/tools/javac/diags/examples/UnclosedBytecodeIdent.java	Fri Dec 03 19:45:34 2010 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-// key: compiler.err.unclosed.bytecode.ident
-
-class UnclosedBytecodeIdent {
-    int #"abc
-}
--- a/test/tools/javac/diags/examples/UnsupportedBinaryLiteral.java	Fri Dec 03 19:45:34 2010 -0800
+++ b/test/tools/javac/diags/examples/UnsupportedBinaryLiteral.java	Mon Dec 06 20:35:49 2010 -0800
@@ -22,7 +22,7 @@
  */
 
 // key: compiler.err.unsupported.binary.lit
-// options: -source 6
+// options: -source 6 -Xlint:-options
 
 class UnsupportedBinaryLiteral {
     int i = 0b01000010;
--- a/test/tools/javac/diags/examples/UnsupportedExoticID.java	Fri Dec 03 19:45:34 2010 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-// key: compiler.err.unsupported.exotic.id
-// options: -source 6
-
-class UnsupportedExoticID {
-    void m() {
-        Object #"Hello!" = null;
-    }
-}
--- a/test/tools/javac/diags/examples/UnsupportedFpLit.java	Fri Dec 03 19:45:34 2010 -0800
+++ b/test/tools/javac/diags/examples/UnsupportedFpLit.java	Mon Dec 06 20:35:49 2010 -0800
@@ -22,7 +22,7 @@
  */
 
 // key: compiler.err.unsupported.fp.lit
-// options: -source 1.4
+// options: -source 1.4 -Xlint:-options
 
 class UnsupportedFpLit {
     float f = 0xCafe.BabeP1;
--- a/test/tools/javac/diags/examples/UnsupportedUnderscoreLiteral.java	Fri Dec 03 19:45:34 2010 -0800
+++ b/test/tools/javac/diags/examples/UnsupportedUnderscoreLiteral.java	Mon Dec 06 20:35:49 2010 -0800
@@ -22,7 +22,7 @@
  */
 
 // key: compiler.err.unsupported.underscore.lit
-// options: -source 6
+// options: -source 6 -Xlint:-options
 
 class UnsupportedUnderscoreLiteral {
     int i = 123_456_789;
--- a/test/tools/javac/diags/examples/VarargsNotSupported.java	Fri Dec 03 19:45:34 2010 -0800
+++ b/test/tools/javac/diags/examples/VarargsNotSupported.java	Mon Dec 06 20:35:49 2010 -0800
@@ -22,7 +22,7 @@
  */
 
 // key: compiler.err.varargs.not.supported.in.source
-// options: -source 1.4
+// options: -source 1.4 -Xlint:-options
 
 class VarargsNotSupported {
     void m(String... args) { }
--- a/test/tools/javac/enum/6384542/T6384542.java	Fri Dec 03 19:45:34 2010 -0800
+++ b/test/tools/javac/enum/6384542/T6384542.java	Mon Dec 06 20:35:49 2010 -0800
@@ -3,8 +3,8 @@
  * @bug     6384542
  * @summary crash: test/tools/javac/versions/check.sh
  * @author  Peter von der Ah\u00e9
- * @compile/fail -source 1.4 T6384542.java
- * @compile/fail/ref=T6384542.out -source 1.4 -XDrawDiagnostics T6384542.java
+ * @compile/fail -source 1.4 -Xlint:-options T6384542.java
+ * @compile/fail/ref=T6384542.out -source 1.4 -Xlint:-options -XDrawDiagnostics T6384542.java
  */
 
 import static java.lang.Math.sin;
--- a/test/tools/javac/enum/6384542/T6384542a.java	Fri Dec 03 19:45:34 2010 -0800
+++ b/test/tools/javac/enum/6384542/T6384542a.java	Mon Dec 06 20:35:49 2010 -0800
@@ -5,8 +5,8 @@
  * @author  Peter von der Ah\u00e9
  * @compile/fail -source 5   T6384542a.java
  * @compile      -source 1.4 T6384542a.java
- * @compile/fail/ref=T6384542a_5.out -source 5   -XDrawDiagnostics T6384542a.java
- * @compile/ref=T6384542a_1_4.out    -source 1.4 -XDrawDiagnostics T6384542a.java
+ * @compile/fail/ref=T6384542a_5.out -source 5   -Xlint:-options -XDrawDiagnostics T6384542a.java
+ * @compile/ref=T6384542a_1_4.out    -source 1.4 -Xlint:-options -XDrawDiagnostics T6384542a.java
  */
 
 public class T6384542a {
--- a/test/tools/javac/generics/inference/6638712/T6638712a.java	Fri Dec 03 19:45:34 2010 -0800
+++ b/test/tools/javac/generics/inference/6638712/T6638712a.java	Mon Dec 06 20:35:49 2010 -0800
@@ -10,7 +10,7 @@
 
 class T6638712a {
 
-    <T> Comparator<T> compound(Iterable<? extends Comparator<? super T>> it) {}
+    <T> Comparator<T> compound(Iterable<? extends Comparator<? super T>> it) { return null; }
 
     public void test(List<Comparator<?>> x) {
         Comparator<String> c3 = compound(x);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/tools/javac/generics/inference/6995200/T6995200.java	Mon Dec 06 20:35:49 2010 -0800
@@ -0,0 +1,67 @@
+/*
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 6995200
+ *
+ * @summary JDK 7 compiler crashes when type-variable is inferred from expected primitive type
+ * @author mcimadamore
+ * @compile T6995200.java
+ *
+ */
+
+import java.util.List;
+
+class T6995200 {
+    static <T> T getValue() {
+        return null;
+    }
+
+    <X> void test() {
+        byte v1 = getValue();
+        short v2 = getValue();
+        int v3 = getValue();
+        long v4 = getValue();
+        float v5 = getValue();
+        double v6 = getValue();
+        String v7 = getValue();
+        String[] v8 = getValue();
+        List<String> v9 = getValue();
+        List<String>[] v10 = getValue();
+        List<? extends String> v11 = getValue();
+        List<? extends String>[] v12 = getValue();
+        List<? super String> v13 = getValue();
+        List<? super String>[] v14 = getValue();
+        List<?> v15 = getValue();
+        List<?>[] v16 = getValue();
+        X v17 = getValue();
+        X[] v18 = getValue();
+        List<X> v19 = getValue();
+        List<X>[] v20 = getValue();
+        List<? extends X> v21 = getValue();
+        List<? extends X>[] v22 = getValue();
+        List<? super X> v23 = getValue();
+        List<? super X>[] v24 = getValue();
+    }
+}
--- a/test/tools/javac/literals/BadBinaryLiterals.java	Fri Dec 03 19:45:34 2010 -0800
+++ b/test/tools/javac/literals/BadBinaryLiterals.java	Mon Dec 06 20:35:49 2010 -0800
@@ -2,7 +2,7 @@
  * @test /nodynamiccopyright/
  * @bug 6860965
  * @summary Project Coin: binary literals
- * @compile/fail/ref=BadBinaryLiterals.6.out -XDrawDiagnostics -source 6 BadBinaryLiterals.java
+ * @compile/fail/ref=BadBinaryLiterals.6.out -XDrawDiagnostics -source 6 -Xlint:-options BadBinaryLiterals.java
  * @compile/fail/ref=BadBinaryLiterals.7.out -XDrawDiagnostics BadBinaryLiterals.java
  */
 
--- a/test/tools/javac/literals/BadUnderscoreLiterals.java	Fri Dec 03 19:45:34 2010 -0800
+++ b/test/tools/javac/literals/BadUnderscoreLiterals.java	Mon Dec 06 20:35:49 2010 -0800
@@ -7,7 +7,7 @@
  * @compile/fail/ref=BadUnderscoreLiterals.7.out -XDrawDiagnostics BadUnderscoreLiterals.java
  *
  * @compile/fail -source 6 BadUnderscoreLiterals.java
- * @compile/fail/ref=BadUnderscoreLiterals.6.out -XDrawDiagnostics -source 6 BadUnderscoreLiterals.java
+ * @compile/fail/ref=BadUnderscoreLiterals.6.out -XDrawDiagnostics -source 6 -Xlint:-options BadUnderscoreLiterals.java
  */
 
 public class BadUnderscoreLiterals {
--- a/test/tools/javac/meth/InvokeDyn.java	Fri Dec 03 19:45:34 2010 -0800
+++ b/test/tools/javac/meth/InvokeDyn.java	Mon Dec 06 20:35:49 2010 -0800
@@ -58,7 +58,7 @@
         ojunk = InvokeDynamic.greet(x, "mundus", 456);
         ojunk = InvokeDynamic.greet(x, "kosmos", 789);
         ojunk = (String) InvokeDynamic.cogitate(10.11121, 3.14);
-        InvokeDynamic.#"yow: what I mean to say is, please treat this one specially"(null);
+        //InvokeDynamic.#"yow: what I mean to say is, please treat this one specially"(null);
         ijunk = (int) InvokeDynamic.invoke("goodbye");
     }
 }
--- a/test/tools/javac/meth/InvokeDynTrans.java	Fri Dec 03 19:45:34 2010 -0800
+++ b/test/tools/javac/meth/InvokeDynTrans.java	Mon Dec 06 20:35:49 2010 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008-2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 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
@@ -53,7 +53,7 @@
         InvokeDynamic.greet(x, "mundus", 456);
         InvokeDynamic.greet(x, "kosmos", 789);
         InvokeDynamic.<String>cogitate(10.11121, 3.14);
-        InvokeDynamic.<void>#"yow: what I mean to say is, please treat this one specially"(null);
+        //InvokeDynamic.<void>#"yow: what I mean to say is, please treat this one specially"(null);
         InvokeDynamic.<int>invoke("goodbye");
     }
 }
--- a/test/tools/javac/meth/InvokeDynTrans.out	Fri Dec 03 19:45:34 2010 -0800
+++ b/test/tools/javac/meth/InvokeDynTrans.out	Mon Dec 06 20:35:49 2010 -0800
@@ -1,6 +1,5 @@
 InvokeDynTrans.java:55:39: compiler.warn.type.parameter.on.polymorphic.signature
-InvokeDynTrans.java:56:91: compiler.warn.type.parameter.on.polymorphic.signature
 InvokeDynTrans.java:57:34: compiler.warn.type.parameter.on.polymorphic.signature
 - compiler.err.warnings.and.werror
 1 error
-3 warnings
+2 warnings
--- a/test/tools/javac/processing/warnings/TestSourceVersionWarnings.java	Fri Dec 03 19:45:34 2010 -0800
+++ b/test/tools/javac/processing/warnings/TestSourceVersionWarnings.java	Mon Dec 06 20:35:49 2010 -0800
@@ -27,15 +27,15 @@
  * @summary Test that warnings about source versions are output as expected.
  * @author  Joseph D. Darcy
  * @compile TestSourceVersionWarnings.java
- * @compile/ref=gold_0.out             -XDrawDiagnostics -processor TestSourceVersionWarnings -proc:only                           -source 1.5 HelloWorld.java
- * @compile/ref=gold_sv_warn_0_2.out   -XDrawDiagnostics -processor TestSourceVersionWarnings -proc:only -ASourceVersion=RELEASE_0 -source 1.2 HelloWorld.java
- * @compile/ref=gold_sv_none.out       -XDrawDiagnostics -processor TestSourceVersionWarnings -proc:only -ASourceVersion=RELEASE_2 -source 1.2 HelloWorld.java
- * @compile/ref=gold_sv_warn_2_3.out   -XDrawDiagnostics -processor TestSourceVersionWarnings -proc:only -ASourceVersion=RELEASE_2 -source 1.3 HelloWorld.java
- * @compile/ref=gold_sv_none.out       -XDrawDiagnostics -processor TestSourceVersionWarnings -proc:only -ASourceVersion=RELEASE_5 -source 1.5 HelloWorld.java
- * @compile/ref=gold_sv_warn_5_6.out   -XDrawDiagnostics -processor TestSourceVersionWarnings -proc:only -ASourceVersion=RELEASE_5 -source 1.6 HelloWorld.java
- * @compile/ref=gold_sv_none.out       -XDrawDiagnostics -processor TestSourceVersionWarnings -proc:only -ASourceVersion=RELEASE_6 -source 1.6 HelloWorld.java
- * @compile/ref=gold_unsp_warn.out     -XDrawDiagnostics -processor TestSourceVersionWarnings -proc:only -ASourceVersion=RELEASE_6 -source 1.6 -Aunsupported HelloWorld.java
- * @compile/ref=gold_sv_none.out       -XDrawDiagnostics -processor TestSourceVersionWarnings -proc:only -ASourceVersion=RELEASE_7 -source 1.7 HelloWorld.java
+ * @compile/ref=gold_0.out             -XDrawDiagnostics -processor TestSourceVersionWarnings -proc:only                           -source 1.5 -Xlint:-options HelloWorld.java
+ * @compile/ref=gold_sv_warn_0_2.out   -XDrawDiagnostics -processor TestSourceVersionWarnings -proc:only -ASourceVersion=RELEASE_0 -source 1.2 -Xlint:-options HelloWorld.java
+ * @compile/ref=gold_sv_none.out       -XDrawDiagnostics -processor TestSourceVersionWarnings -proc:only -ASourceVersion=RELEASE_2 -source 1.2 -Xlint:-options HelloWorld.java
+ * @compile/ref=gold_sv_warn_2_3.out   -XDrawDiagnostics -processor TestSourceVersionWarnings -proc:only -ASourceVersion=RELEASE_2 -source 1.3 -Xlint:-options HelloWorld.java
+ * @compile/ref=gold_sv_none.out       -XDrawDiagnostics -processor TestSourceVersionWarnings -proc:only -ASourceVersion=RELEASE_5 -source 1.5 -Xlint:-options HelloWorld.java
+ * @compile/ref=gold_sv_warn_5_6.out   -XDrawDiagnostics -processor TestSourceVersionWarnings -proc:only -ASourceVersion=RELEASE_5 -source 1.6 -Xlint:-options HelloWorld.java
+ * @compile/ref=gold_sv_none.out       -XDrawDiagnostics -processor TestSourceVersionWarnings -proc:only -ASourceVersion=RELEASE_6 -source 1.6 -Xlint:-options HelloWorld.java
+ * @compile/ref=gold_unsp_warn.out     -XDrawDiagnostics -processor TestSourceVersionWarnings -proc:only -ASourceVersion=RELEASE_6 -source 1.6 -Xlint:-options -Aunsupported HelloWorld.java
+ * @compile/ref=gold_sv_none.out       -XDrawDiagnostics -processor TestSourceVersionWarnings -proc:only -ASourceVersion=RELEASE_7 -source 1.7                 HelloWorld.java
  */
 
 import java.util.Set;
--- a/test/tools/javac/quid/QuotedIdent.java	Fri Dec 03 19:45:34 2010 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,136 +0,0 @@
-/*
- * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * 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 6746458
- * @summary Verify correct lexing of quoted identifiers.
- * @author jrose
- * @ignore 6877225 test fails on Windows:
- *      QuotedIdent.java:81: error while writing QuotedIdent.*86: PATH\QuotedIdent$*86.class
- *      (The filename, directory name, or volume label syntax is incorrect)
- *
- * @library ..
- * @compile -source 7 -target 7 -XDinvokedynamic QuotedIdent.java
- * @run main quid.QuotedIdent
- */
-
-/*
- * Standalone testing:
- * <code>
- * $ cd $MY_REPO_DIR/langtools
- * $ (cd make; make)
- * $ ./dist/bootstrap/bin/javac -d dist test/tools/javac/quid/QuotedIdent.java
- * $ java -version  # should print 1.6 or later
- * $ java -cp dist quid.QuotedIdent
- * </code>
- */
-
-package quid;
-
-public class QuotedIdent {
-    static void check(int testid, String have, String expect)
-                throws RuntimeException {
-        if ((have == null && have != expect) ||
-                (have != null && !have.equals(expect))) {
-            String msg =
-                "TEST " + testid + ": HAVE \"" +
-                have + "\" EXPECT \"" + expect + "\"";
-            System.out.println("StringConversion: " + msg);
-            throw new RuntimeException(msg);
-        }
-    }
-
-    // negative tests:
-    //static class #"" { } //BAD empty ident name
-    //static class #"<foo>" { } //BAD bad char in ident name
-    /*static class /*(//BAD ident name interrupted by newline) #"jump:
-    " { } /* uncomment previous line to attempt class w/ bad name */
-
-    static class #"int" extends Number {
-        final int #"int";
-        #"int"(int #"int") {
-            this.#"int" = #"int";
-        }
-        static #"int" valueOf(int #"int") {
-            return new #"int"(#"int");
-        }
-        public int intValue() { return #"int"; }
-        public long longValue() { return #"int"; }
-        public float floatValue() { return #"int"; }
-        public double doubleValue() { return #"int"; }
-        public String toString() { return String.valueOf(#"int"); }
-    }
-
-    class #"*86" {
-        String #"555-1212"() { return "[*86.555-1212]"; }
-    }
-    static#"*86"#"MAKE-*86"() {   // note close spacing
-        return new QuotedIdent().new#"*86"();
-    }
-
-    static String bar() { return "[bar]"; }
-
-    public static void main(String[] args) throws Exception {
-        String s;
-
-        String #"sticky \' wicket" = "wicked ' stick";
-        s = #"sticky ' wicket";
-        check(11, s, "wicked \' stick");
-        check(12, #"s", s);
-        check(13, #"\163", s);
-
-        s = #"QuotedIdent".bar();
-        check(21, s, "[bar]");
-
-        s = #"int".valueOf(123).toString();
-        check(22, s, "123");
-
-        s = #"MAKE-*86"().#"555-1212"();
-        check(23, s, "[*86.555-1212]");
-
-        class#"{{{inmost}}}" { }
-        s = new#"{{{inmost}}}"().getClass().getName();
-        if (!s.endsWith("{{{inmost}}}"))
-            check(24, s, "should end with \"{{{inmost}}}\"");
-
-        s = #"Yog-Shoggoth".#"(nameless ululation)";
-        check(25, s, "Tekeli-li!");
-
-        s = #"int".class.getName();
-        check(31, s, QuotedIdent.class.getName()+"$int");
-
-        Class<?> x86 = Class.forName(QuotedIdent.class.getName()+"$*86");
-        if (x86 != #"*86".class)
-            check(32, "reflected "+x86, "static "+#"*86".class);
-
-        s = (String) x86.getDeclaredMethod("555-1212").invoke(#"MAKE-*86"());
-        check(31, s, "[*86.555-1212]");
-
-        System.out.println("OK");
-    }
-}
-
-interface #"Yog-Shoggoth" {
-    final String #"(nameless ululation)" = "Tekeli-li!";
-}
--- a/test/tools/javac/quid/QuotedIdent2.java	Fri Dec 03 19:45:34 2010 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,85 +0,0 @@
-/*
- * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * 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 6746458
- * @summary Verify correct separate compilation of classes with extended identifiers.
- * @author jrose
- * @ignore 6877225 test fails on Windows:
- *      QuotedIdent.java:81: error while writing QuotedIdent.*86: PATH\QuotedIdent$*86.class
- *      (The filename, directory name, or volume label syntax is incorrect)
- *
- * @library ..
- * @compile -source 7 -target 7 -XDinvokedynamic QuotedIdent.java
- * @run main quid.QuotedIdent2
- */
-/*
- * Standalone testing:
- * <code>
- * $ cd $MY_REPO_DIR/langtools
- * $ (cd make; make)
- * $ ./dist/bootstrap/bin/javac -d dist test/tools/javac/quid/QuotedIdent.java
- * $ ./dist/bootstrap/bin/javac -d dist -cp dist test/tools/javac/quid/QuotedIdent2.java
- * $ java -version  # should print 1.6 or later
- * $ java -cp dist QuotedIdent2
- * </code>
- */
-
-package quid;
-
-import quid.QuotedIdent.*;
-import quid.QuotedIdent.#"*86";
-import static quid.QuotedIdent.#"MAKE-*86";
-
-public class QuotedIdent2 {
-    static void check(int testid, String have, String expect)
-                throws RuntimeException {
-        QuotedIdent.check(testid, have, expect);
-    }
-
-    public static void main(String[] args) throws Exception {
-        String s;
-
-        s = #"int".valueOf(123).toString();
-        check(22, s, "123");
-
-        s = #"MAKE-*86"().#"555-1212"();
-        check(23, s, "[*86.555-1212]");
-
-        s = #"Yog-Shoggoth".#"(nameless ululation)";
-        check(25, s, "Tekeli-li!");
-
-        s = QuotedIdent.#"int".class.getName();
-        check(31, s, QuotedIdent.class.getName()+"$int");
-
-        Class<?> x86 = Class.forName(QuotedIdent.class.getName()+"$*86");
-        if (x86 != #"*86".class)
-            check(32, "reflected "+x86, "static "+#"*86".class);
-
-        s = (String) x86.getDeclaredMethod("555-1212").invoke(QuotedIdent.#"MAKE-*86"());
-        check(31, s, "[*86.555-1212]");
-
-        System.out.println("OK");
-    }
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/tools/javac/quid/T6999438.java	Mon Dec 06 20:35:49 2010 -0800
@@ -0,0 +1,9 @@
+/* @test /nodynamiccopyright/
+ * @bug 6999438
+ * @summary remove support for exotic identifiers from JDK 7
+ * @compile/fail/ref=T6999438.out -XDrawDiagnostics -source 7 T6999438.java
+ */
+
+class Test {
+    int #"not supported";
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/tools/javac/quid/T6999438.out	Mon Dec 06 20:35:49 2010 -0800
@@ -0,0 +1,6 @@
+T6999438.java:8:9: compiler.err.illegal.char: 35
+T6999438.java:8:10: compiler.err.illegal.start.of.type
+T6999438.java:8:25: compiler.err.expected: token.identifier
+T6999438.java:8:26: compiler.err.expected: ';'
+T6999438.java:9:2: compiler.err.premature.eof
+5 errors
--- a/test/tools/javac/varargs/warning/Warn1.java	Fri Dec 03 19:45:34 2010 -0800
+++ b/test/tools/javac/varargs/warning/Warn1.java	Mon Dec 06 20:35:49 2010 -0800
@@ -27,7 +27,7 @@
  * @summary fixed-arity warning given too often
  * @author gafter
  *
- * @compile -Werror -source 1.4 Warn1.java
+ * @compile -Werror -source 1.4 -Xlint:-options Warn1.java
  */
 
 package varargs.warning.warn1;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/tools/javadoc/6942366/T6942366.java	Mon Dec 06 20:35:49 2010 -0800
@@ -0,0 +1,134 @@
+/*
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 6942366
+ * @summary javadoc no longer inherits doc from sourcepath
+ * @build p.Base Test
+ * @run main T6942366
+ */
+
+import java.io.*;
+import java.util.*;
+
+public class T6942366 {
+    public static void main(String... args) throws Exception {
+        new T6942366().run();
+    }
+
+    File testSrc;
+    File testClasses;
+    int count;
+    int errors;
+
+    void run() throws Exception {
+        testSrc = new File(System.getProperty("test.src"));
+        testClasses = new File(System.getProperty("test.classes"));
+
+        test(true,  false);
+        test(false, true);
+        test(true,  true);
+
+        if (errors > 0)
+            throw new Exception(errors + " errors found");
+    }
+
+    void test(boolean useSourcePath, boolean useClassPath) throws Exception {
+        System.out.println("test " + (++count) + " sp:" + useSourcePath + " cp:" + useClassPath);
+        File testDir = new File("test" + count);
+        testDir.mkdirs();
+
+        List<String> args = new ArrayList<String>();
+        //args.add("-verbose");
+        args.add("-d");
+        args.add(testDir.getPath());
+        if (useSourcePath) {
+            args.add("-sourcepath");
+            args.add(testSrc.getPath());
+        }
+        if (useClassPath) {
+            args.add("-classpath");
+            args.add(testClasses.getPath());
+        } else {
+            // override classpath to avoid stuff jtreg might have put on papth
+            args.add("-classpath");
+            args.add(".");
+        }
+
+        // use a very simple bootclasspath to avoid stuff jtreg might have put on path
+        File javaHome = new File(System.getProperty("java.home"));
+        File rt_jar = new File(javaHome, "lib/rt.jar");
+        if (!rt_jar.exists())
+            throw new Exception("rt.jar not found");
+        args.add("-bootclasspath");
+        args.add(rt_jar.getPath());
+
+        args.add(new File(testSrc, "Test.java").getPath());
+        System.out.println("javadoc: " + args);
+
+        int rc = com.sun.tools.javadoc.Main.execute(args.toArray(new String[args.size()]));
+        if (rc != 0)
+            throw new Exception("unexpected exit from javadoc, rc=" + rc);
+
+        if (useSourcePath && useClassPath) {
+            long srcLastMod = new File(testSrc, "Test.java").lastModified();
+            long classLastMod = new File(testClasses, "Test.class").lastModified();
+            System.out.println("Test.java last modified:  " + new Date(srcLastMod));
+            System.out.println("Test.class last modified: " + new Date(classLastMod));
+            System.out.println((srcLastMod > classLastMod ? "source" : "class") + " is newer");
+        }
+
+        String s = "javadoc-for-Base.m";
+        boolean expect = useSourcePath;
+        boolean found = contains(new File(testDir, "Test.html"), s);
+        if (found) {
+            if (expect)
+                System.out.println("javadoc content \"" + s + "\" found, as expected");
+            else
+                error("javadoc content \"" + s + "\" found unexpectedly");
+        } else {
+            if (expect)
+                error("javadoc content \"" + s + "\" not found");
+            else
+                System.out.println("javadoc content \"" + s + "\" not found, as expected");
+        }
+
+        System.out.println();
+    }
+
+    boolean contains(File f, String s) throws Exception {
+        byte[] buf = new byte[(int) f.length()];
+        try (DataInputStream in = new DataInputStream(new FileInputStream(f))) {
+            in.readFully(buf);
+        }
+        return new String(buf).contains(s);
+    }
+
+    void error(String msg) {
+        System.out.println("Error: " + msg);
+        errors++;
+    }
+
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/tools/javadoc/6942366/Test.java	Mon Dec 06 20:35:49 2010 -0800
@@ -0,0 +1,28 @@
+/*
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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.
+ */
+
+public class Test extends p.Base {
+    // overrides Base.m
+    public void m() { }
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/tools/javadoc/6942366/p/Base.java	Mon Dec 06 20:35:49 2010 -0800
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * 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 p;
+
+public class Base {
+    /** javadoc-for-Base.m. */
+    public void m() { }
+}
+
--- a/test/tools/javap/T6729471.java	Fri Dec 03 19:45:34 2010 -0800
+++ b/test/tools/javap/T6729471.java	Mon Dec 06 20:35:49 2010 -0800
@@ -39,6 +39,8 @@
     }
 
     void run() {
+        File testClasses = new File(System.getProperty("test.classes"));
+
         // simple class
         verify("java.util.Map",
                 "public abstract boolean containsKey(java.lang.Object)");
@@ -48,11 +50,11 @@
                 "public abstract K getKey()");
 
         // file name
-        verify("../classes/tools/javap/T6729471.class",
+        verify(new File(testClasses, "T6729471.class").getPath(),
                 "public static void main(java.lang.String...)");
 
         // file url
-        verify("file:../classes/tools/javap/T6729471.class",
+        verify(new File(testClasses, "T6729471.class").toURI().toString(),
                 "public static void main(java.lang.String...)");
 
         // jar url: rt.jar