changeset 3178:9d7f9a016783

Merge
author lana
date Fri, 18 Dec 2015 09:56:17 -0800
parents 7b24bbb30091 ea6282786772
children 1cdf5548051d
files test/tools/javac/6547131/p/Outer$I.class test/tools/javac/6547131/p/Outer.class test/tools/javac/InnerClassesAttribute/Outside$1$Inside.class test/tools/javac/InnerClassesAttribute/Outside.class test/tools/javac/T6435291/T.class test/tools/javac/missingSuperRecovery/impl.class
diffstat 252 files changed, 767 insertions(+), 434 deletions(-) [+]
line wrap: on
line diff
--- a/make/tools/propertiesparser/parser/Message.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/make/tools/propertiesparser/parser/Message.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package propertiesparser.parser;
 
 import java.util.ArrayList;
--- a/make/tools/propertiesparser/parser/MessageFile.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/make/tools/propertiesparser/parser/MessageFile.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package propertiesparser.parser;
 
 import java.io.*;
--- a/make/tools/propertiesparser/parser/MessageInfo.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/make/tools/propertiesparser/parser/MessageInfo.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package propertiesparser.parser;
 
 import propertiesparser.parser.MessageType.CompoundType;
--- a/make/tools/propertiesparser/parser/MessageLine.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/make/tools/propertiesparser/parser/MessageLine.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package propertiesparser.parser;
 
 import java.util.regex.Pattern;
--- a/src/java.compiler/share/classes/javax/tools/DocumentationTool.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/java.compiler/share/classes/javax/tools/DocumentationTool.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package javax.tools;
 
 import java.io.Writer;
--- a/src/jdk.compiler/share/classes/com/sun/source/doctree/ErroneousTree.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/source/doctree/ErroneousTree.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.source.doctree;
 
 import javax.tools.Diagnostic;
--- a/src/jdk.compiler/share/classes/com/sun/source/doctree/UnknownBlockTagTree.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/source/doctree/UnknownBlockTagTree.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.source.doctree;
 
 import java.util.List;
--- a/src/jdk.compiler/share/classes/com/sun/source/doctree/UnknownInlineTagTree.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/source/doctree/UnknownInlineTagTree.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.source.doctree;
 
 import java.util.List;
--- a/src/jdk.compiler/share/classes/com/sun/source/util/DocTreePathScanner.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/source/util/DocTreePathScanner.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.source.util;
 
 import com.sun.source.doctree.DocTree;
--- a/src/jdk.compiler/share/classes/com/sun/source/util/Plugin.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/source/util/Plugin.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.source.util;
 
 import java.util.ServiceLoader;
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/api/ClientCodeWrapper.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/api/ClientCodeWrapper.java	Fri Dec 18 09:56:17 2015 -0800
@@ -23,7 +23,6 @@
  * questions.
  */
 
-
 package com.sun.tools.javac.api;
 
 import java.io.File;
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/api/DiagnosticFormatter.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/api/DiagnosticFormatter.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.javac.api;
 
 import java.util.Locale;
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/code/AnnoConstruct.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/code/AnnoConstruct.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.javac.code;
 
 import java.lang.annotation.Annotation;
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/code/TypeMetadata.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/code/TypeMetadata.java	Fri Dec 18 09:56:17 2015 -0800
@@ -1,7 +1,6 @@
 /*
- * Copyright (c) 2014, Oracle and/or its affiliates. All rights
- * reserved.  DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE
- * HEADER.
+ * Copyright (c) 2014, 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
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Types.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Types.java	Fri Dec 18 09:56:17 2015 -0800
@@ -597,36 +597,42 @@
     }
 
     public Type removeWildcards(Type site) {
-        Type capturedSite = capture(site);
-        if (capturedSite != site) {
-            Type formalInterface = site.tsym.type;
-            ListBuffer<Type> typeargs = new ListBuffer<>();
-            List<Type> actualTypeargs = site.getTypeArguments();
-            List<Type> capturedTypeargs = capturedSite.getTypeArguments();
-            //simply replace the wildcards with its bound
-            for (Type t : formalInterface.getTypeArguments()) {
-                if (actualTypeargs.head.hasTag(WILDCARD)) {
-                    WildcardType wt = (WildcardType)actualTypeargs.head;
-                    Type bound;
-                    switch (wt.kind) {
-                        case EXTENDS:
-                        case UNBOUND:
-                            CapturedType capVar = (CapturedType)capturedTypeargs.head;
-                            //use declared bound if it doesn't depend on formal type-args
-                            bound = capVar.bound.containsAny(capturedSite.getTypeArguments()) ?
-                                    wt.type : capVar.bound;
-                            break;
-                        default:
-                            bound = wt.type;
+        if (site.getTypeArguments().stream().anyMatch(t -> t.hasTag(WILDCARD))) {
+            //compute non-wildcard parameterization - JLS 9.9
+            List<Type> actuals = site.getTypeArguments();
+            List<Type> formals = site.tsym.type.getTypeArguments();
+            ListBuffer<Type> targs = new ListBuffer<>();
+            for (Type formal : formals) {
+                Type actual = actuals.head;
+                Type bound = formal.getUpperBound();
+                if (actuals.head.hasTag(WILDCARD)) {
+                    WildcardType wt = (WildcardType)actual;
+                    //check that bound does not contain other formals
+                    if (bound.containsAny(formals)) {
+                        targs.add(wt.type);
+                    } else {
+                        //compute new type-argument based on declared bound and wildcard bound
+                        switch (wt.kind) {
+                            case UNBOUND:
+                                targs.add(bound);
+                                break;
+                            case EXTENDS:
+                                targs.add(glb(bound, wt.type));
+                                break;
+                            case SUPER:
+                                targs.add(wt.type);
+                                break;
+                            default:
+                                Assert.error("Cannot get here!");
+                        }
                     }
-                    typeargs.append(bound);
                 } else {
-                    typeargs.append(actualTypeargs.head);
+                    //not a wildcard - the new type argument remains unchanged
+                    targs.add(actual);
                 }
-                actualTypeargs = actualTypeargs.tail;
-                capturedTypeargs = capturedTypeargs.tail;
+                actuals = actuals.tail;
             }
-            return subst(formalInterface, formalInterface.getTypeArguments(), typeargs.toList());
+            return subst(site.tsym.type, formals, targs.toList());
         } else {
             return site;
         }
@@ -1436,12 +1442,13 @@
     public boolean isCastable(Type t, Type s, Warner warn) {
         if (t == s)
             return true;
-
-        if (t.isPrimitive() != s.isPrimitive())
+        if (t.isPrimitive() != s.isPrimitive()) {
+            t = skipTypeVars(t, false);
             return (isConvertible(t, s, warn)
                     || (allowObjectToPrimitiveCast &&
                         s.isPrimitive() &&
                         isSubtype(boxedClass(s).type, t)));
+        }
         if (warn != warnStack.head) {
             try {
                 warnStack = warnStack.prepend(warn);
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.javac.comp;
 
 import com.sun.tools.javac.tree.*;
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Lower.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Lower.java	Fri Dec 18 09:56:17 2015 -0800
@@ -2707,11 +2707,11 @@
             if (fvs.nonEmpty()) {
                 List<Type> addedargtypes = List.nil();
                 for (List<VarSymbol> l = fvs; l.nonEmpty(); l = l.tail) {
+                    final Name pName = proxyName(l.head.name);
+                    m.capturedLocals =
+                        m.capturedLocals.prepend((VarSymbol)
+                                                (proxies.findFirst(pName)));
                     if (TreeInfo.isInitialConstructor(tree)) {
-                        final Name pName = proxyName(l.head.name);
-                        m.capturedLocals =
-                            m.capturedLocals.append((VarSymbol)
-                                                    (proxies.findFirst(pName)));
                         added = added.prepend(
                           initField(tree.body.pos, pName));
                     }
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/file/JRTIndex.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/file/JRTIndex.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.javac.file;
 
 import java.io.IOException;
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/file/Locations.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/file/Locations.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.javac.file;
 
 import java.io.File;
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Profile.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Profile.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.javac.jvm;
 
 import com.sun.tools.javac.util.Context;
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/main/Arguments.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/main/Arguments.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.javac.main;
 
 import java.io.File;
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/parser/Parser.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/parser/Parser.java	Fri Dec 18 09:56:17 2015 -0800
@@ -23,7 +23,6 @@
  * questions.
  */
 
-
 package com.sun.tools.javac.parser;
 
 import com.sun.tools.javac.tree.JCTree.JCCompilationUnit;
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/platform/JDKPlatformProvider.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/platform/JDKPlatformProvider.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.javac.platform;
 
 import java.io.IOException;
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/platform/PlatformDescription.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/platform/PlatformDescription.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.javac.platform;
 
 import java.io.Closeable;
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/platform/PlatformProvider.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/platform/PlatformProvider.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.javac.platform;
 
 /** A collection of platform descriptions that can be selected using {@code -release name}
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/platform/PlatformUtils.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/platform/PlatformUtils.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.javac.platform;
 
 import com.sun.tools.javac.main.Arguments;
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/sym/Profiles.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/sym/Profiles.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.javac.sym;
 
 import java.io.BufferedInputStream;
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/tree/DocCommentTable.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/tree/DocCommentTable.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.javac.tree;
 
 import com.sun.source.doctree.ErroneousTree;
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/util/AbstractDiagnosticFormatter.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/util/AbstractDiagnosticFormatter.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.javac.util;
 
 import java.nio.file.Path;
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/util/ForwardingDiagnosticFormatter.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/util/ForwardingDiagnosticFormatter.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.javac.util;
 
 import java.util.Set;
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/util/Iterators.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/util/Iterators.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.javac.util;
 
 import java.util.Iterator;
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/util/RawDiagnosticFormatter.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/util/RawDiagnosticFormatter.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.javac.util;
 
 import java.util.Collection;
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/util/RichDiagnosticFormatter.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/util/RichDiagnosticFormatter.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.javac.util;
 
 import java.nio.file.Path;
--- a/src/jdk.compiler/share/classes/com/sun/tools/javah/LLNI.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javah/LLNI.java	Fri Dec 18 09:56:17 2015 -0800
@@ -23,7 +23,6 @@
  * questions.
  */
 
-
 package com.sun.tools.javah;
 
 import java.io.OutputStream;
--- a/src/jdk.compiler/share/classes/com/sun/tools/javah/Mangle.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javah/Mangle.java	Fri Dec 18 09:56:17 2015 -0800
@@ -23,7 +23,6 @@
  * questions.
  */
 
-
 package com.sun.tools.javah;
 
 import javax.lang.model.element.ExecutableElement;
--- a/src/jdk.compiler/share/classes/com/sun/tools/javah/TypeSignature.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javah/TypeSignature.java	Fri Dec 18 09:56:17 2015 -0800
@@ -23,7 +23,6 @@
  * questions.
  */
 
-
 package com.sun.tools.javah;
 
 import java.util.*;
--- a/src/jdk.compiler/share/classes/com/sun/tools/javah/Util.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javah/Util.java	Fri Dec 18 09:56:17 2015 -0800
@@ -23,7 +23,6 @@
  * questions.
  */
 
-
 package com.sun.tools.javah;
 
 import java.io.PrintWriter;
--- a/src/jdk.compiler/share/classes/com/sun/tools/sjavac/PubApiExtractor.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/sjavac/PubApiExtractor.java	Fri Dec 18 09:56:17 2015 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2014, 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/jdk.compiler/share/classes/com/sun/tools/sjavac/client/PortFileInaccessibleException.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/sjavac/client/PortFileInaccessibleException.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.sjavac.client;
 
 import java.io.IOException;
--- a/src/jdk.compiler/share/classes/com/sun/tools/sjavac/comp/FileObjectWithLocation.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/sjavac/comp/FileObjectWithLocation.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.sjavac.comp;
 
 import javax.tools.FileObject;
--- a/src/jdk.compiler/share/classes/com/sun/tools/sjavac/comp/JavaFileObjectWithLocation.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/sjavac/comp/JavaFileObjectWithLocation.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.sjavac.comp;
 
 import javax.tools.ForwardingJavaFileObject;
--- a/src/jdk.compiler/share/classes/com/sun/tools/sjavac/comp/PathAndPackageVerifier.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/sjavac/comp/PathAndPackageVerifier.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.sjavac.comp;
 
 import java.nio.file.Path;
--- a/src/jdk.compiler/share/classes/com/sun/tools/sjavac/comp/PooledSjavac.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/sjavac/comp/PooledSjavac.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.sjavac.comp;
 
 import java.io.Writer;
--- a/src/jdk.compiler/share/classes/com/sun/tools/sjavac/comp/SjavacImpl.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/sjavac/comp/SjavacImpl.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.sjavac.comp;
 
 import java.io.IOException;
--- a/src/jdk.compiler/share/classes/com/sun/tools/sjavac/comp/SmartWriter.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/sjavac/comp/SmartWriter.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.sjavac.comp;
 
 import java.io.*;
--- a/src/jdk.compiler/share/classes/com/sun/tools/sjavac/pubapi/ArrayTypeDesc.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/sjavac/pubapi/ArrayTypeDesc.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.sjavac.pubapi;
 
 import java.io.Serializable;
--- a/src/jdk.compiler/share/classes/com/sun/tools/sjavac/pubapi/PrimitiveTypeDesc.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/sjavac/pubapi/PrimitiveTypeDesc.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.sjavac.pubapi;
 
 import java.io.Serializable;
--- a/src/jdk.compiler/share/classes/com/sun/tools/sjavac/pubapi/PubApi.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/sjavac/pubapi/PubApi.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.sjavac.pubapi;
 
 
--- a/src/jdk.compiler/share/classes/com/sun/tools/sjavac/pubapi/PubMethod.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/sjavac/pubapi/PubMethod.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.sjavac.pubapi;
 
 import java.io.Serializable;
--- a/src/jdk.compiler/share/classes/com/sun/tools/sjavac/pubapi/PubType.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/sjavac/pubapi/PubType.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.sjavac.pubapi;
 
 import java.io.Serializable;
--- a/src/jdk.compiler/share/classes/com/sun/tools/sjavac/pubapi/PubVar.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/sjavac/pubapi/PubVar.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.sjavac.pubapi;
 
 import java.io.Serializable;
--- a/src/jdk.compiler/share/classes/com/sun/tools/sjavac/pubapi/ReferenceTypeDesc.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/sjavac/pubapi/ReferenceTypeDesc.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.sjavac.pubapi;
 
 import java.io.Serializable;
--- a/src/jdk.compiler/share/classes/com/sun/tools/sjavac/pubapi/TypeDesc.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/sjavac/pubapi/TypeDesc.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.sjavac.pubapi;
 
 import java.io.Serializable;
--- a/src/jdk.compiler/share/classes/com/sun/tools/sjavac/pubapi/TypeVarTypeDesc.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/sjavac/pubapi/TypeVarTypeDesc.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.sjavac.pubapi;
 
 import java.io.Serializable;
--- a/src/jdk.compiler/share/classes/com/sun/tools/sjavac/server/IdleResetSjavac.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/sjavac/server/IdleResetSjavac.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.sjavac.server;
 
 import java.io.Writer;
--- a/src/jdk.compiler/share/classes/com/sun/tools/sjavac/server/PortFileMonitor.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/sjavac/server/PortFileMonitor.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.sjavac.server;
 
 import java.io.IOException;
--- a/src/jdk.compiler/share/classes/com/sun/tools/sjavac/server/RequestHandler.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/sjavac/server/RequestHandler.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.sjavac.server;
 
 import static com.sun.tools.sjavac.server.SjavacServer.LINE_TYPE_RC;
--- a/src/jdk.compiler/share/classes/com/sun/tools/sjavac/server/Sjavac.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/sjavac/server/Sjavac.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.sjavac.server;
 
 import java.io.Writer;
--- a/src/jdk.compiler/share/classes/com/sun/tools/sjavac/server/SjavacServer.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/sjavac/server/SjavacServer.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.sjavac.server;
 
 import java.io.FileNotFoundException;
--- a/src/jdk.compiler/share/classes/com/sun/tools/sjavac/server/Terminable.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/sjavac/server/Terminable.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.sjavac.server;
 
 /**
--- a/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/AbstractProfileIndexWriter.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/AbstractProfileIndexWriter.java	Fri Dec 18 09:56:17 2015 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2015 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2015, 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/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeFieldWriterImpl.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeFieldWriterImpl.java	Fri Dec 18 09:56:17 2015 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2015 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2015, 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/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/HtmlDoclet.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/HtmlDoclet.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.doclets.formats.html;
 
 import java.io.*;
--- a/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/LinkInfoImpl.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/LinkInfoImpl.java	Fri Dec 18 09:56:17 2015 -0800
@@ -23,7 +23,6 @@
  * questions.
  */
 
-
 package com.sun.tools.doclets.formats.html;
 
 import com.sun.javadoc.*;
--- a/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/AnnotationTypeWriter.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/AnnotationTypeWriter.java	Fri Dec 18 09:56:17 2015 -0800
@@ -23,7 +23,6 @@
  * questions.
  */
 
-
 package com.sun.tools.doclets.internal.toolkit;
 
 import java.io.*;
--- a/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/ClassWriter.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/ClassWriter.java	Fri Dec 18 09:56:17 2015 -0800
@@ -23,7 +23,6 @@
  * questions.
  */
 
-
 package com.sun.tools.doclets.internal.toolkit;
 
 import java.io.*;
--- a/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/ProfilePackageSummaryWriter.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/ProfilePackageSummaryWriter.java	Fri Dec 18 09:56:17 2015 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2015 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2015, 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/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/ProfileSummaryWriter.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/ProfileSummaryWriter.java	Fri Dec 18 09:56:17 2015 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2015 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2015, 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/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/builders/LayoutParser.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/builders/LayoutParser.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.doclets.internal.toolkit.builders;
 
 import java.io.*;
--- a/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/CodeTaglet.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/CodeTaglet.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.doclets.internal.toolkit.taglets;
 
 import java.util.Map;
--- a/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/IndexTaglet.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/IndexTaglet.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.doclets.internal.toolkit.taglets;
 
 import java.util.Map;
--- a/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/LiteralTaglet.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/LiteralTaglet.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.doclets.internal.toolkit.taglets;
 
 import java.util.Map;
--- a/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/util/MessageRetriever.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/util/MessageRetriever.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.doclets.internal.toolkit.util;
 
 import java.text.MessageFormat;
--- a/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/util/TextTag.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/util/TextTag.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.doclets.internal.toolkit.util;
 import com.sun.javadoc.*;
 
--- a/src/jdk.javadoc/share/classes/com/sun/tools/javadoc/api/JavadocTaskImpl.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.javadoc/share/classes/com/sun/tools/javadoc/api/JavadocTaskImpl.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.javadoc.api;
 
 import com.sun.tools.javac.util.ClientCodeException;
--- a/src/jdk.jdeps/share/classes/com/sun/tools/classfile/ClassWriter.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.jdeps/share/classes/com/sun/tools/classfile/ClassWriter.java	Fri Dec 18 09:56:17 2015 -0800
@@ -1,4 +1,3 @@
-
 /*
  * Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -24,6 +23,7 @@
  * questions.
  */
 
+
 package com.sun.tools.classfile;
 
 import java.io.ByteArrayOutputStream;
--- a/src/jdk.jdeps/share/classes/com/sun/tools/classfile/CompilationID_attribute.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.jdeps/share/classes/com/sun/tools/classfile/CompilationID_attribute.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.classfile;
 
 import java.io.IOException;
--- a/src/jdk.jdeps/share/classes/com/sun/tools/classfile/ConstantPoolException.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.jdeps/share/classes/com/sun/tools/classfile/ConstantPoolException.java	Fri Dec 18 09:56:17 2015 -0800
@@ -23,7 +23,6 @@
  * questions.
  */
 
-
 package com.sun.tools.classfile;
 
 /*
--- a/src/jdk.jdeps/share/classes/com/sun/tools/classfile/Dependencies.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.jdeps/share/classes/com/sun/tools/classfile/Dependencies.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.classfile;
 
 import java.util.Deque;
--- a/src/jdk.jdeps/share/classes/com/sun/tools/classfile/Descriptor.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.jdeps/share/classes/com/sun/tools/classfile/Descriptor.java	Fri Dec 18 09:56:17 2015 -0800
@@ -23,7 +23,6 @@
  * questions.
  */
 
-
 package com.sun.tools.classfile;
 
 import java.io.IOException;
--- a/src/jdk.jdeps/share/classes/com/sun/tools/classfile/DescriptorException.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.jdeps/share/classes/com/sun/tools/classfile/DescriptorException.java	Fri Dec 18 09:56:17 2015 -0800
@@ -23,7 +23,6 @@
  * questions.
  */
 
-
 package com.sun.tools.classfile;
 
 /*
--- a/src/jdk.jdeps/share/classes/com/sun/tools/classfile/EnclosingMethod_attribute.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.jdeps/share/classes/com/sun/tools/classfile/EnclosingMethod_attribute.java	Fri Dec 18 09:56:17 2015 -0800
@@ -1,4 +1,3 @@
-
 /*
  * Copyright (c) 2007, 2008, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -24,6 +23,7 @@
  * questions.
  */
 
+
 package com.sun.tools.classfile;
 
 import java.io.IOException;
--- a/src/jdk.jdeps/share/classes/com/sun/tools/classfile/SourceID_attribute.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.jdeps/share/classes/com/sun/tools/classfile/SourceID_attribute.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.classfile;
 
 import java.io.IOException;
--- a/src/jdk.jdeps/share/classes/com/sun/tools/javap/TypeAnnotationWriter.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.jdeps/share/classes/com/sun/tools/javap/TypeAnnotationWriter.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.javap;
 
 import com.sun.tools.classfile.Attribute;
--- a/src/jdk.jdeps/share/classes/com/sun/tools/jdeps/Analyzer.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.jdeps/share/classes/com/sun/tools/jdeps/Analyzer.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.jdeps;
 
 import java.io.PrintStream;
--- a/src/jdk.jdeps/share/classes/com/sun/tools/jdeps/Archive.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.jdeps/share/classes/com/sun/tools/jdeps/Archive.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.jdeps;
 
 import com.sun.tools.classfile.ClassFile;
--- a/src/jdk.jdeps/share/classes/com/sun/tools/jdeps/ClassFileReader.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.jdeps/share/classes/com/sun/tools/jdeps/ClassFileReader.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.jdeps;
 
 import com.sun.tools.classfile.ClassFile;
--- a/src/jdk.jdeps/share/classes/com/sun/tools/jdeps/JdepsTask.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.jdeps/share/classes/com/sun/tools/jdeps/JdepsTask.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.jdeps;
 
 import com.sun.tools.classfile.AccessFlags;
--- a/src/jdk.jdeps/share/classes/com/sun/tools/jdeps/Module.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.jdeps/share/classes/com/sun/tools/jdeps/Module.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.jdeps;
 
 import java.util.Collections;
--- a/src/jdk.jdeps/share/classes/com/sun/tools/jdeps/ModulesXmlReader.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.jdeps/share/classes/com/sun/tools/jdeps/ModulesXmlReader.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.jdeps;
 
 import java.io.IOException;
--- a/src/jdk.jdeps/share/classes/com/sun/tools/jdeps/PlatformClassPath.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.jdeps/share/classes/com/sun/tools/jdeps/PlatformClassPath.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.jdeps;
 
 import com.sun.tools.classfile.ClassFile;
--- a/src/jdk.jdeps/share/classes/com/sun/tools/jdeps/Profile.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.jdeps/share/classes/com/sun/tools/jdeps/Profile.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package com.sun.tools.jdeps;
 
 import java.io.IOException;
--- a/src/jdk.jshell/share/classes/jdk/internal/jshell/remote/RemoteCodes.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.jshell/share/classes/jdk/internal/jshell/remote/RemoteCodes.java	Fri Dec 18 09:56:17 2015 -0800
@@ -23,7 +23,6 @@
  * questions.
  */
 
-
 package jdk.internal.jshell.remote;
 
 import java.util.regex.Pattern;
--- a/src/jdk.jshell/share/classes/jdk/internal/jshell/tool/EditingHistory.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.jshell/share/classes/jdk/internal/jshell/tool/EditingHistory.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package jdk.internal.jshell.tool;
 
 import java.util.ArrayList;
--- a/src/jdk.jshell/share/classes/jdk/internal/jshell/tool/StopDetectingInputStream.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.jshell/share/classes/jdk/internal/jshell/tool/StopDetectingInputStream.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package jdk.internal.jshell.tool;
 
 import java.io.IOException;
--- a/src/jdk.jshell/share/classes/jdk/jshell/DeclarationSnippet.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.jshell/share/classes/jdk/jshell/DeclarationSnippet.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package jdk.jshell;
 
 import java.util.Collection;
--- a/src/jdk.jshell/share/classes/jdk/jshell/ErroneousSnippet.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.jshell/share/classes/jdk/jshell/ErroneousSnippet.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package jdk.jshell;
 
 import jdk.jshell.Key.ErroneousKey;
--- a/src/jdk.jshell/share/classes/jdk/jshell/Eval.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.jshell/share/classes/jdk/jshell/Eval.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package jdk.jshell;
 
 import java.util.ArrayList;
--- a/src/jdk.jshell/share/classes/jdk/jshell/ExecutionControl.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.jshell/share/classes/jdk/jshell/ExecutionControl.java	Fri Dec 18 09:56:17 2015 -0800
@@ -33,6 +33,7 @@
 import java.net.Socket;
 import com.sun.jdi.*;
 import java.io.EOFException;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import jdk.jshell.ClassTracker.ClassInfo;
@@ -247,17 +248,18 @@
         //MessageOutput.textResources = ResourceBundle.getBundle("impl.TTYResources",
         //        Locale.getDefault());
 
-        String connect = "com.sun.jdi.CommandLineLaunch:";
-        String cmdLine = "jdk.internal.jshell.remote.RemoteAgent";
+        String connectorName = "com.sun.jdi.CommandLineLaunch";
         String classPath = System.getProperty("java.class.path");
         String bootclassPath = System.getProperty("sun.boot.class.path");
-        String javaArgs = "-classpath " + classPath + " -Xbootclasspath:" + bootclassPath;
+        String javaArgs = "-classpath \"" + classPath + "\" -Xbootclasspath:\"" + bootclassPath + "\"";
+        Map<String, String> argumentName2Value = new HashMap<>();
+        argumentName2Value.put("main", "jdk.internal.jshell.remote.RemoteAgent " + port);
+        argumentName2Value.put("options", javaArgs);
 
-        String connectSpec = connect + "main=" + cmdLine + " " + port + ",options=" + javaArgs + ",";
         boolean launchImmediately = true;
         int traceFlags = 0;// VirtualMachine.TRACE_SENDS | VirtualMachine.TRACE_EVENTS;
 
-        env.init(connectSpec, launchImmediately, traceFlags);
+        env.init(connectorName, argumentName2Value, launchImmediately, traceFlags);
 
         if (env.connection().isOpen() && env.vm().canBeModified()) {
             /*
--- a/src/jdk.jshell/share/classes/jdk/jshell/ExpressionSnippet.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.jshell/share/classes/jdk/jshell/ExpressionSnippet.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package jdk.jshell;
 
 import jdk.jshell.Key.ExpressionKey;
--- a/src/jdk.jshell/share/classes/jdk/jshell/ImportSnippet.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.jshell/share/classes/jdk/jshell/ImportSnippet.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package jdk.jshell;
 
 import jdk.jshell.Key.ImportKey;
--- a/src/jdk.jshell/share/classes/jdk/jshell/JDIConnection.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.jshell/share/classes/jdk/jshell/JDIConnection.java	Fri Dec 18 09:56:17 2015 -0800
@@ -38,8 +38,9 @@
 import com.sun.jdi.connect.*;
 
 import java.util.*;
-import java.util.regex.*;
+import java.util.Map.Entry;
 import java.io.*;
+
 import static jdk.internal.jshell.debug.InternalDebugControl.DBG_GEN;
 
 /**
@@ -83,239 +84,35 @@
         return null;
     }
 
-    private Map <String, com.sun.jdi.connect.Connector.Argument> parseConnectorArgs(Connector connector, String argString) {
-        Map<String, com.sun.jdi.connect.Connector.Argument> arguments = connector.defaultArguments();
+    private Map <String, Connector.Argument> mergeConnectorArgs(Connector connector, Map<String, String> argumentName2Value) {
+        Map<String, Connector.Argument> arguments = connector.defaultArguments();
 
-        /*
-         * We are parsing strings of the form:
-         *    name1=value1,[name2=value2,...]
-         * However, the value1...valuen substrings may contain
-         * embedded comma(s), so make provision for quoting inside
-         * the value substrings. (Bug ID 4285874)
-         */
-        String regexPattern =
-            "(quote=[^,]+,)|" +           // special case for quote=.,
-            "(\\w+=)" +                   // name=
-            "(((\"[^\"]*\")|" +           //   ( "l , ue"
-            "('[^']*')|" +                //     'l , ue'
-            "([^,'\"]+))+,)";             //     v a l u e )+ ,
-        Pattern p = Pattern.compile(regexPattern);
-        Matcher m = p.matcher(argString);
-        while (m.find()) {
-            int startPosition = m.start();
-            int endPosition = m.end();
-            if (startPosition > 0) {
-                /*
-                 * It is an error if parsing skips over any part of argString.
-                 */
-                throw new IllegalArgumentException("Illegal connector argument" +
-                                          argString);
-            }
+        for (Entry<String, String> argumentEntry : argumentName2Value.entrySet()) {
+            String name = argumentEntry.getKey();
+            String value = argumentEntry.getValue();
+            Connector.Argument argument = arguments.get(name);
 
-            String token = argString.substring(startPosition, endPosition);
-            int index = token.indexOf('=');
-            String name = token.substring(0, index);
-            String value = token.substring(index + 1,
-                                           token.length() - 1); // Remove comma delimiter
-
-            /*
-             * for values enclosed in quotes (single and/or double quotes)
-             * strip off enclosing quote chars
-             * needed for quote enclosed delimited substrings
-             */
-            if (name.equals("options")) {
-                StringBuilder sb = new StringBuilder();
-                for (String s : splitStringAtNonEnclosedWhiteSpace(value)) {
-                    while (isEnclosed(s, "\"") || isEnclosed(s, "'")) {
-                        s = s.substring(1, s.length() - 1);
-                    }
-                    sb.append(s);
-                    sb.append(" ");
-                }
-                value = sb.toString();
-            }
-
-            Connector.Argument argument = arguments.get(name);
             if (argument == null) {
                 throw new IllegalArgumentException("Argument is not defined for connector:" +
                                           name + " -- " + connector.name());
             }
+
             argument.setValue(value);
+        }
 
-            argString = argString.substring(endPosition); // Remove what was just parsed...
-            m = p.matcher(argString);                     //    and parse again on what is left.
-        }
-        if ((! argString.equals(",")) && (argString.length() > 0)) {
-            /*
-             * It is an error if any part of argString is left over,
-             * unless it was empty to begin with.
-             */
-            throw new IllegalArgumentException("Illegal connector argument" + argString);
-        }
         return arguments;
     }
 
-    private static boolean isEnclosed(String value, String enclosingChar) {
-        if (value.indexOf(enclosingChar) == 0) {
-            int lastIndex = value.lastIndexOf(enclosingChar);
-            if (lastIndex > 0 && lastIndex  == value.length() - 1) {
-                return true;
-            }
-        }
-        return false;
-    }
+    JDIConnection(JDIEnv env, String connectorName, Map<String, String> argumentName2Value, int traceFlags, JShell proc) {
+        this.env = env;
+        this.proc = proc;
+        this.connector = findConnector(connectorName);
 
-    private static List<String> splitStringAtNonEnclosedWhiteSpace(String value) throws IllegalArgumentException {
-        List<String> al = new ArrayList<>();
-        char[] arr;
-        int startPosition = 0;
-        int endPosition;
-        final char SPACE = ' ';
-        final char DOUBLEQ = '"';
-        final char SINGLEQ = '\'';
-
-        /*
-         * An "open" or "active" enclosing state is where
-         * the first valid start quote qualifier is found,
-         * and there is a search in progress for the
-         * relevant end matching quote
-         *
-         * enclosingTargetChar set to SPACE
-         * is used to signal a non open enclosing state
-         */
-        char enclosingTargetChar = SPACE;
-
-        if (value == null) {
-            throw new IllegalArgumentException("value string is null");
+        if (connector == null) {
+            throw new IllegalArgumentException("No connector named: " + connectorName);
         }
 
-        // split parameter string into individual chars
-        arr = value.toCharArray();
-
-        for (int i = 0; i < arr.length; i++) {
-            switch (arr[i]) {
-                case SPACE: {
-                    // do nothing for spaces
-                    // unless last in array
-                    if (isLastChar(arr, i)) {
-                        endPosition = i;
-                        // break for substring creation
-                        break;
-                    }
-                    continue;
-                }
-                case DOUBLEQ:
-                case SINGLEQ: {
-                    if (enclosingTargetChar == arr[i]) {
-                        // potential match to close open enclosing
-                        if (isNextCharWhitespace(arr, i)) {
-                            // if peek next is whitespace
-                            // then enclosing is a valid substring
-                            endPosition = i;
-                            // reset enclosing target char
-                            enclosingTargetChar = SPACE;
-                            // break for substring creation
-                            break;
-                        }
-                    }
-                    if (enclosingTargetChar == SPACE) {
-                        // no open enclosing state
-                        // handle as normal char
-                        if (isPreviousCharWhitespace(arr, i)) {
-                            startPosition = i;
-                            // peek forward for end candidates
-                            if (value.indexOf(arr[i], i + 1) >= 0) {
-                                // set open enclosing state by
-                                // setting up the target char
-                                enclosingTargetChar = arr[i];
-                            } else {
-                                // no more target chars left to match
-                                // end enclosing, handle as normal char
-                                if (isNextCharWhitespace(arr, i)) {
-                                    endPosition = i;
-                                    // break for substring creation
-                                    break;
-                                }
-                            }
-                        }
-                    }
-                    continue;
-                }
-                default: {
-                    // normal non-space, non-" and non-' chars
-                    if (enclosingTargetChar == SPACE) {
-                        // no open enclosing state
-                        if (isPreviousCharWhitespace(arr, i)) {
-                            // start of space delim substring
-                            startPosition = i;
-                        }
-                        if (isNextCharWhitespace(arr, i)) {
-                            // end of space delim substring
-                            endPosition = i;
-                            // break for substring creation
-                            break;
-                        }
-                    }
-                    continue;
-                }
-            }
-
-            // break's end up here
-            if (startPosition > endPosition) {
-                throw new IllegalArgumentException("Illegal option values");
-            }
-
-            // extract substring and add to List<String>
-            al.add(value.substring(startPosition, ++endPosition));
-
-            // set new start position
-            i = startPosition = endPosition;
-
-        } // for loop
-
-        return al;
-    }
-
-    static private boolean isPreviousCharWhitespace(char[] arr, int curr_pos) {
-        return isCharWhitespace(arr, curr_pos - 1);
-    }
-
-    static private boolean isNextCharWhitespace(char[] arr, int curr_pos) {
-        return isCharWhitespace(arr, curr_pos + 1);
-    }
-
-    static private boolean isCharWhitespace(char[] arr, int pos) {
-        if (pos < 0 || pos >= arr.length) {
-            // outside arraybounds is considered an implicit space
-            return true;
-        }
-        return (arr[pos] == ' ');
-    }
-
-    static private boolean isLastChar(char[] arr, int pos) {
-        return (pos + 1 == arr.length);
-    }
-
-    JDIConnection(JDIEnv env, String connectSpec, int traceFlags, JShell proc) {
-        this.env = env;
-        this.proc = proc;
-        String nameString;
-        String argString;
-        int index = connectSpec.indexOf(':');
-        if (index == -1) {
-            nameString = connectSpec;
-            argString = "";
-        } else {
-            nameString = connectSpec.substring(0, index);
-            argString = connectSpec.substring(index + 1);
-        }
-
-        connector = findConnector(nameString);
-        if (connector == null) {
-            throw new IllegalArgumentException("No connector named: " + nameString);
-        }
-
-        connectorArgs = parseConnectorArgs(connector, argString);
+        connectorArgs = mergeConnectorArgs(connector, argumentName2Value);
         this.traceFlags = traceFlags;
     }
 
--- a/src/jdk.jshell/share/classes/jdk/jshell/JDIEnv.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.jshell/share/classes/jdk/jshell/JDIEnv.java	Fri Dec 18 09:56:17 2015 -0800
@@ -25,6 +25,8 @@
 
 package jdk.jshell;
 
+import java.util.Map;
+
 import com.sun.jdi.*;
 import static jdk.internal.jshell.debug.InternalDebugControl.DBG_GEN;
 
@@ -41,8 +43,8 @@
         this.state = state;
     }
 
-    void init(String connectSpec, boolean openNow, int flags) {
-        connection = new JDIConnection(this, connectSpec, flags, state);
+    void init(String connectorName, Map<String, String> argumentName2Value, boolean openNow, int flags) {
+        connection = new JDIConnection(this, connectorName, argumentName2Value, flags, state);
         if (!connection.isLaunch() || openNow) {
             connection.open();
         }
--- a/src/jdk.jshell/share/classes/jdk/jshell/JDIEventHandler.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.jshell/share/classes/jdk/jshell/JDIEventHandler.java	Fri Dec 18 09:56:17 2015 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2011, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, 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/jdk.jshell/share/classes/jdk/jshell/MaskCommentsAndModifiers.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.jshell/share/classes/jdk/jshell/MaskCommentsAndModifiers.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package jdk.jshell;
 
 import java.util.Set;
--- a/src/jdk.jshell/share/classes/jdk/jshell/MethodSnippet.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.jshell/share/classes/jdk/jshell/MethodSnippet.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package jdk.jshell;
 
 import java.util.Collection;
--- a/src/jdk.jshell/share/classes/jdk/jshell/OuterWrap.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.jshell/share/classes/jdk/jshell/OuterWrap.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package jdk.jshell;
 
 import jdk.jshell.Wrap.CompoundWrap;
--- a/src/jdk.jshell/share/classes/jdk/jshell/PersistentSnippet.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.jshell/share/classes/jdk/jshell/PersistentSnippet.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package jdk.jshell;
 
 /**
--- a/src/jdk.jshell/share/classes/jdk/jshell/ReplParser.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.jshell/share/classes/jdk/jshell/ReplParser.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package jdk.jshell;
 
 import com.sun.tools.javac.code.TypeTag;
--- a/src/jdk.jshell/share/classes/jdk/jshell/ReplParserFactory.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.jshell/share/classes/jdk/jshell/ReplParserFactory.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package jdk.jshell;
 
 import com.sun.tools.javac.parser.JavacParser;
--- a/src/jdk.jshell/share/classes/jdk/jshell/StatementSnippet.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.jshell/share/classes/jdk/jshell/StatementSnippet.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package jdk.jshell;
 
 import jdk.jshell.Key.StatementKey;
--- a/src/jdk.jshell/share/classes/jdk/jshell/TypeDeclSnippet.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.jshell/share/classes/jdk/jshell/TypeDeclSnippet.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package jdk.jshell;
 
 import java.util.Collection;
--- a/src/jdk.jshell/share/classes/jdk/jshell/TypePrinter.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.jshell/share/classes/jdk/jshell/TypePrinter.java	Fri Dec 18 09:56:17 2015 -0800
@@ -41,15 +41,15 @@
  * Print types in source form.
  */
 class TypePrinter extends Printer {
+    private static final String OBJECT = "Object";
 
     private final JavacMessages messages;
     private final BinaryOperator<String> fullClassNameAndPackageToClass;
-    private final Type typeToPrint;
+    private boolean useWildCard = false;
 
     TypePrinter(JavacMessages messages, BinaryOperator<String> fullClassNameAndPackageToClass, Type typeToPrint) {
         this.messages = messages;
         this.fullClassNameAndPackageToClass = fullClassNameAndPackageToClass;
-        this.typeToPrint = typeToPrint;
     }
 
     @Override
@@ -64,21 +64,40 @@
 
     @Override
     public String visitCapturedType(Type.CapturedType t, Locale locale) {
-        if (t == typeToPrint) {
-            return visit(t.getUpperBound(), locale);
-        } else {
-            return visit(t.wildcard, locale);
+        return visit(t.wildcard, locale);
+    }
+
+    @Override
+    public String visitWildcardType(Type.WildcardType wt, Locale locale) {
+        if (useWildCard) { // at TypeArgument(ex: List<? extends T>)
+            return super.visitWildcardType(wt, locale);
+        } else { // at TopLevelType(ex: ? extends List<T>, ? extends Number[][])
+            Type extendsBound = wt.getExtendsBound();
+            return extendsBound == null
+                    ? OBJECT
+                    : visit(extendsBound, locale);
         }
     }
 
     @Override
     public String visitType(Type t, Locale locale) {
         String s = (t.tsym == null || t.tsym.name == null)
-                ? "Object" // none
+                ? OBJECT // none
                 : t.tsym.name.toString();
         return s;
     }
 
+    @Override
+    public String visitClassType(ClassType ct, Locale locale) {
+        boolean prevUseWildCard = useWildCard;
+        try {
+            useWildCard = true;
+            return super.visitClassType(ct, locale);
+        } finally {
+            useWildCard = prevUseWildCard;
+        }
+    }
+
     /**
      * Converts a class name into a (possibly localized) string. Anonymous
      * inner classes get converted into a localized string.
@@ -101,7 +120,7 @@
             }
             return s.toString();
             ***/
-            return "Object";
+            return OBJECT;
         } else if (sym.name.length() == 0) {
             // Anonymous
             String s;
--- a/src/jdk.jshell/share/classes/jdk/jshell/Util.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.jshell/share/classes/jdk/jshell/Util.java	Fri Dec 18 09:56:17 2015 -0800
@@ -1,4 +1,4 @@
- /*
+/*
  * Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
--- a/src/jdk.jshell/share/classes/jdk/jshell/VarSnippet.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.jshell/share/classes/jdk/jshell/VarSnippet.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package jdk.jshell;
 
 import java.util.Collection;
--- a/src/jdk.jshell/share/classes/jdk/jshell/Wrap.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/src/jdk.jshell/share/classes/jdk/jshell/Wrap.java	Fri Dec 18 09:56:17 2015 -0800
@@ -22,6 +22,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package jdk.jshell;
 
 import java.util.ArrayList;
--- a/test/com/sun/javadoc/T6735320/SerialFieldTest.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/com/sun/javadoc/T6735320/SerialFieldTest.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 import java.io.ObjectStreamField;
 import java.io.Serializable;
 
--- a/test/com/sun/javadoc/testCmndLineClass/C5.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/com/sun/javadoc/testCmndLineClass/C5.java	Fri Dec 18 09:56:17 2015 -0800
@@ -21,7 +21,6 @@
  * questions.
  */
 
-
 /**
  *This is a description for C5.
  */
--- a/test/com/sun/javadoc/testEncoding/EncodeTest.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/com/sun/javadoc/testEncoding/EncodeTest.java	Fri Dec 18 09:56:17 2015 -0800
@@ -21,7 +21,6 @@
  * questions.
  */
 
-
 /**
  * Testing en\u00e7\u00f4ded string.
  * In the encoded comment string, Unicode U+00E7 is "Latin small letter C with cedilla"
--- a/test/com/sun/javadoc/testJavaFX/pkg1/C.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/com/sun/javadoc/testJavaFX/pkg1/C.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package pkg1;
 
 public class C {
--- a/test/com/sun/javadoc/testJavaFX/pkg1/D.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/com/sun/javadoc/testJavaFX/pkg1/D.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package pkg1;
 
 public class D extends C {}
--- a/test/com/sun/javadoc/testJavaFX/pkg2/Test.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/com/sun/javadoc/testJavaFX/pkg2/Test.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package pkg2;
 
 import java.util.List;
--- a/test/com/sun/javadoc/testLegacyTaglet/C.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/com/sun/javadoc/testLegacyTaglet/C.java	Fri Dec 18 09:56:17 2015 -0800
@@ -21,7 +21,6 @@
  * questions.
  */
 
-
 /**
  * This is an {@underline underline}.
  * @todo Finish this class.
--- a/test/com/sun/javadoc/testOrdering/pkg1/A.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/com/sun/javadoc/testOrdering/pkg1/A.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package pkg1;
 import java.util.Collection;
 import java.util.List;
--- a/test/com/sun/javadoc/testOrdering/pkg1/B.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/com/sun/javadoc/testOrdering/pkg1/B.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package pkg1;
 public class B {
 
--- a/test/com/sun/javadoc/testOrdering/src-2/a/A.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/com/sun/javadoc/testOrdering/src-2/a/A.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package a;
 /**
  * A class
--- a/test/com/sun/javadoc/testOrdering/src-2/a/something.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/com/sun/javadoc/testOrdering/src-2/a/something.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package a;
 /**
  * A class
--- a/test/com/sun/javadoc/testOrdering/src-2/b/B.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/com/sun/javadoc/testOrdering/src-2/b/B.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package b;
 /**
  * Another class
--- a/test/com/sun/javadoc/testOrdering/src-2/b/something.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/com/sun/javadoc/testOrdering/src-2/b/something.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package b;
 /**
  * an annotation
--- a/test/com/sun/javadoc/testOrdering/src-2/e/something.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/com/sun/javadoc/testOrdering/src-2/e/something.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package e;
 /**
  * An enum
--- a/test/com/sun/javadoc/testOrdering/src-2/something/J.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/com/sun/javadoc/testOrdering/src-2/something/J.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package something;
 public class J {
    /**
--- a/test/com/sun/javadoc/testOrdering/src-2/something/package-info.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/com/sun/javadoc/testOrdering/src-2/something/package-info.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 /**
  * A  package
  */
--- a/test/com/sun/javadoc/testOrdering/src-2/something/something.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/com/sun/javadoc/testOrdering/src-2/something/something.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package something;
 /**
  * An interface
--- a/test/com/sun/javadoc/testSearch/pkgfx/C.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/com/sun/javadoc/testSearch/pkgfx/C.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package pkgfx;
 
 public class C {
--- a/test/com/sun/javadoc/testSinceTag/pkg1/C1.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/com/sun/javadoc/testSinceTag/pkg1/C1.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package pkg1;
 
 import java.io.IOException;
--- a/test/com/sun/javadoc/testThrowsInheritence/C.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/com/sun/javadoc/testThrowsInheritence/C.java	Fri Dec 18 09:56:17 2015 -0800
@@ -21,7 +21,6 @@
  * questions.
  */
 
-
 public class C implements I {
 
     /**
--- a/test/com/sun/javadoc/testThrowsInheritence/I.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/com/sun/javadoc/testThrowsInheritence/I.java	Fri Dec 18 09:56:17 2015 -0800
@@ -21,7 +21,6 @@
  * questions.
  */
 
-
 public interface I {
     /**
      * @throws java.lang.NullPointerException Test 1 fails
--- a/test/com/sun/javadoc/testTypeAnnotations/typeannos/Varargs.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/com/sun/javadoc/testTypeAnnotations/typeannos/Varargs.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package typeannos;
 
 import java.lang.annotation.*;
--- a/test/com/sun/javadoc/testUseOption/pkg1/AnAbstract.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/com/sun/javadoc/testUseOption/pkg1/AnAbstract.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,5 +20,6 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package pkg1;
 public abstract class AnAbstract implements UsedInterface {}
--- a/test/jdk/jshell/TypeNameTest.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/jdk/jshell/TypeNameTest.java	Fri Dec 18 09:56:17 2015 -0800
@@ -23,7 +23,8 @@
 
 /*
  * @test
- * @summary null test
+ * @bug 8144903
+ * @summary Tests for determining the type from the expression
  * @build KullaTesting TestingInputStream
  * @run testng TypeNameTest
  */
@@ -34,7 +35,6 @@
 
 import static jdk.jshell.Snippet.Status.VALID;
 import static org.testng.Assert.assertEquals;
-import static jdk.jshell.Snippet.Status.OVERWRITTEN;
 
 @Test
 public class TypeNameTest extends KullaTesting {
@@ -62,6 +62,11 @@
         assertEquals(sn.typeName(), "Class<? extends String>");
     }
 
+    public void testArrayTypeOfCapturedTypeName() {
+        VarSnippet sn = (VarSnippet) varKey(assertEval("\"\".getClass().getEnumConstants();"));
+        assertEquals(sn.typeName(), "String[]");
+    }
+
     public void testJavaLang() {
         VarSnippet sn = (VarSnippet) varKey(assertEval("\"\";"));
         assertEquals(sn.typeName(), "String");
@@ -83,14 +88,16 @@
         VarSnippet sn3 = (VarSnippet) varKey(assertEval("list3.iterator().next()"));
         assertEquals(sn3.typeName(), "Object");
         assertEval("class Test1<X extends CharSequence> { public X get() { return null; } }");
-        Snippet x = varKey(assertEval("Test1<?> x = new Test1<>();"));
-        VarSnippet sn4 = (VarSnippet) varKey(assertEval("x.get()"));
-        assertEquals(sn4.typeName(), "CharSequence");
-        assertEval("class Foo<X extends Number & CharSequence> { public X get() { return null; } }");
-        assertEval("Foo<?> x = new Foo<>();",
-                ste(MAIN_SNIPPET, VALID, VALID, true, null),
-                ste(x, VALID, OVERWRITTEN, false, MAIN_SNIPPET));
-        VarSnippet sn5 = (VarSnippet) varKey(assertEval("x.get()"));
+        Snippet x = varKey(assertEval("Test1<?> test1 = new Test1<>();"));
+        VarSnippet sn4 = (VarSnippet) varKey(assertEval("test1.get()"));
+        assertEquals(sn4.typeName(), "Object");
+        assertEval("class Test2<X extends Number & CharSequence> { public X get() { return null; } }");
+        assertEval("Test2<?> test2 = new Test2<>();");
+        VarSnippet sn5 = (VarSnippet) varKey(assertEval("test2.get()"));
         assertEquals(sn5.typeName(), "Object");
+        assertEval("class Test3<T> { T[][] get() { return null; } }", added(VALID));
+        assertEval("Test3<? extends String> test3 = new Test3<>();");
+        VarSnippet sn6 = (VarSnippet) varKey(assertEval("test3.get()"));
+        assertEquals(sn6.typeName(), "String[][]");
     }
 }
--- a/test/jdk/jshell/VariablesTest.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/jdk/jshell/VariablesTest.java	Fri Dec 18 09:56:17 2015 -0800
@@ -23,6 +23,7 @@
 
 /*
  * @test
+ * @bug 8144903
  * @summary Tests for EvaluationState.variables
  * @build KullaTesting TestingInputStream ExpectedDiagnostic
  * @run testng VariablesTest
@@ -184,6 +185,16 @@
         assertActiveKeys();
     }
 
+    public void variablesTemporaryArrayOfCapturedType() {
+        assertEval("class Test<T> { T[][] get() { return null; } }", added(VALID));
+        assertEval("Test<? extends String> test() { return new Test<>(); }", added(VALID));
+        assertEval("test().get()", added(VALID));
+        assertVariables(variable("String[][]", "$1"));
+        assertEval("\"\".getClass().getEnumConstants()", added(VALID));
+        assertVariables(variable("String[][]", "$1"), variable("String[]", "$2"));
+        assertActiveKeys();
+    }
+
     public void variablesClassReplace() {
         assertEval("import java.util.*;", added(VALID));
         Snippet var = varKey(assertEval("List<Integer> list = new ArrayList<>();", "[]",
--- a/test/lib/combo/tools/javac/combo/Diagnostics.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/lib/combo/tools/javac/combo/Diagnostics.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package tools.javac.combo;
 
 import javax.tools.Diagnostic;
--- a/test/lib/combo/tools/javac/combo/JavacTemplateTestBase.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/lib/combo/tools/javac/combo/JavacTemplateTestBase.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package tools.javac.combo;
 
 import java.io.File;
--- a/test/lib/combo/tools/javac/combo/Template.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/lib/combo/tools/javac/combo/Template.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package tools.javac.combo;
 
 import java.util.Map;
--- a/test/lib/combo/tools/javac/combo/TemplateTest.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/lib/combo/tools/javac/combo/TemplateTest.java	Fri Dec 18 09:56:17 2015 -0800
@@ -19,8 +19,8 @@
  * 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 tools.javac.combo;
 
 import org.testng.annotations.BeforeTest;
--- a/test/tools/doclint/tidy/util/Main.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/doclint/tidy/util/Main.java	Fri Dec 18 09:56:17 2015 -0800
@@ -21,7 +21,6 @@
  * questions.
  */
 
-
 package tidystats;
 
 import java.io.IOException;
--- a/test/tools/javac/6199662/TreeInfo.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/6199662/TreeInfo.java	Fri Dec 18 09:56:17 2015 -0800
@@ -21,7 +21,6 @@
  * questions.
  */
 
-
 package p;
 import p.Tree.*;
 
--- a/test/tools/javac/6199662/TreeScanner.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/6199662/TreeScanner.java	Fri Dec 18 09:56:17 2015 -0800
@@ -21,7 +21,6 @@
  * questions.
  */
 
-
 package p;
 import p.Tree.*;
 
--- a/test/tools/javac/6302184/T6302184.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/6302184/T6302184.java	Fri Dec 18 09:56:17 2015 -0800
@@ -21,7 +21,6 @@
  * questions.
  */
 
-
 /**
  * This is a test that uses ISO 8859 encoding.
  */
--- a/test/tools/javac/6400872/C.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/6400872/C.java	Fri Dec 18 09:56:17 2015 -0800
@@ -21,8 +21,6 @@
  * questions.
  */
 
-
-
 class C {
     A a = new A();
     B b = new B();
--- a/test/tools/javac/6508981/p/A.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/6508981/p/A.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,5 +20,6 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package p;
 class A { }
--- a/test/tools/javac/6547131/T.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/6547131/T.java	Fri Dec 18 09:56:17 2015 -0800
@@ -2,7 +2,7 @@
  * @test
  * @bug     6547131
  * @summary java.lang.ClassFormatError when using old collection API
- * @compile T.java
+ * @compile p/Outer.jasm p/Outer$I.jasm T.java
  * @run main T
  */
 
Binary file test/tools/javac/6547131/p/Outer$I.class has changed
Binary file test/tools/javac/6547131/p/Outer.class has changed
--- a/test/tools/javac/6917288/GraphicalInstallerTest.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/6917288/GraphicalInstallerTest.java	Fri Dec 18 09:56:17 2015 -0800
@@ -21,7 +21,6 @@
  * questions.
  */
 
-
 /* @test
  * @bug 6917288
  * @summary Unnamed nested class is not generated
--- a/test/tools/javac/7153958/pkg/ClassToBeStaticallyImportedA.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/7153958/pkg/ClassToBeStaticallyImportedA.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package pkg;
 
 public class ClassToBeStaticallyImportedA {
--- a/test/tools/javac/7153958/pkg/ClassToBeStaticallyImportedB.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/7153958/pkg/ClassToBeStaticallyImportedB.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package pkg;
 
 public class ClassToBeStaticallyImportedB {
Binary file test/tools/javac/InnerClassesAttribute/Outside$1$Inside.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/tools/javac/InnerClassesAttribute/Outside$1$Inside.jasm	Fri Dec 18 09:56:17 2015 -0800
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2015, 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.
+ */
+ 
+super class Outside$1$Inside
+	version 45:3
+{
+
+Method "<init>":"()V"
+	stack 1 locals 1
+{
+		aload_0;
+		invokespecial	Method java/lang/Object."<init>":"()V";
+		return;
+}
+
+private InnerClass Inside=class Outside$1$Inside;
+
+}
\ No newline at end of file
Binary file test/tools/javac/InnerClassesAttribute/Outside.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/tools/javac/InnerClassesAttribute/Outside.jasm	Fri Dec 18 09:56:17 2015 -0800
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2015, 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.
+ */
+
+super public class Outside
+	version 45:3
+{
+
+public Method "<init>":"()V"
+	stack 1 locals 1
+{
+		aload_0;
+		invokespecial	Method java/lang/Object."<init>":"()V";
+		return;
+}
+
+Method method:"()V"
+	stack 0 locals 1
+{
+		return;
+}
+
+private InnerClass Inside=class Outside$1$Inside;
+
+}
\ No newline at end of file
--- a/test/tools/javac/InnerClassesAttribute/Test.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/InnerClassesAttribute/Test.java	Fri Dec 18 09:56:17 2015 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2015 Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -27,7 +27,7 @@
  * @summary The compiler used to crash when it saw a correctly-formed
  *          InnerClasses attribute in a .class file.
  * @author turnidge
- *
+ * @build Outside Outside$1$Inside
  * @compile Test.java
  */
 public
--- a/test/tools/javac/MethodParameters/ClassFileVisitor.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/MethodParameters/ClassFileVisitor.java	Fri Dec 18 09:56:17 2015 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2015 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2015, 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
@@ -279,7 +279,7 @@
                     userParam = param;
                 }
                 }
-                if (expect != null && !param.equals(expect)) {
+                if (check > 0 && expect != null && !param.equals(expect)) {
                     error(prefix + "param[" + x + "]='"
                           + param + "' expected '" + expect + "'");
                     return null;
@@ -346,6 +346,17 @@
                         }
                     }
                 }
+
+                if (synthetic && !mandated && !allowSynthetic) {
+                    //patch treatment for local captures
+                    if (isAnon || (isInner & !isStatic)) {
+                        expect = "val\\$.*";
+                        allowSynthetic = true;
+                        if (isFinal) {
+                            expect = "final val\\$.*";
+                        }
+                    }
+                }
             } else if (isEnum && mNumParams == 1 && index == 0 && mName.equals("valueOf")) {
                 expect = "name";
                 allowMandated = true;
@@ -411,7 +422,6 @@
             if (mSynthetic) {
                 return 0;
             }
-
             // Otherwise, do check test parameter naming convention.
             return 1;
         }
--- a/test/tools/javac/MethodParameters/LocalClassTest.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/MethodParameters/LocalClassTest.java	Fri Dec 18 09:56:17 2015 -0800
@@ -45,6 +45,16 @@
         }
         new LocalClassTest().foo();
     }
+
+    void test(final int i) {
+        class CapturingLocal {
+            CapturingLocal(final int j) {
+               this(new Object() { void test() { int x = i; } });
+            }
+            CapturingLocal(Object o) { }
+        }
+        new CapturingLocal(i) { };
+    }
 }
 
 
--- a/test/tools/javac/MethodParameters/LocalClassTest.out	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/MethodParameters/LocalClassTest.out	Fri Dec 18 09:56:17 2015 -0800
@@ -1,12 +1,21 @@
-class LocalClassTest$1Local_has_constructor -- inner
-LocalClassTest$1Local_has_constructor.<init>(final this$0/*implicit*/, a, ba)
-LocalClassTest$1Local_has_constructor.<init>(final this$0/*implicit*/)
-LocalClassTest$1Local_has_constructor.foo(m, nm)
-LocalClassTest$1Local_has_constructor.foo()
+class LocalClassTest$1 -- anon
+LocalClassTest$1.<init>(final this$0/*implicit*/, final j, final val$i/*synthetic*/)
+class LocalClassTest$1CapturingLocal$1 -- anon
+LocalClassTest$1CapturingLocal$1.<init>(final val$this$0/*synthetic*/, final val$val$i/*synthetic*/)
+LocalClassTest$1CapturingLocal$1.test()
+class LocalClassTest$1CapturingLocal -- inner
+LocalClassTest$1CapturingLocal.<init>(final this$0/*implicit*/, final j, final val$i/*synthetic*/)
+LocalClassTest$1CapturingLocal.<init>(final this$0/*implicit*/, o, final val$i/*synthetic*/)
 class LocalClassTest$1Local_default_constructor -- inner
 LocalClassTest$1Local_default_constructor.<init>(final this$0/*implicit*/)
 LocalClassTest$1Local_default_constructor.foo()
 LocalClassTest$1Local_default_constructor.foo(m, nm)
+class LocalClassTest$1Local_has_constructor -- inner
+LocalClassTest$1Local_has_constructor.<init>(final this$0/*implicit*/)
+LocalClassTest$1Local_has_constructor.<init>(final this$0/*implicit*/, a, ba)
+LocalClassTest$1Local_has_constructor.foo()
+LocalClassTest$1Local_has_constructor.foo(m, nm)
 class LocalClassTest -- 
 LocalClassTest.<init>()
-LocalClassTest.foo()
\ No newline at end of file
+LocalClassTest.foo()
+LocalClassTest.test(final i)
--- a/test/tools/javac/MethodParameters/ReflectionVisitor.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/MethodParameters/ReflectionVisitor.java	Fri Dec 18 09:56:17 2015 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2015 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2015, 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
@@ -164,6 +164,17 @@
                 }
             }
 
+            if (p.isSynthetic() && !p.isImplicit() && !allowSynthetic) {
+                //patch treatment for local captures
+                if (isAnon || ((isLocal || isAnon) & !isStatic)) {
+                    expect = "val\\$.*";
+                    allowSynthetic = true;
+                    if (isFinal) {
+                        expect = "final val\\$.*";
+                    }
+                }
+            }
+
             // Check expected flags
             if (p.isSynthetic() && p.isImplicit()) {
                 error(prefix + "param[" + i + "]='" + pname +
--- a/test/tools/javac/NameClash/NameClashTest.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/NameClash/NameClashTest.java	Fri Dec 18 09:56:17 2015 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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
Binary file test/tools/javac/T6435291/T.class has changed
--- a/test/tools/javac/T6435291/T6435291.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/T6435291/T6435291.java	Fri Dec 18 09:56:17 2015 -0800
@@ -30,6 +30,7 @@
  *          jdk.compiler/com.sun.tools.javac.code
  *          jdk.compiler/com.sun.tools.javac.main
  *          jdk.compiler/com.sun.tools.javac.util
+ * @build T
  * @run main/othervm T6435291
  */
 
--- a/test/tools/javac/T6458823/MyProcessor.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/T6458823/MyProcessor.java	Fri Dec 18 09:56:17 2015 -0800
@@ -1,25 +1,25 @@
- /*
-  * 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.
-  */
+/*
+ * 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.
+ */
 
 import java.util.Set;
 import javax.annotation.processing.*;
--- a/test/tools/javac/T6942649.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/T6942649.java	Fri Dec 18 09:56:17 2015 -0800
@@ -21,7 +21,6 @@
  * questions.
  */
 
-
 /*
  * @test
  * @bug 6942649
--- a/test/tools/javac/annotations/neg/8022765/VerifyAnnotationsAttributed.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/annotations/neg/8022765/VerifyAnnotationsAttributed.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 import com.sun.source.tree.CompilationUnitTree;
 import com.sun.source.tree.IdentifierTree;
 import com.sun.source.tree.MemberSelectTree;
--- a/test/tools/javac/annotations/typeAnnotations/TargetTypes.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/annotations/typeAnnotations/TargetTypes.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 import java.lang.annotation.*;
 import static java.lang.annotation.ElementType.*;
 import static java.lang.annotation.RetentionPolicy.*;
--- a/test/tools/javac/annotations/typeAnnotations/TypeProcOnly.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/annotations/typeAnnotations/TypeProcOnly.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 import java.io.*;
 import java.util.Set;
 import java.util.HashSet;
--- a/test/tools/javac/annotations/typeAnnotations/classfile/T8008769.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/annotations/typeAnnotations/classfile/T8008769.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 /*
  * @test
  * @summary Repeated type-annotations on type parm of local variable
--- a/test/tools/javac/annotations/typeAnnotations/packageanno/PackageProcessor.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/annotations/typeAnnotations/packageanno/PackageProcessor.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 import java.util.HashSet;
 import java.util.Set;
 
--- a/test/tools/javac/annotations/typeAnnotations/packageanno/mypackage/Anno.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/annotations/typeAnnotations/packageanno/mypackage/Anno.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package mypackage;
 import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Retention;
--- a/test/tools/javac/annotations/typeAnnotations/packageanno/mypackage/MyClass.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/annotations/typeAnnotations/packageanno/mypackage/MyClass.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package mypackage;
 
 public class MyClass {}
--- a/test/tools/javac/api/6557752/T6557752.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/api/6557752/T6557752.java	Fri Dec 18 09:56:17 2015 -0800
@@ -21,7 +21,6 @@
  * questions.
  */
 
-
 /*
  * @test
  * @bug     6557752
--- a/test/tools/javac/api/TestGetElementReferenceData.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/api/TestGetElementReferenceData.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package test;
 /*getElement:PACKAGE:test*/
 import java.lang.annotation.*;
--- a/test/tools/javac/classfiles/attributes/innerclasses/InnerClassesTest.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/classfiles/attributes/innerclasses/InnerClassesTest.java	Fri Dec 18 09:56:17 2015 -0800
@@ -21,7 +21,6 @@
  * questions.
  */
 
-
 /*
  * @test
  * @bug 8034854 8042251
--- a/test/tools/javac/classfiles/attributes/innerclasses/InnerEnumInInnerAnnotationTest.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/classfiles/attributes/innerclasses/InnerEnumInInnerAnnotationTest.java	Fri Dec 18 09:56:17 2015 -0800
@@ -21,7 +21,6 @@
  * questions.
  */
 
-
 /*
  * @test
  * @bug 8042251
--- a/test/tools/javac/defaultMethods/Assertions.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/defaultMethods/Assertions.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package test;
 
 import java.util.Arrays;
--- a/test/tools/javac/defaultMethods/crossCompile/Clinit.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/defaultMethods/crossCompile/Clinit.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 interface Clinit {
     String s = Inner.m();
 
--- a/test/tools/javac/diags/HTMLWriter.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/diags/HTMLWriter.java	Fri Dec 18 09:56:17 2015 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1996,2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 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
@@ -21,8 +21,6 @@
  * questions.
  */
 
-
-
 import java.io.BufferedWriter;
 import java.io.File;
 import java.io.IOException;
--- a/test/tools/javac/diags/examples/DiamondAndAnonClass.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/diags/examples/DiamondAndAnonClass.java	Fri Dec 18 09:56:17 2015 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2015 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2015, 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/diags/examples/DiamondAndNonDenotableTypes.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/diags/examples/DiamondAndNonDenotableTypes.java	Fri Dec 18 09:56:17 2015 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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/doctree/positions/TestPositionSource.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/doctree/positions/TestPositionSource.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 public class TestPositionSource {
 
     /**First sentence.
--- a/test/tools/javac/file/zip/8003512/LoadClassFromJava6CreatedJarTest.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/file/zip/8003512/LoadClassFromJava6CreatedJarTest.java	Fri Dec 18 09:56:17 2015 -0800
@@ -1,4 +1,3 @@
-
 /*
  * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -22,6 +21,7 @@
  * questions.
  */
 
+
 /*
  * @test
  * @bug 8003512
--- a/test/tools/javac/flow/AliveRanges.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/flow/AliveRanges.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 import java.lang.annotation.*;
 
 @Repeatable(AliveRanges.class)
--- a/test/tools/javac/generics/8004094/B.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/generics/8004094/B.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 abstract class A {
 
     private static String s = null;
--- a/test/tools/javac/generics/bridges/Bridge.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/generics/bridges/Bridge.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 import java.lang.annotation.Repeatable;
 
 @Repeatable(Bridges.class)
--- a/test/tools/javac/generics/bridges/Bridges.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/generics/bridges/Bridges.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 @interface Bridges {
     Bridge[] value();
 }
--- a/test/tools/javac/generics/bridges/tests/TestBridgeWithDefault.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/generics/bridges/tests/TestBridgeWithDefault.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 class TestBridgeWithDefault {
     interface A { Object m(int x); }
 
--- a/test/tools/javac/generics/bridges/tests/TestClassAndInterfaceBridgeIdentical01.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/generics/bridges/tests/TestClassAndInterfaceBridgeIdentical01.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 class TestClassAndInterfaceBridgeIdentical01 {
 
     interface A { Object m(); }
--- a/test/tools/javac/generics/bridges/tests/TestClassAndInterfaceBridgeIdentical02.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/generics/bridges/tests/TestClassAndInterfaceBridgeIdentical02.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 class TestClassAndInterfaceBridgeIdentical02 {
 
     interface A<X extends Object> { void m(X x); }
--- a/test/tools/javac/generics/bridges/tests/TestNoBridgeInSiblingsSuper.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/generics/bridges/tests/TestNoBridgeInSiblingsSuper.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 class TestNoBridgeInSiblingSuper {
     interface A { Object m(); }
     interface B { String m(); }
--- a/test/tools/javac/generics/bridges/tests/TestNoDuplicateBridges01.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/generics/bridges/tests/TestNoDuplicateBridges01.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 class TestNoDuplicateBridges01 {
     interface A1 { Object m(); }
     interface A2 { Object m(); }
--- a/test/tools/javac/generics/bridges/tests/TestNoDuplicateBridges02.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/generics/bridges/tests/TestNoDuplicateBridges02.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 class TestNoDuplicateBridges02 {
     interface A<T> {
         A<T> get();
--- a/test/tools/javac/generics/diamond/pos/NestedDiamondAllocationTest.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/generics/diamond/pos/NestedDiamondAllocationTest.java	Fri Dec 18 09:56:17 2015 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/tools/javac/generics/inference/CaptureInDeclaredBound.java	Fri Dec 18 09:56:17 2015 -0800
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 2015, 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 7190296 8033718
+ * @summary F-bounded capture variable is within its declared bound
+ * @compile CaptureInDeclaredBound.java
+ */
+
+public class CaptureInDeclaredBound {
+
+    class C<T> {}
+
+    interface I<X extends Comparable<X>> {
+        C<X> get();
+    }
+
+    <Z extends Comparable<? super Z>> void m(C<Z> arg) {}
+
+    void test(I<?> arg) {
+        m(arg.get());
+    }
+
+}
--- a/test/tools/javac/implicitCompile/Implicit.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/implicitCompile/Implicit.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,5 +20,6 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 class Implicit {
 }
--- a/test/tools/javac/importscope/TestDuplicateImport.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/importscope/TestDuplicateImport.java	Fri Dec 18 09:56:17 2015 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011-2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2015, 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/importscope/TestLazyImportScope.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/importscope/TestLazyImportScope.java	Fri Dec 18 09:56:17 2015 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011-2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2015, 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/lambda/8068399/T8068399.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/lambda/8068399/T8068399.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 /*
  * @test
  * @bug 8068399 8069545
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/tools/javac/lambda/8142876/T8142876.java	Fri Dec 18 09:56:17 2015 -0800
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 2015, 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 8142876
+ * @summary Javac does not correctly implement wildcards removal from functional interfaces
+ * @compile T8142876.java
+ */
+class T8142876 {
+    interface I<R extends Runnable, T> {
+        void m();
+    }
+
+    void test() {
+        I<? extends O, String> succeed = this::ff;
+        I<? extends Comparable<String>, String> failed = this::ff;
+    }
+
+    interface O {}
+
+    private void ff(){}
+}
--- a/test/tools/javac/lambda/LocalBreakAndContinue.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/lambda/LocalBreakAndContinue.java	Fri Dec 18 09:56:17 2015 -0800
@@ -19,7 +19,6 @@
  * 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.
-
  */
 
 /*
--- a/test/tools/javac/lambda/bridge/template_tests/BridgeMethodTestCase.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/lambda/bridge/template_tests/BridgeMethodTestCase.java	Fri Dec 18 09:56:17 2015 -0800
@@ -19,8 +19,8 @@
  * 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.io.IOException;
 import java.lang.reflect.Method;
--- a/test/tools/javac/lambda/bridge/template_tests/BridgeMethodsTemplateTest.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/lambda/bridge/template_tests/BridgeMethodsTemplateTest.java	Fri Dec 18 09:56:17 2015 -0800
@@ -19,8 +19,8 @@
  * 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.IOException;
 
 import org.testng.annotations.Test;
--- a/test/tools/javac/lambda/inaccessibleMref01/p1/C.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/lambda/inaccessibleMref01/p1/C.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package p1;
 
 public class C {
--- a/test/tools/javac/lambda/inaccessibleMref02/p1/C.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/lambda/inaccessibleMref02/p1/C.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package p1;
 
 class Sup {
--- a/test/tools/javac/lambda/methodReferenceExecution/pkg/B.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/lambda/methodReferenceExecution/pkg/B.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package pkg;
 class A {
     public static void m() {
--- a/test/tools/javac/lambda/separate/Foo.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/lambda/separate/Foo.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 interface Foo<X extends Number> {
     void m(X x);
 }
--- a/test/tools/javac/missingSuperRecovery/MissingSuperRecovery.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/missingSuperRecovery/MissingSuperRecovery.java	Fri Dec 18 09:56:17 2015 -0800
@@ -4,7 +4,7 @@
  * @summary Check for proper error recovery when superclass of extended
  * class is no longer available during a subsequent compilation.
  * @author maddox
- *
+ * @build impl
  * @compile/fail/ref=MissingSuperRecovery.out -XDdiags=%b:%l:%_%m MissingSuperRecovery.java
  */
 
Binary file test/tools/javac/missingSuperRecovery/impl.class has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/tools/javac/missingSuperRecovery/impl.jasm	Fri Dec 18 09:56:17 2015 -0800
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2015, 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.
+ */
+
+super public class impl
+	implements base
+	version 45:3
+{
+
+public Method "<init>":"()V"
+	stack 1 locals 1
+{
+		aload_0;
+		invokespecial	Method java/lang/Object."<init>":"()V";
+		return;
+}
+
+public Method run:"()V"
+	stack 0 locals 1
+{
+		return;
+}
+
+}
\ No newline at end of file
--- a/test/tools/javac/options/T7022337.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/options/T7022337.java	Fri Dec 18 09:56:17 2015 -0800
@@ -21,7 +21,6 @@
  * questions.
  */
 
-
 /*
  * @test
  * @bug 7022337
--- a/test/tools/javac/policy/test3/Test.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/policy/test3/Test.java	Fri Dec 18 09:56:17 2015 -0800
@@ -21,7 +21,6 @@
  * questions.
  */
 
-
 /* @test
  * @bug 6813059
  * @summary
--- a/test/tools/javac/processing/6414633/A.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/processing/6414633/A.java	Fri Dec 18 09:56:17 2015 -0800
@@ -21,7 +21,6 @@
  * questions.
  */
 
-
 import java.util.*;
 import javax.annotation.*;
 import javax.annotation.processing.*;
--- a/test/tools/javac/processing/TestWarnErrorCount.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/processing/TestWarnErrorCount.java	Fri Dec 18 09:56:17 2015 -0800
@@ -21,7 +21,6 @@
  * questions.
  */
 
-
 /*
  * @test
  * @bug 7022337
--- a/test/tools/javac/processing/model/element/TestMissingElement/TestMissingElement.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/processing/model/element/TestMissingElement/TestMissingElement.java	Fri Dec 18 09:56:17 2015 -0800
@@ -21,7 +21,6 @@
  * questions.
  */
 
-
 /*
  * @test
  * @bug 6639645 7026414 7025809
--- a/test/tools/javac/resolve/Candidate.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/resolve/Candidate.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 import java.lang.annotation.ElementType;
 import java.lang.annotation.Target;
 
--- a/test/tools/javac/resolve/Pos.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/resolve/Pos.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 import java.lang.annotation.ElementType;
 import java.lang.annotation.Target;
 
--- a/test/tools/javac/resolve/TraceResolve.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/resolve/TraceResolve.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 import java.lang.annotation.ElementType;
 import java.lang.annotation.Target;
 
--- a/test/tools/javac/resolve/tests/AbstractMerge.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/resolve/tests/AbstractMerge.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 @TraceResolve
 class AbstractMerge {
 
--- a/test/tools/javac/scope/DupUnsharedTest.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/scope/DupUnsharedTest.java	Fri Dec 18 09:56:17 2015 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2015 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2015, 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/scope/RemoveSymbolUnitTest.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/scope/RemoveSymbolUnitTest.java	Fri Dec 18 09:56:17 2015 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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/staticImport/6665223/pkg/A.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/staticImport/6665223/pkg/A.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package pkg;
 
 import static pkg.B.b;
--- a/test/tools/javac/staticImport/6665223/pkg/B.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/staticImport/6665223/pkg/B.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package pkg;
 
 class B extends B2 {}
--- a/test/tools/javac/tree/JavacTreeScannerTest.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/tree/JavacTreeScannerTest.java	Fri Dec 18 09:56:17 2015 -0800
@@ -21,7 +21,6 @@
  * questions.
  */
 
-
 /**
  * Utility and test program to check javac's internal TreeScanner class.
  * The program can be run standalone, or as a jtreg test.  For info on
--- a/test/tools/javac/tree/SourceTreeScannerTest.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/tree/SourceTreeScannerTest.java	Fri Dec 18 09:56:17 2015 -0800
@@ -21,7 +21,6 @@
  * questions.
  */
 
-
 /**
  * Utility and test program to check javac's internal TreeScanner class.
  * The program can be run standalone, or as a jtreg test.  For info on
--- a/test/tools/javac/tree/TestAnnotatedAnonClass.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/tree/TestAnnotatedAnonClass.java	Fri Dec 18 09:56:17 2015 -0800
@@ -21,7 +21,6 @@
  * questions.
  */
 
-
 /*
  * This file is not a regular test, but is processed by ./TreePosTest.java,
  * which verifies the position info in the javac tree.
--- a/test/tools/javac/types/CastTest.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/types/CastTest.java	Fri Dec 18 09:56:17 2015 -0800
@@ -35,8 +35,6 @@
  */
 
 import com.sun.tools.javac.code.Type;
-import com.sun.tools.javac.code.Type.*;
-import com.sun.tools.javac.code.Symbol.*;
 import java.lang.reflect.Array;
 
 import static com.sun.tools.javac.code.Flags.*;
@@ -65,7 +63,7 @@
     /*C*/       { F   , F    , F  , F   , F    , F     , F   , F   , T, F , T, T, F     , F      , F    , F     , F      , F       , F     , F     , F  , F   , F  , F },
     /*+C*/      { F   , F    , F  , F   , F    , F     , F   , F   , F, T , F, T, F     , F      , F    , F     , F      , F       , F     , F     , F  , F   , F  , F },
     /*I*/       { F   , F    , F  , F   , F    , F     , F   , F   , T, F , T, T, F     , F      , F    , F     , F      , F       , F     , F     , F  , F   , F  , F },
-    /*T*/       { F   , F    , F  , F   , F    , F     , F   , F   , T, T , T, T, T     , T      , T    , T     , T      , T       , T     , T     , T  , T   , T  , T },
+    /*T*/       { T   , T    , T  , T   , T    , T     , T   , T   , T, T , T, T, T     , T      , T    , T     , T      , T       , T     , T     , T  , T   , T  , T },
     /*byte[]*/  { F   , F    , F  , F   , F    , F     , F   , F   , F, F , F, T, T     , F      , F    , F     , F      , F       , F     , F     , F  , F   , F  , F },
     /*short[]*/ { F   , F    , F  , F   , F    , F     , F   , F   , F, F , F, T, F     , T      , F    , F     , F      , F       , F     , F     , F  , F   , F  , F },
     /*int[]*/   { F   , F    , F  , F   , F    , F     , F   , F   , F, F , F, T, F     , F      , T    , F     , F      , F       , F     , F     , F  , F   , F  , F },
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/tools/javac/types/CastToTypeVarTest.java	Fri Dec 18 09:56:17 2015 -0800
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2015, 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 8144832
+ * @summary cast conversion fails when converting a type-variable to primitive type
+ * @compile -Werror -Xlint:all CastToTypeVarTest.java
+ */
+
+public class CastToTypeVarTest<X, Y extends X> {
+    void foo(Y y) {
+        X x = (X)y;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/tools/javac/types/CastTypeVarToPrimitiveTest.java	Fri Dec 18 09:56:17 2015 -0800
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2015, 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 8144832
+ * @summary cast conversion fails when converting a type-variable to primitive type
+ * @compile CastTypeVarToPrimitiveTest.java
+ */
+
+public class CastTypeVarToPrimitiveTest<T> {
+    void foo(T valIn){
+        double val = (double)valIn;
+    }
+}
--- a/test/tools/javac/warnings/suppress/T8021112a.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javac/warnings/suppress/T8021112a.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package test;
 
 /**
--- a/test/tools/javadoc/parser/7091528/p/C3.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javadoc/parser/7091528/p/C3.java	Fri Dec 18 09:56:17 2015 -0800
@@ -21,7 +21,6 @@
  * questions.
  */
 
-
 /** This is class C3, and no package for me please */
 public class C3 {}
 
--- a/test/tools/javadoc/subpackageIgnore/pkg1/not-subpkg/SomeJavaFile.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javadoc/subpackageIgnore/pkg1/not-subpkg/SomeJavaFile.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,3 +20,4 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
--- a/test/tools/javap/ExtPath.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javap/ExtPath.java	Fri Dec 18 09:56:17 2015 -0800
@@ -21,7 +21,6 @@
  * questions.
  */
 
-
 /**
  * @test
  * @bug     6428896
--- a/test/tools/javap/T4880672.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javap/T4880672.java	Fri Dec 18 09:56:17 2015 -0800
@@ -21,7 +21,6 @@
  * questions.
  */
 
-
 /*
  * @test
  * @bug 4880672 7031005
--- a/test/tools/javap/T6729471.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javap/T6729471.java	Fri Dec 18 09:56:17 2015 -0800
@@ -21,7 +21,6 @@
  * questions.
  */
 
-
 /*
  * @test
  * @bug 6729471
--- a/test/tools/javap/T6866657.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/javap/T6866657.java	Fri Dec 18 09:56:17 2015 -0800
@@ -21,7 +21,6 @@
  * questions.
  */
 
-
 /*
  * @test
  * @bug 6866657
--- a/test/tools/jdeps/VerboseFormat/JdepsDependencyClosure.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/jdeps/VerboseFormat/JdepsDependencyClosure.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 import java.io.IOException;
 import java.io.OutputStream;
 import java.io.PrintWriter;
--- a/test/tools/jdeps/VerboseFormat/use/indirect/DontUseUnsafe2.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/jdeps/VerboseFormat/use/indirect/DontUseUnsafe2.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package use.indirect;
 
 import use.unsafe.*;
--- a/test/tools/jdeps/VerboseFormat/use/indirect/UseUnsafeIndirectly.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/jdeps/VerboseFormat/use/indirect/UseUnsafeIndirectly.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package use.indirect;
 
 import use.unsafe.UseClassWithUnsafe;
--- a/test/tools/jdeps/VerboseFormat/use/indirect2/DontUseUnsafe3.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/jdeps/VerboseFormat/use/indirect2/DontUseUnsafe3.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package use.indirect2;
 
 import use.unsafe.*;
--- a/test/tools/jdeps/VerboseFormat/use/indirect2/UseUnsafeIndirectly2.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/jdeps/VerboseFormat/use/indirect2/UseUnsafeIndirectly2.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package use.indirect2;
 
 import use.unsafe.UseUnsafeClass;
--- a/test/tools/jdeps/VerboseFormat/use/unsafe/DontUseUnsafe.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/jdeps/VerboseFormat/use/unsafe/DontUseUnsafe.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package use.unsafe;
 
 public class DontUseUnsafe {
--- a/test/tools/jdeps/VerboseFormat/use/unsafe/UseUnsafeClass.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/jdeps/VerboseFormat/use/unsafe/UseUnsafeClass.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package use.unsafe;
 
 import sun.misc.Unsafe;
--- a/test/tools/jdeps/VerboseFormat/use/unsafe/UseUnsafeClass2.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/jdeps/VerboseFormat/use/unsafe/UseUnsafeClass2.java	Fri Dec 18 09:56:17 2015 -0800
@@ -20,6 +20,7 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
+
 package use.unsafe;
 
 import sun.misc.Unsafe;
--- a/test/tools/lib/ToolBox.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/lib/ToolBox.java	Fri Dec 18 09:56:17 2015 -0800
@@ -124,9 +124,6 @@
     /** The stream used for logging output. */
     public PrintStream out = System.err;
 
-    JavaCompiler compiler;
-    StandardJavaFileManager standardJavaFileManager;
-
     /**
      * Checks if the host OS is some version of Windows.
      * @return true if the host OS is some version of Windows
@@ -868,15 +865,18 @@
      */
     public class JavacTask extends AbstractTask<JavacTask> {
         private boolean includeStandardOptions;
-        private String classpath;
-        private String sourcepath;
-        private String outdir;
+        private List<Path> classpath;
+        private List<Path> sourcepath;
+        private Path outdir;
         private List<String> options;
         private List<String> classes;
         private List<String> files;
         private List<JavaFileObject> fileObjects;
         private JavaFileManager fileManager;
 
+        private JavaCompiler compiler;
+        private StandardJavaFileManager internalFileManager;
+
         /**
          * Creates a task to execute {@code javac} using API mode.
          */
@@ -898,7 +898,20 @@
          * @return this task object
          */
         public JavacTask classpath(String classpath) {
-            this.classpath = classpath;
+            this.classpath = Stream.of(classpath.split(File.pathSeparator))
+                    .filter(s -> !s.isEmpty())
+                    .map(s -> Paths.get(s))
+                    .collect(Collectors.toList());
+            return this;
+        }
+
+        /**
+         * Sets the classpath.
+         * @param classpath the classpath
+         * @return this task object
+         */
+        public JavacTask classpath(Path... classpath) {
+            this.classpath = Arrays.asList(classpath);
             return this;
         }
 
@@ -908,7 +921,20 @@
          * @return this task object
          */
         public JavacTask sourcepath(String sourcepath) {
-            this.sourcepath = sourcepath;
+            this.sourcepath = Stream.of(sourcepath.split(File.pathSeparator))
+                    .filter(s -> !s.isEmpty())
+                    .map(s -> Paths.get(s))
+                    .collect(Collectors.toList());
+            return this;
+        }
+
+        /**
+         * Sets the sourcepath.
+         * @param classpath the sourcepath
+         * @return this task object
+         */
+        public JavacTask sourcepath(Path... sourcepath) {
+            this.sourcepath = Arrays.asList(sourcepath);
             return this;
         }
 
@@ -918,6 +944,16 @@
          * @return this task object
          */
         public JavacTask outdir(String outdir) {
+            this.outdir = Paths.get(outdir);
+            return this;
+        }
+
+        /**
+         * Sets the output directory.
+         * @param outdir the output directory
+         * @return this task object
+         */
+        public JavacTask outdir(Path outdir) {
             this.outdir = outdir;
             return this;
         }
@@ -1039,38 +1075,43 @@
         }
 
         private int runAPI(PrintWriter pw) throws IOException {
-//            if (compiler == null) {
-                // TODO: allow this to be set externally
-//                compiler = ToolProvider.getSystemJavaCompiler();
-                compiler = JavacTool.create();
-//            }
+            try {
+//                if (compiler == null) {
+                    // TODO: allow this to be set externally
+//                    compiler = ToolProvider.getSystemJavaCompiler();
+                    compiler = JavacTool.create();
+//                }
 
-            if (fileManager == null)
-                fileManager = compiler.getStandardFileManager(null, null, null);
-            if (outdir != null)
-                setLocation(StandardLocation.CLASS_OUTPUT, toFiles(outdir));
-            if (classpath != null)
-                setLocation(StandardLocation.CLASS_PATH, toFiles(classpath));
-            if (sourcepath != null)
-                setLocation(StandardLocation.SOURCE_PATH, toFiles(sourcepath));
-            List<String> allOpts = new ArrayList<>();
-            if (options != null)
-                allOpts.addAll(options);
+                if (fileManager == null)
+                    fileManager = internalFileManager = compiler.getStandardFileManager(null, null, null);
+                if (outdir != null)
+                    setLocationFromPaths(StandardLocation.CLASS_OUTPUT, Collections.singletonList(outdir));
+                if (classpath != null)
+                    setLocationFromPaths(StandardLocation.CLASS_PATH, classpath);
+                if (sourcepath != null)
+                    setLocationFromPaths(StandardLocation.SOURCE_PATH, sourcepath);
+                List<String> allOpts = new ArrayList<>();
+                if (options != null)
+                    allOpts.addAll(options);
 
-            Iterable<? extends JavaFileObject> allFiles = joinFiles(files, fileObjects);
-            JavaCompiler.CompilationTask task = compiler.getTask(pw,
-                    fileManager,
-                    null,  // diagnostic listener; should optionally collect diags
-                    allOpts,
-                    classes,
-                    allFiles);
-            return ((JavacTaskImpl) task).doCall().exitCode;
+                Iterable<? extends JavaFileObject> allFiles = joinFiles(files, fileObjects);
+                JavaCompiler.CompilationTask task = compiler.getTask(pw,
+                        fileManager,
+                        null,  // diagnostic listener; should optionally collect diags
+                        allOpts,
+                        classes,
+                        allFiles);
+                return ((JavacTaskImpl) task).doCall().exitCode;
+            } finally {
+                if (internalFileManager != null)
+                    internalFileManager.close();
+            }
         }
 
-        private void setLocation(StandardLocation location, List<File> files) throws IOException {
+        private void setLocationFromPaths(StandardLocation location, List<Path> files) throws IOException {
             if (!(fileManager instanceof StandardJavaFileManager))
                 throw new IllegalStateException("not a StandardJavaFileManager");
-            ((StandardJavaFileManager) fileManager).setLocation(location, files);
+            ((StandardJavaFileManager) fileManager).setLocationFromPaths(location, files);
         }
 
         private int runCommand(PrintWriter pw) {
@@ -1105,15 +1146,15 @@
                 args.addAll(options);
             if (outdir != null) {
                 args.add("-d");
-                args.add(outdir);
+                args.add(outdir.toString());
             }
             if (classpath != null) {
                 args.add("-classpath");
-                args.add(classpath);
+                args.add(toSearchPath(classpath));
             }
             if (sourcepath != null) {
                 args.add("-sourcepath");
-                args.add(sourcepath);
+                args.add(toSearchPath(sourcepath));
             }
             if (classes != null)
                 args.addAll(classes);
@@ -1123,23 +1164,20 @@
             return args;
         }
 
-        private List<File> toFiles(String path) {
-            List<File> result = new ArrayList<>();
-            for (String s : path.split(File.pathSeparator)) {
-                if (!s.isEmpty())
-                    result.add(new File(s));
-            }
-            return result;
+        private String toSearchPath(List<Path> files) {
+            return files.stream()
+                .map(Path::toString)
+                .collect(Collectors.joining(File.pathSeparator));
         }
 
         private Iterable<? extends JavaFileObject> joinFiles(
                 List<String> files, List<JavaFileObject> fileObjects) {
             if (files == null)
                 return fileObjects;
-            if (standardJavaFileManager == null)
-                standardJavaFileManager = compiler.getStandardFileManager(null, null, null);
+            if (internalFileManager == null)
+                internalFileManager = compiler.getStandardFileManager(null, null, null);
             Iterable<? extends JavaFileObject> filesAsFileObjects =
-                    standardJavaFileManager.getJavaFileObjectsFromStrings(files);
+                    internalFileManager.getJavaFileObjectsFromStrings(files);
             if (fileObjects == null)
                 return filesAsFileObjects;
             List<JavaFileObject> combinedList = new ArrayList<>();
@@ -1364,6 +1402,15 @@
         }
 
         /**
+         * Creates a JarTask for use with a given jar file.
+         * @param path the file
+         */
+        public JarTask(Path path) {
+            this();
+            jar = path;
+        }
+
+        /**
          * Sets a manifest for the jar file.
          * @param manifest the manifest
          * @return this task object
@@ -1417,6 +1464,16 @@
         }
 
         /**
+         * Sets the base directory for files to be written into the jar file.
+         * @param baseDir the base directory
+         * @return this task object
+         */
+        public JarTask baseDir(Path baseDir) {
+            this.baseDir = baseDir;
+            return this;
+        }
+
+        /**
          * Sets the files to be written into the jar file.
          * @param files the files
          * @return this task object
--- a/test/tools/sjavac/ExclPattern.java	Fri Dec 18 09:29:13 2015 -0800
+++ b/test/tools/sjavac/ExclPattern.java	Fri Dec 18 09:56:17 2015 -0800
@@ -21,7 +21,6 @@
  * questions.
  */
 
-
 /*
  * @test
  * @bug 8037085