Merge JDK-8200758-branch
authorherrick
Mon, 02 Jul 2018 10:41:20 -0400
branchJDK-8200758-branch
changeset 56816 38837fad4a81
parent 56815 af0a32bfc8c5 (current diff)
parent 50903 0221f6a72e4b (diff)
child 56820 b763f6492df9
Merge
--- a/.hgtags	Thu Jun 28 12:44:34 2018 -0400
+++ b/.hgtags	Mon Jul 02 10:41:20 2018 -0400
@@ -493,3 +493,6 @@
 fb8b3f4672774e15654958295558a1af1b576919 jdk-11+19
 fb8b3f4672774e15654958295558a1af1b576919 jdk-11+19
 36ca515343e00b021dcfc902e986d26ec994a2e5 jdk-11+19
+c9cd3ec6a0ebaf373b6ff0071c396cc657f7c4bd jdk-12+0
+c9cd3ec6a0ebaf373b6ff0071c396cc657f7c4bd jdk-12+0
+95aad0c785e497f1bade3955c4e4a677b629fa9d jdk-12+0
--- a/make/autoconf/version-numbers	Thu Jun 28 12:44:34 2018 -0400
+++ b/make/autoconf/version-numbers	Mon Jul 02 10:41:20 2018 -0400
@@ -25,14 +25,14 @@
 
 # Default version numbers to use unless overridden by configure
 
-DEFAULT_VERSION_FEATURE=11
+DEFAULT_VERSION_FEATURE=12
 DEFAULT_VERSION_INTERIM=0
 DEFAULT_VERSION_UPDATE=0
 DEFAULT_VERSION_PATCH=0
-DEFAULT_VERSION_DATE=2018-09-25
-DEFAULT_VERSION_CLASSFILE_MAJOR=55  # "`$EXPR $DEFAULT_VERSION_FEATURE + 44`"
+DEFAULT_VERSION_DATE=2019-03-19
+DEFAULT_VERSION_CLASSFILE_MAJOR=56  # "`$EXPR $DEFAULT_VERSION_FEATURE + 44`"
 DEFAULT_VERSION_CLASSFILE_MINOR=0
-DEFAULT_ACCEPTABLE_BOOT_VERSIONS="10 11"
+DEFAULT_ACCEPTABLE_BOOT_VERSIONS="10 11 12"
 
 LAUNCHER_NAME=openjdk
 PRODUCT_NAME=OpenJDK
--- a/make/common/SetupJavaCompilers.gmk	Thu Jun 28 12:44:34 2018 -0400
+++ b/make/common/SetupJavaCompilers.gmk	Mon Jul 02 10:41:20 2018 -0400
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -72,7 +72,7 @@
 $(eval $(call SetupJavaCompiler,GENERATE_JDKBYTECODE, \
     JVM := $(JAVA_JAVAC), \
     JAVAC := $(NEW_JAVAC), \
-    FLAGS := -source 11 -target 11 --doclint-format html5 \
+    FLAGS := -source 12 -target 12 --doclint-format html5 \
         -encoding ascii -XDignore.symbol.file=true $(JAVAC_WARNINGS), \
     SERVER_DIR := $(SJAVAC_SERVER_DIR), \
     SERVER_JVM := $(SJAVAC_SERVER_JAVA)))
@@ -82,7 +82,7 @@
 $(eval $(call SetupJavaCompiler,GENERATE_JDKBYTECODE_NOWARNINGS, \
     JVM := $(JAVA_JAVAC), \
     JAVAC := $(NEW_JAVAC), \
-    FLAGS := -source 11 -target 11 \
+    FLAGS := -source 12 -target 12 \
         -encoding ascii -XDignore.symbol.file=true $(DISABLE_WARNINGS), \
     SERVER_DIR := $(SJAVAC_SERVER_DIR), \
     SERVER_JVM := $(SJAVAC_SERVER_JAVA)))
--- a/src/hotspot/share/classfile/classFileParser.cpp	Thu Jun 28 12:44:34 2018 -0400
+++ b/src/hotspot/share/classfile/classFileParser.cpp	Mon Jul 02 10:41:20 2018 -0400
@@ -117,6 +117,8 @@
 
 #define JAVA_11_VERSION                   55
 
+#define JAVA_12_VERSION                   56
+
 void ClassFileParser::set_class_bad_constant_seen(short bad_constant) {
   assert((bad_constant == 19 || bad_constant == 20) && _major_version >= JAVA_9_VERSION,
          "Unexpected bad constant pool entry");
--- a/src/java.base/share/classes/com/sun/java/util/jar/pack/Constants.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/src/java.base/share/classes/com/sun/java/util/jar/pack/Constants.java	Mon Jul 02 10:41:20 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -49,6 +49,7 @@
         1.9 to 1.9.X 53,0
         1.10 to 1.10.X 54,0
         1.11 to 1.11.X 55,0
+        1.12 to 1.12.X 56,0
     */
 
     public static final Package.Version JAVA_MIN_CLASS_VERSION =
@@ -75,6 +76,9 @@
     public static final Package.Version JAVA11_MAX_CLASS_VERSION =
             Package.Version.of(55, 00);
 
+    public static final Package.Version JAVA12_MAX_CLASS_VERSION =
+            Package.Version.of(56, 00);
+
     public static final int JAVA_PACKAGE_MAGIC = 0xCAFED00D;
 
     public static final Package.Version JAVA5_PACKAGE_VERSION =
@@ -91,7 +95,7 @@
 
     // upper limit, should point to the latest class version
     public static final Package.Version JAVA_MAX_CLASS_VERSION =
-            JAVA11_MAX_CLASS_VERSION;
+            JAVA12_MAX_CLASS_VERSION;
 
     // upper limit should point to the latest package version, for version info!.
     public static final Package.Version MAX_PACKAGE_VERSION =
--- a/src/java.base/share/classes/jdk/internal/module/ModuleInfo.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/src/java.base/share/classes/jdk/internal/module/ModuleInfo.java	Mon Jul 02 10:41:20 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2018, 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
@@ -64,7 +64,7 @@
 public final class ModuleInfo {
 
     private final int JAVA_MIN_SUPPORTED_VERSION = 53;
-    private final int JAVA_MAX_SUPPORTED_VERSION = 55;
+    private final int JAVA_MAX_SUPPORTED_VERSION = 56;
 
     private static final JavaLangModuleAccess JLMA
         = SharedSecrets.getJavaLangModuleAccess();
--- a/src/java.base/share/classes/jdk/internal/org/objectweb/asm/ClassReader.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/src/java.base/share/classes/jdk/internal/org/objectweb/asm/ClassReader.java	Mon Jul 02 10:41:20 2018 -0400
@@ -185,7 +185,7 @@
     public ClassReader(final byte[] b, final int off, final int len) {
         this.b = b;
         // checks the class version
-        if (readShort(off + 6) > Opcodes.V11) {
+        if (readShort(off + 6) > Opcodes.V12) {
             throw new IllegalArgumentException();
         }
         // parses the constant pool
--- a/src/java.base/share/classes/jdk/internal/org/objectweb/asm/Opcodes.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/src/java.base/share/classes/jdk/internal/org/objectweb/asm/Opcodes.java	Mon Jul 02 10:41:20 2018 -0400
@@ -91,6 +91,7 @@
     int V9 = 0 << 16 | 53;
     int V10 = 0 << 16 | 54;
     int V11 = 0 << 16 | 55;
+    int V12 = 0 << 16 | 56;
 
     // access flags
 
Binary file src/java.base/share/lib/security/cacerts has changed
--- a/src/java.base/windows/native/libjava/io_util_md.c	Thu Jun 28 12:44:34 2018 -0400
+++ b/src/java.base/windows/native/libjava/io_util_md.c	Mon Jul 02 10:41:20 2018 -0400
@@ -458,19 +458,20 @@
     return 0;
 }
 
-
-int
+jint
 handleSetLength(FD fd, jlong length) {
     HANDLE h = (HANDLE)fd;
-    long high = (long)(length >> 32);
-    DWORD ret;
+    FILE_END_OF_FILE_INFO eofInfo;
 
-    if (h == (HANDLE)(-1)) return -1;
-    ret = SetFilePointer(h, (long)(length), &high, FILE_BEGIN);
-    if (ret == 0xFFFFFFFF && GetLastError() != NO_ERROR) {
+    eofInfo.EndOfFile.QuadPart = length;
+
+    if (h == INVALID_HANDLE_VALUE) {
         return -1;
     }
-    if (SetEndOfFile(h) == FALSE) return -1;
+    if (!SetFileInformationByHandle(h, FileEndOfFileInfo, &eofInfo,
+            sizeof(FILE_END_OF_FILE_INFO))) {
+        return -1;
+    }
     return 0;
 }
 
--- a/src/java.base/windows/native/libjava/io_util_md.h	Thu Jun 28 12:44:34 2018 -0400
+++ b/src/java.base/windows/native/libjava/io_util_md.h	Mon Jul 02 10:41:20 2018 -0400
@@ -43,7 +43,7 @@
 int currentDirLength(const WCHAR* path, int pathlen);
 int handleAvailable(FD fd, jlong *pbytes);
 int handleSync(FD fd);
-int handleSetLength(FD fd, jlong length);
+jint handleSetLength(FD fd, jlong length);
 jlong handleGetLength(FD fd);
 JNIEXPORT jint handleRead(FD fd, void *buf, jint len);
 jint handleWrite(FD fd, const void *buf, jint len);
--- a/src/java.compiler/share/classes/javax/lang/model/SourceVersion.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/src/java.compiler/share/classes/javax/lang/model/SourceVersion.java	Mon Jul 02 10:41:20 2018 -0400
@@ -171,7 +171,15 @@
      *
      * @since 11
      */
-     RELEASE_11;
+     RELEASE_11,
+
+    /**
+     * The version recognized by the Java Platform, Standard Edition
+     * 12.
+     *
+     * @since 12
+     */
+     RELEASE_12;
 
     // Note that when adding constants for newer releases, the
     // behavior of latest() and latestSupported() must be updated too.
@@ -182,7 +190,7 @@
      * @return the latest source version that can be modeled
      */
     public static SourceVersion latest() {
-        return RELEASE_11;
+        return RELEASE_12;
     }
 
     private static final SourceVersion latestSupported = getLatestSupported();
@@ -192,6 +200,8 @@
             String specVersion = System.getProperty("java.specification.version");
 
             switch (specVersion) {
+                case "12":
+                    return RELEASE_12;
                 case "11":
                     return RELEASE_11;
                 case "10":
--- a/src/java.compiler/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor9.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/src/java.compiler/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor9.java	Mon Jul 02 10:41:20 2018 -0400
@@ -32,7 +32,7 @@
 /**
  * A skeletal visitor for annotation values with default behavior
  * appropriate for source versions {@link SourceVersion#RELEASE_9
- * RELEASE_9} through {@link SourceVersion#RELEASE_11 RELEASE_11}.
+ * RELEASE_9} through {@link SourceVersion#RELEASE_12 RELEASE_12}.
  *
  * <p> <b>WARNING:</b> The {@code AnnotationValueVisitor} interface
  * implemented by this class may have methods added to it in the
@@ -59,7 +59,7 @@
  * @see AbstractAnnotationValueVisitor8
  * @since 9
  */
-@SupportedSourceVersion(RELEASE_11)
+@SupportedSourceVersion(RELEASE_12)
 public abstract class AbstractAnnotationValueVisitor9<R, P> extends AbstractAnnotationValueVisitor8<R, P> {
 
     /**
--- a/src/java.compiler/share/classes/javax/lang/model/util/AbstractElementVisitor9.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/src/java.compiler/share/classes/javax/lang/model/util/AbstractElementVisitor9.java	Mon Jul 02 10:41:20 2018 -0400
@@ -34,7 +34,7 @@
 /**
  * A skeletal visitor of program elements with default behavior
  * appropriate for source versions {@link SourceVersion#RELEASE_9
- * RELEASE_9} through {@link SourceVersion#RELEASE_11 RELEASE_11}.
+ * RELEASE_9} through {@link SourceVersion#RELEASE_12 RELEASE_12}.
  *
  * <p> <b>WARNING:</b> The {@code ElementVisitor} interface
  * implemented by this class may have methods added to it in the
@@ -65,7 +65,7 @@
  * @since 9
  * @spec JPMS
  */
-@SupportedSourceVersion(RELEASE_11)
+@SupportedSourceVersion(RELEASE_12)
 public abstract class AbstractElementVisitor9<R, P> extends AbstractElementVisitor8<R, P> {
     /**
      * Constructor for concrete subclasses to call.
--- a/src/java.compiler/share/classes/javax/lang/model/util/AbstractTypeVisitor9.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/src/java.compiler/share/classes/javax/lang/model/util/AbstractTypeVisitor9.java	Mon Jul 02 10:41:20 2018 -0400
@@ -33,7 +33,7 @@
 /**
  * A skeletal visitor of types with default behavior appropriate for
  * source versions {@link SourceVersion#RELEASE_9 RELEASE_9} through
- * {@link SourceVersion#RELEASE_11 RELEASE_11}.
+ * {@link SourceVersion#RELEASE_12 RELEASE_12}.
  *
  * <p> <b>WARNING:</b> The {@code TypeVisitor} interface implemented
  * by this class may have methods added to it in the future to
@@ -63,7 +63,7 @@
  * @see AbstractTypeVisitor8
  * @since 9
  */
-@SupportedSourceVersion(RELEASE_11)
+@SupportedSourceVersion(RELEASE_12)
 public abstract class AbstractTypeVisitor9<R, P> extends AbstractTypeVisitor8<R, P> {
     /**
      * Constructor for concrete subclasses to call.
--- a/src/java.compiler/share/classes/javax/lang/model/util/ElementKindVisitor9.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/src/java.compiler/share/classes/javax/lang/model/util/ElementKindVisitor9.java	Mon Jul 02 10:41:20 2018 -0400
@@ -34,7 +34,7 @@
  * A visitor of program elements based on their {@linkplain
  * ElementKind kind} with default behavior appropriate for source
  * versions {@link SourceVersion#RELEASE_9 RELEASE_9} through {@link
- * SourceVersion#RELEASE_11 RELEASE_11}.
+ * SourceVersion#RELEASE_12 RELEASE_12}.
  *
  * For {@linkplain
  * Element elements} <code><i>Xyz</i></code> that may have more than one
@@ -80,7 +80,7 @@
  * @since 9
  * @spec JPMS
  */
-@SupportedSourceVersion(RELEASE_11)
+@SupportedSourceVersion(RELEASE_12)
 public class ElementKindVisitor9<R, P> extends ElementKindVisitor8<R, P> {
     /**
      * Constructor for concrete subclasses; uses {@code null} for the
--- a/src/java.compiler/share/classes/javax/lang/model/util/ElementScanner9.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/src/java.compiler/share/classes/javax/lang/model/util/ElementScanner9.java	Mon Jul 02 10:41:20 2018 -0400
@@ -34,7 +34,7 @@
 /**
  * A scanning visitor of program elements with default behavior
  * appropriate for source versions {@link SourceVersion#RELEASE_9
- * RELEASE_9} through {@link SourceVersion#RELEASE_11 RELEASE_11}.
+ * RELEASE_9} through {@link SourceVersion#RELEASE_12 RELEASE_12}.
  *
  * The <code>visit<i>Xyz</i></code> methods in this
  * class scan their component elements by calling {@code scan} on
@@ -92,7 +92,7 @@
  * @since 9
  * @spec JPMS
  */
-@SupportedSourceVersion(RELEASE_11)
+@SupportedSourceVersion(RELEASE_12)
 public class ElementScanner9<R, P> extends ElementScanner8<R, P> {
     /**
      * Constructor for concrete subclasses; uses {@code null} for the
--- a/src/java.compiler/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitor9.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/src/java.compiler/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitor9.java	Mon Jul 02 10:41:20 2018 -0400
@@ -32,7 +32,7 @@
 /**
  * A simple visitor for annotation values with default behavior
  * appropriate for source versions {@link SourceVersion#RELEASE_9
- * RELEASE_9} through {@link SourceVersion#RELEASE_11 RELEASE_11}.
+ * RELEASE_9} through {@link SourceVersion#RELEASE_12 RELEASE_12}.
  *
  * Visit methods call {@link #defaultAction
  * defaultAction} passing their arguments to {@code defaultAction}'s
@@ -68,7 +68,7 @@
  * @see SimpleAnnotationValueVisitor8
  * @since 9
  */
-@SupportedSourceVersion(RELEASE_11)
+@SupportedSourceVersion(RELEASE_12)
 public class SimpleAnnotationValueVisitor9<R, P> extends SimpleAnnotationValueVisitor8<R, P> {
     /**
      * Constructor for concrete subclasses; uses {@code null} for the
--- a/src/java.compiler/share/classes/javax/lang/model/util/SimpleElementVisitor9.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/src/java.compiler/share/classes/javax/lang/model/util/SimpleElementVisitor9.java	Mon Jul 02 10:41:20 2018 -0400
@@ -33,7 +33,7 @@
 /**
  * A simple visitor of program elements with default behavior
  * appropriate for source versions {@link SourceVersion#RELEASE_9
- * RELEASE_9} through {@link SourceVersion#RELEASE_11 RELEASE_11}.
+ * RELEASE_9} through {@link SourceVersion#RELEASE_12 RELEASE_12}.
  *
  * Visit methods corresponding to {@code RELEASE_9} and earlier
  * language constructs call {@link #defaultAction defaultAction},
@@ -73,7 +73,7 @@
  * @since 9
  * @spec JPMS
  */
-@SupportedSourceVersion(RELEASE_11)
+@SupportedSourceVersion(RELEASE_12)
 public class SimpleElementVisitor9<R, P> extends SimpleElementVisitor8<R, P> {
     /**
      * Constructor for concrete subclasses; uses {@code null} for the
--- a/src/java.compiler/share/classes/javax/lang/model/util/SimpleTypeVisitor9.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/src/java.compiler/share/classes/javax/lang/model/util/SimpleTypeVisitor9.java	Mon Jul 02 10:41:20 2018 -0400
@@ -33,7 +33,7 @@
 /**
  * A simple visitor of types with default behavior appropriate for
  * source versions {@link SourceVersion#RELEASE_9 RELEASE_9} through
- * {@link SourceVersion#RELEASE_11 RELEASE_11}.
+ * {@link SourceVersion#RELEASE_12 RELEASE_12}.
  *
  * Visit methods corresponding to {@code RELEASE_9} and earlier
  * language constructs call {@link #defaultAction defaultAction},
@@ -73,7 +73,7 @@
  * @see SimpleTypeVisitor8
  * @since 9
  */
-@SupportedSourceVersion(RELEASE_11)
+@SupportedSourceVersion(RELEASE_12)
 public class SimpleTypeVisitor9<R, P> extends SimpleTypeVisitor8<R, P> {
     /**
      * Constructor for concrete subclasses; uses {@code null} for the
--- a/src/java.compiler/share/classes/javax/lang/model/util/TypeKindVisitor9.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/src/java.compiler/share/classes/javax/lang/model/util/TypeKindVisitor9.java	Mon Jul 02 10:41:20 2018 -0400
@@ -34,7 +34,7 @@
  * A visitor of types based on their {@linkplain TypeKind kind} with
  * default behavior appropriate for source versions {@link
  * SourceVersion#RELEASE_9 RELEASE_9} through {@link
- * SourceVersion#RELEASE_11 RELEASE_11}.
+ * SourceVersion#RELEASE_12 RELEASE_12}.
  *
  * For {@linkplain
  * TypeMirror types} <code><i>Xyz</i></code> that may have more than one
@@ -77,7 +77,7 @@
  * @see TypeKindVisitor8
  * @since 9
  */
-@SupportedSourceVersion(RELEASE_11)
+@SupportedSourceVersion(RELEASE_12)
 public class TypeKindVisitor9<R, P> extends TypeKindVisitor8<R, P> {
     /**
      * Constructor for concrete subclasses to call; uses {@code null}
--- a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/jaxp/datatype/DurationImpl.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/jaxp/datatype/DurationImpl.java	Mon Jul 02 10:41:20 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
  */
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -98,6 +98,7 @@
  * @author Kohsuke Kawaguchi
  * @author Joseph Fialli
  * @see XMLGregorianCalendar#add(Duration)
+ * @LastModified: June 2018
  */
 class DurationImpl
         extends Duration
@@ -1603,9 +1604,10 @@
                     touched = true;
 
                     // compute the number of unit that needs to be borrowed.
-                    BigDecimal borrow =
-                        buf[i].abs().divide(
+                    // scale should be 0 in all cases
+                    BigDecimal borrow = buf[i].abs().divide(
                             FACTORS[i - 1],
+                            0,
                             RoundingMode.UP);
                     if (buf[i].signum() > 0) {
                         borrow = borrow.negate();
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Source.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Source.java	Mon Jul 02 10:41:20 2018 -0400
@@ -81,8 +81,11 @@
     /** 1.10 local-variable type inference (var). */
     JDK10("10"),
 
-    /** 1.11 covers the to be determined language features that will be added in JDK 11. */
-    JDK11("11");
+    /** 1.11 local-variable syntax for lambda parameters */
+    JDK11("11"),
+
+    /** 12 covers the to be determined language features that will be added in JDK 12. */
+    JDK12("12");
 
     private static final Context.Key<Source> sourceKey = new Context.Key<>();
 
@@ -129,6 +132,7 @@
     }
 
     public Target requiredTarget() {
+        if (this.compareTo(JDK12) >= 0) return Target.JDK1_12;
         if (this.compareTo(JDK11) >= 0) return Target.JDK1_11;
         if (this.compareTo(JDK10) >= 0) return Target.JDK1_10;
         if (this.compareTo(JDK9) >= 0) return Target.JDK1_9;
@@ -265,6 +269,8 @@
             return RELEASE_10;
         case JDK11:
             return RELEASE_11;
+        case JDK12:
+            return RELEASE_12;
         default:
             return null;
         }
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Types.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Types.java	Mon Jul 02 10:41:20 2018 -0400
@@ -1659,7 +1659,7 @@
         private TypeRelation isCastable = new TypeRelation() {
 
             public Boolean visitType(Type t, Type s) {
-                if (s.hasTag(ERROR))
+                if (s.hasTag(ERROR) || t.hasTag(NONE))
                     return true;
 
                 switch (t.getTag()) {
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java	Mon Jul 02 10:41:20 2018 -0400
@@ -586,8 +586,11 @@
     class RecoveryInfo extends ResultInfo {
 
         public RecoveryInfo(final DeferredAttr.DeferredAttrContext deferredAttrContext) {
-            super(KindSelector.VAL, Type.recoveryType,
-                  new Check.NestedCheckContext(chk.basicHandler) {
+            this(deferredAttrContext, Type.recoveryType);
+        }
+
+        public RecoveryInfo(final DeferredAttr.DeferredAttrContext deferredAttrContext, Type pt) {
+            super(KindSelector.VAL, pt, new Check.NestedCheckContext(chk.basicHandler) {
                 @Override
                 public DeferredAttr.DeferredAttrContext deferredAttrContext() {
                     return deferredAttrContext;
@@ -598,7 +601,9 @@
                 }
                 @Override
                 public void report(DiagnosticPosition pos, JCDiagnostic details) {
-                    chk.basicHandler.report(pos, details);
+                    if (pt == Type.recoveryType) {
+                        chk.basicHandler.report(pos, details);
+                    }
                 }
             });
         }
@@ -656,7 +661,7 @@
             }
             if (tree == breakTree &&
                     resultInfo.checkContext.deferredAttrContext().mode == AttrMode.CHECK) {
-                throw new BreakAttr(copyEnv(env));
+                breakTreeFound(copyEnv(env));
             }
             return result;
         } catch (CompletionFailure ex) {
@@ -668,6 +673,10 @@
         }
     }
 
+    protected void breakTreeFound(Env<AttrContext> env) {
+        throw new BreakAttr(env);
+    }
+
     Env<AttrContext> copyEnv(Env<AttrContext> env) {
         Env<AttrContext> newEnv =
                 env.dup(env.tree, env.info.dup(copyScope(env.info.scope)));
@@ -2506,8 +2515,7 @@
                 //lambda only allowed in assignment or method invocation/cast context
                 log.error(that.pos(), Errors.UnexpectedLambda);
             }
-            result = that.type = types.createErrorType(pt());
-            return;
+            resultInfo = recoveryInfo;
         }
         //create an environment for attribution of the lambda expression
         final Env<AttrContext> localEnv = lambdaEnv(that, env);
@@ -2595,6 +2603,10 @@
                 attribTree(that.getBody(), localEnv, bodyResultInfo);
             } else {
                 JCBlock body = (JCBlock)that.body;
+                if (body == breakTree &&
+                        resultInfo.checkContext.deferredAttrContext().mode == AttrMode.CHECK) {
+                    breakTreeFound(copyEnv(localEnv));
+                }
                 attribStats(body.stats, localEnv);
             }
 
@@ -4126,8 +4138,8 @@
                     typeargtypes,
                     noteWarner);
 
-            DeferredAttr.DeferredTypeMap checkDeferredMap =
-                deferredAttr.new DeferredTypeMap(DeferredAttr.AttrMode.CHECK, sym, env.info.pendingResolutionPhase);
+            DeferredAttr.DeferredTypeMap<Void> checkDeferredMap =
+                deferredAttr.new DeferredTypeMap<>(DeferredAttr.AttrMode.CHECK, sym, env.info.pendingResolutionPhase);
 
             argtypes = argtypes.map(checkDeferredMap);
 
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/DeferredAttr.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/DeferredAttr.java	Mon Jul 02 10:41:20 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2018, 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
@@ -28,6 +28,8 @@
 import com.sun.source.tree.LambdaExpressionTree.BodyKind;
 import com.sun.source.tree.NewClassTree;
 import com.sun.tools.javac.code.*;
+import com.sun.tools.javac.code.Type.ErrorType;
+import com.sun.tools.javac.code.Type.MethodType;
 import com.sun.tools.javac.code.Type.StructuralTypeMapping;
 import com.sun.tools.javac.code.Types.TypeMapping;
 import com.sun.tools.javac.comp.ArgumentAttr.LocalCacheContext;
@@ -59,6 +61,7 @@
 import java.util.function.Function;
 
 import com.sun.source.tree.MemberReferenceTree;
+import com.sun.tools.javac.code.Type;
 import com.sun.tools.javac.tree.JCTree.JCMemberReference.OverloadKind;
 
 import static com.sun.tools.javac.code.TypeTag.*;
@@ -1002,7 +1005,7 @@
      * where T is computed by retrieving the type that has already been
      * computed for D during a previous deferred attribution round of the given kind.
      */
-    class DeferredTypeMap extends StructuralTypeMapping<Void> {
+    class DeferredTypeMap<T> extends StructuralTypeMapping<T> {
         DeferredAttrContext deferredAttrContext;
 
         protected DeferredTypeMap(AttrMode mode, Symbol msym, MethodResolutionPhase phase) {
@@ -1011,16 +1014,16 @@
         }
 
         @Override
-        public Type visitType(Type t, Void _unused) {
+        public Type visitType(Type t, T p) {
             if (!t.hasTag(DEFERRED)) {
-                return super.visitType(t, null);
+                return super.visitType(t, p);
             } else {
                 DeferredType dt = (DeferredType)t;
-                return typeOf(dt);
+                return typeOf(dt, p);
             }
         }
 
-        protected Type typeOf(DeferredType dt) {
+        protected Type typeOf(DeferredType dt, T p) {
             switch (deferredAttrContext.mode) {
                 case CHECK:
                     return dt.tree.type == null ? Type.noType : dt.tree.type;
@@ -1039,17 +1042,35 @@
      * attribution round (as before), or (ii) by synthesizing a new type R for D
      * (the latter step is useful in a recovery scenario).
      */
-    public class RecoveryDeferredTypeMap extends DeferredTypeMap {
+    public class RecoveryDeferredTypeMap extends DeferredTypeMap<Type> {
 
         public RecoveryDeferredTypeMap(AttrMode mode, Symbol msym, MethodResolutionPhase phase) {
             super(mode, msym, phase != null ? phase : MethodResolutionPhase.BOX);
         }
 
         @Override
-        protected Type typeOf(DeferredType dt) {
-            Type owntype = super.typeOf(dt);
+        protected Type typeOf(DeferredType dt, Type pt) {
+            Type owntype = super.typeOf(dt, pt);
             return owntype == Type.noType ?
-                        recover(dt) : owntype;
+                        recover(dt, pt) : owntype;
+        }
+
+        @Override
+        public Type visitMethodType(Type.MethodType t, Type pt) {
+            if (t.hasTag(METHOD) && deferredAttrContext.mode == AttrMode.CHECK) {
+                Type mtype = deferredAttrContext.msym.type;
+                mtype = mtype.hasTag(ERROR) ? ((ErrorType)mtype).getOriginalType() : null;
+                if (mtype != null && mtype.hasTag(METHOD)) {
+                    List<Type> argtypes1 = map(t.getParameterTypes(), mtype.getParameterTypes());
+                    Type restype1 = visit(t.getReturnType(), mtype.getReturnType());
+                    List<Type> thrown1 = map(t.getThrownTypes(), mtype.getThrownTypes());
+                    if (argtypes1 == t.getParameterTypes() &&
+                        restype1 == t.getReturnType() &&
+                        thrown1 == t.getThrownTypes()) return t;
+                    else return new MethodType(argtypes1, restype1, thrown1, t.tsym);
+                }
+            }
+            return super.visitMethodType(t, pt);
         }
 
         /**
@@ -1059,8 +1080,8 @@
          * representation. Remaining deferred types are attributed using
          * a default expected type (j.l.Object).
          */
-        private Type recover(DeferredType dt) {
-            dt.check(attr.new RecoveryInfo(deferredAttrContext) {
+        private Type recover(DeferredType dt, Type pt) {
+            dt.check(attr.new RecoveryInfo(deferredAttrContext, pt != null ? pt : Type.recoveryType) {
                 @Override
                 protected Type check(DiagnosticPosition pos, Type found) {
                     return chk.checkNonVoid(pos, super.check(pos, found));
@@ -1068,6 +1089,16 @@
             });
             return super.visit(dt);
         }
+
+        private List<Type> map(List<Type> ts, List<Type> pts) {
+            if (ts.nonEmpty()) {
+                List<Type> tail1 = map(ts.tail, pts != null ? pts.tail : null);
+                Type t = visit(ts.head, pts != null && pts.nonEmpty() ? pts.head : null);
+                if (tail1 != ts.tail || t != ts.head)
+                    return tail1.prepend(t);
+            }
+            return ts;
+        }
     }
 
     /**
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Infer.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Infer.java	Mon Jul 02 10:41:20 2018 -0400
@@ -602,7 +602,7 @@
         return mtype;
     }
     //where
-        class ImplicitArgType extends DeferredAttr.DeferredTypeMap {
+        class ImplicitArgType extends DeferredAttr.DeferredTypeMap<Void> {
 
             public ImplicitArgType(Symbol msym, Resolve.MethodResolutionPhase phase) {
                 (rs.deferredAttr).super(AttrMode.SPECULATIVE, msym, phase);
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Operators.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Operators.java	Mon Jul 02 10:41:20 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2018, 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
@@ -210,7 +210,7 @@
      * Report an operator lookup error.
      */
     private OperatorSymbol reportErrorIfNeeded(DiagnosticPosition pos, Tag tag, Type... args) {
-        if (Stream.of(args).noneMatch(Type::isErroneous)) {
+        if (Stream.of(args).noneMatch(t -> t.isErroneous() || t.hasTag(TypeTag.NONE))) {
             Name opName = operatorName(tag);
             JCDiagnostic.Error opError = (args.length) == 1 ?
                     Errors.OperatorCantBeApplied(opName, args[0]) :
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Resolve.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Resolve.java	Mon Jul 02 10:41:20 2018 -0400
@@ -2560,8 +2560,8 @@
         }
 
         @Override
-        protected Type typeOf(DeferredType dt) {
-            Type res = super.typeOf(dt);
+        protected Type typeOf(DeferredType dt, Type pt) {
+            Type res = super.typeOf(dt, pt);
             if (!res.isErroneous()) {
                 switch (TreeInfo.skipParens(dt.tree).getTag()) {
                     case LAMBDA:
@@ -3992,7 +3992,12 @@
 
         @Override
         public Symbol access(Name name, TypeSymbol location) {
-            return types.createErrorType(name, location, syms.errSymbol.type).tsym;
+            Symbol sym = bestCandidate();
+            return types.createErrorType(name, location, sym != null ? sym.type : syms.errSymbol.type).tsym;
+        }
+
+        protected Symbol bestCandidate() {
+            return errCandidate().fst;
         }
 
         protected Pair<Symbol, JCDiagnostic> errCandidate() {
@@ -4123,6 +4128,16 @@
                 //conform to source order
                 return details;
             }
+
+        @Override
+        protected Symbol bestCandidate() {
+            Map<Symbol, JCDiagnostic> candidatesMap = mapCandidates();
+            Map<Symbol, JCDiagnostic> filteredCandidates = filterCandidates(candidatesMap);
+            if (filteredCandidates.size() == 1) {
+                return filteredCandidates.keySet().iterator().next();
+            }
+            return null;
+        }
     }
 
     /**
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassFile.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassFile.java	Mon Jul 02 10:41:20 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2018, 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
@@ -115,7 +115,8 @@
         V52(52, 0),   // JDK 1.8: lambda, type annos, param names
         V53(53, 0),   // JDK 1.9: modules, indy string concat
         V54(54, 0),   // JDK 10
-        V55(55, 0);   // JDK 11: constant dynamic
+        V55(55, 0),   // JDK 11: constant dynamic, nest mates
+        V56(56, 0);   // JDK 12
         Version(int major, int minor) {
             this.major = major;
             this.minor = minor;
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Profile.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Profile.java	Mon Jul 02 10:41:20 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2018, 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
@@ -40,9 +40,9 @@
  *  deletion without notice.</b>
  */
 public enum Profile {
-    COMPACT1("compact1", 1, Target.JDK1_8, Target.JDK1_9, Target.JDK1_10, Target.JDK1_11),
-    COMPACT2("compact2", 2, Target.JDK1_8, Target.JDK1_9, Target.JDK1_10, Target.JDK1_11),
-    COMPACT3("compact3", 3, Target.JDK1_8, Target.JDK1_9, Target.JDK1_10, Target.JDK1_11),
+    COMPACT1("compact1", 1, Target.JDK1_8, Target.JDK1_9, Target.JDK1_10, Target.JDK1_11, Target.JDK1_12),
+    COMPACT2("compact2", 2, Target.JDK1_8, Target.JDK1_9, Target.JDK1_10, Target.JDK1_11, Target.JDK1_12),
+    COMPACT3("compact3", 3, Target.JDK1_8, Target.JDK1_9, Target.JDK1_10, Target.JDK1_11, Target.JDK1_12),
 
     DEFAULT {
         @Override
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Target.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Target.java	Mon Jul 02 10:41:20 2018 -0400
@@ -67,7 +67,10 @@
     JDK1_10("1.10", 54, 0),
 
     /** JDK 11. */
-    JDK1_11("11", 55, 0);
+    JDK1_11("11", 55, 0),
+
+    /** JDK 12. */
+    JDK1_12("12", 56, 0);
 
     private static final Context.Key<Target> targetKey = new Context.Key<>();
 
@@ -99,6 +102,7 @@
         tab.put("9", JDK1_9);
         tab.put("10", JDK1_10);
         tab.put("11", JDK1_11);
+        tab.put("12", JDK1_12);
     }
 
     public final String name;
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavaTokenizer.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavaTokenizer.java	Mon Jul 02 10:41:20 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2018, 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
@@ -674,7 +674,7 @@
                             scanNumber(pos, 10);
                         } else if (reader.bp == reader.buflen || reader.ch == EOI && reader.bp + 1 == reader.buflen) { // JLS 3.5
                             tk = TokenKind.EOF;
-                            pos = reader.buflen;
+                            pos = reader.realLength;
                         } else {
                             String arg;
 
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java	Mon Jul 02 10:41:20 2018 -0400
@@ -1516,6 +1516,7 @@
     ParensResult analyzeParens() {
         int depth = 0;
         boolean type = false;
+        ParensResult defaultResult = ParensResult.PARENS;
         outer: for (int lookahead = 0 ; ; lookahead++) {
             TokenKind tk = S.token(lookahead).kind;
             switch (tk) {
@@ -1568,7 +1569,7 @@
                         case LONG: case FLOAT: case DOUBLE: case BOOLEAN: case VOID:
                             return ParensResult.CAST;
                         default:
-                            return ParensResult.PARENS;
+                            return defaultResult;
                     }
                 case UNDERSCORE:
                 case ASSERT:
@@ -1580,6 +1581,8 @@
                     } else if (peekToken(lookahead, RPAREN, ARROW)) {
                         // Identifier, ')' '->' -> implicit lambda
                         return ParensResult.IMPLICIT_LAMBDA;
+                    } else if (depth == 0 && peekToken(lookahead, COMMA)) {
+                        defaultResult = ParensResult.IMPLICIT_LAMBDA;
                     }
                     type = false;
                     break;
@@ -1665,7 +1668,7 @@
                     break;
                 default:
                     //this includes EOF
-                    return ParensResult.PARENS;
+                    return defaultResult;
             }
         }
     }
@@ -3753,10 +3756,16 @@
                         return defs;
                     } else {
                         pos = token.pos;
-                        List<JCTree> err = isVoid
-                            ? List.of(toP(F.at(pos).MethodDef(mods, name, type, typarams,
-                                List.nil(), List.nil(), null, null)))
-                            : null;
+                        List<JCTree> err;
+                        if (isVoid || typarams.nonEmpty()) {
+                            JCMethodDecl m =
+                                    toP(F.at(pos).MethodDef(mods, name, type, typarams,
+                                                            List.nil(), List.nil(), null, null));
+                            attach(m, dc);
+                            err = List.of(m);
+                        } else {
+                            err = List.nil();
+                        }
                         return List.of(syntaxError(token.pos, err, Errors.Expected(LPAREN)));
                     }
                 }
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/parser/UnicodeReader.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/parser/UnicodeReader.java	Mon Jul 02 10:41:20 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -70,6 +70,7 @@
     /** A character buffer for saved chars.
      */
     protected char[] sbuf = new char[128];
+    protected int realLength;
     protected int sp;
 
     /**
@@ -89,6 +90,7 @@
     protected UnicodeReader(ScannerFactory sf, char[] input, int inputLength) {
         log = sf.log;
         names = sf.names;
+        realLength = inputLength;
         if (inputLength == input.length) {
             if (input.length > 0 && Character.isWhitespace(input[input.length - 1])) {
                 inputLength--;
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/processing/PrintingProcessor.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/processing/PrintingProcessor.java	Mon Jul 02 10:41:20 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2018, 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
@@ -55,7 +55,7 @@
  * deletion without notice.</b>
  */
 @SupportedAnnotationTypes("*")
-@SupportedSourceVersion(SourceVersion.RELEASE_11)
+@SupportedSourceVersion(SourceVersion.RELEASE_12)
 public class PrintingProcessor extends AbstractProcessor {
     PrintWriter writer;
 
--- a/src/jdk.internal.vm.compiler/share/classes/module-info.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/src/jdk.internal.vm.compiler/share/classes/module-info.java	Mon Jul 02 10:41:20 2018 -0400
@@ -32,6 +32,7 @@
 
     uses org.graalvm.compiler.code.DisassemblerProvider;
     uses org.graalvm.compiler.core.match.MatchStatementSet;
+    uses org.graalvm.compiler.debug.DebugHandlersFactory;
     uses org.graalvm.compiler.debug.TTYStreamProvider;
     uses org.graalvm.compiler.hotspot.CompilerConfigurationFactory;
     uses org.graalvm.compiler.hotspot.HotSpotBackendFactory;
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/CheckGraalIntrinsics.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/CheckGraalIntrinsics.java	Mon Jul 02 10:41:20 2018 -0400
@@ -371,6 +371,7 @@
         if (isJDK11OrHigher()) {
             // Relevant for Java flight recorder
             add(toBeInvestigated,
+                            "java/util/Base64$Encoder.encodeBlock([BII[BIZ)V",
                             "jdk/jfr/internal/JVM.getEventWriter()Ljava/lang/Object;");
         }
 
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/classfile/Classfile.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/classfile/Classfile.java	Mon Jul 02 10:41:20 2018 -0400
@@ -49,7 +49,7 @@
     private final List<ClassfileBytecode> codeAttributes;
 
     private static final int MAJOR_VERSION_JAVA_MIN = 51; // JDK7
-    private static final int MAJOR_VERSION_JAVA_MAX = 55; // JDK11
+    private static final int MAJOR_VERSION_JAVA_MAX = 56; // JDK12
     private static final int MAGIC = 0xCAFEBABE;
 
     /**
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AllClassesFrameWriter.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AllClassesFrameWriter.java	Mon Jul 02 10:41:20 2018 -0400
@@ -85,16 +85,13 @@
      * "allclasses-frame.html" file. Generate the file in the current or the
      * destination directory.
      *
-     * @param indexBuilder IndexBuilder object for all classes index.
+     * @param configuration the configuration for this javadoc run
      * @throws DocFileIOException
      */
     public static void generate(HtmlConfiguration configuration,
             IndexBuilder indexBuilder) throws DocFileIOException {
         if (configuration.frames) {
             generate(configuration, indexBuilder, DocPaths.ALLCLASSES_FRAME, true);
-            generate(configuration, indexBuilder, DocPaths.ALLCLASSES_NOFRAME, false);
-        } else {
-            generate(configuration, indexBuilder, DocPaths.ALLCLASSES, false);
         }
     }
 
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HelpWriter.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HelpWriter.java	Mon Jul 02 10:41:20 2018 -0400
@@ -375,23 +375,6 @@
             ul.addContent(htmlTree);
         }
 
-        // All Classes
-        Content allclassesHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
-                contents.allClassesLabel);
-        htmlTree = (configuration.allowTag(HtmlTag.SECTION))
-                ? HtmlTree.SECTION(allclassesHead)
-                : HtmlTree.LI(HtmlStyle.blockList, allclassesHead);
-        Content allClassesBody = contents.getContent("doclet.help.all_classes.body",
-                links.createLink(DocPaths.AllClasses(configuration.frames),
-                resources.getText("doclet.All_Classes")));
-        Content allclassesPara = HtmlTree.P(allClassesBody);
-        htmlTree.addContent(allclassesPara);
-        if (configuration.allowTag(HtmlTag.SECTION)) {
-            ul.addContent(HtmlTree.LI(HtmlStyle.blockList, htmlTree));
-        } else {
-            ul.addContent(htmlTree);
-        }
-
         // Serialized Form
         Content sHead = HtmlTree.HEADING(HtmlConstants.CONTENT_HEADING,
                 contents.serializedForm);
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/Navigation.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/Navigation.java	Mon Jul 02 10:41:20 2018 -0400
@@ -106,23 +106,17 @@
     }
 
     enum Position {
-        BOTTOM("allclasses_navbar_bottom", HtmlConstants.START_OF_BOTTOM_NAVBAR, HtmlConstants.END_OF_BOTTOM_NAVBAR),
-        TOP("allclasses_navbar_top", HtmlConstants.START_OF_TOP_NAVBAR, HtmlConstants.END_OF_TOP_NAVBAR);
+        BOTTOM(HtmlConstants.START_OF_BOTTOM_NAVBAR, HtmlConstants.END_OF_BOTTOM_NAVBAR),
+        TOP(HtmlConstants.START_OF_TOP_NAVBAR, HtmlConstants.END_OF_TOP_NAVBAR);
 
-        final String allClassesLinkId;
         final Content startOfNav;
         final Content endOfNav;
 
-        Position(String allClassesLinkId, Content startOfNav, Content endOfNav) {
-            this.allClassesLinkId = allClassesLinkId;
+        Position(Content startOfNav, Content endOfNav) {
             this.startOfNav = startOfNav;
             this.endOfNav = endOfNav;
         }
 
-        String allClassesLinkId() {
-            return allClassesLinkId;
-        }
-
         Content startOfNav() {
             return startOfNav;
         }
@@ -130,20 +124,6 @@
         Content endOfNav() {
             return endOfNav;
         }
-
-        Script allClassesLinkScript() {
-            return new Script("<!--\n"
-                    + "  allClassesLink = document.getElementById(")
-                    .appendStringLiteral(allClassesLinkId)
-                    .append(");\n"
-                            + "  if(window==top) {\n"
-                            + "    allClassesLink.style.display = \"block\";\n"
-                            + "  }\n"
-                            + "  else {\n"
-                            + "    allClassesLink.style.display = \"none\";\n"
-                            + "  }\n"
-                            + "  //-->\n");
-        }
     }
 
     /**
@@ -971,13 +951,6 @@
         tree.addContent(HtmlTree.LI(noFramesContent));
     }
 
-    private void addNavLinkClassIndex(Content tree) {
-        Content allClassesContent = links.createLink(pathToRoot.resolve(
-                DocPaths.AllClasses(configuration.frames)),
-                contents.allClassesLabel, "", "");
-        tree.addContent(HtmlTree.LI(allClassesContent));
-    }
-
     private void addSearch(Content tree) {
         String searchValueId = "search";
         String reset = "reset";
@@ -990,16 +963,6 @@
         tree.addContent(ulSearch);
     }
 
-    private void addAllClassesLinkScript(Content tree, boolean top) {
-        Content div = HtmlTree.DIV(top
-                ? Position.TOP.allClassesLinkScript().asContent()
-                : Position.BOTTOM.allClassesLinkScript().asContent());
-        Content div_noscript = HtmlTree.DIV(contents.noScriptMessage);
-        Content noScript = HtmlTree.NOSCRIPT(div_noscript);
-        div.addContent(noScript);
-        tree.addContent(div);
-    }
-
     private void addFixedNavScript(Content tree) {
         tree.addContent(FIXED_NAV_SCRIPT.asContent());
     }
@@ -1046,26 +1009,6 @@
             }
             HtmlTree subDiv = new HtmlTree(HtmlTag.DIV);
             subDiv.setStyle(HtmlStyle.subNav);
-            HtmlTree ulFrames = new HtmlTree(HtmlTag.UL);
-            ulFrames.setStyle(HtmlStyle.navList);
-            if (!configuration.nonavbar) {
-                if (configuration.frames) {
-                    addNavShowLists(ulFrames);
-                    addNavHideLists(ulFrames);
-                }
-            }
-            subDiv.addContent(ulFrames);
-            HtmlTree ulAllClasses = new HtmlTree(HtmlTag.UL);
-            ulAllClasses.setStyle(HtmlStyle.navList);
-            ulAllClasses.addAttr(HtmlAttr.ID, top
-                    ? Position.TOP.allClassesLinkId()
-                    : Position.BOTTOM.allClassesLinkId());
-            addNavLinkClassIndex(ulAllClasses);
-            subDiv.addContent(ulAllClasses);
-            if (top && configuration.createindex) {
-                addSearch(subDiv);
-            }
-            addAllClassesLinkScript(subDiv, top);
             HtmlTree div = new HtmlTree(HtmlTag.DIV);
             // Add the summary links if present.
             HtmlTree ulNavSummary = new HtmlTree(HtmlTag.UL);
@@ -1077,10 +1020,22 @@
             ulNavDetail.setStyle(HtmlStyle.subNavList);
             addDetailLinks(ulNavDetail);
             div.addContent(ulNavDetail);
+            HtmlTree ulFrames = new HtmlTree(HtmlTag.UL);
+            ulFrames.setStyle(HtmlStyle.navList);
+            if (!configuration.nonavbar) {
+                if (configuration.frames) {
+                    addNavShowLists(ulFrames);
+                    addNavHideLists(ulFrames);
+                }
+            }
+            div.addContent(ulFrames);
             subDiv.addContent(div);
-            subDiv.addContent(queue.poll());
+            if (top && configuration.createindex) {
+                addSearch(subDiv);
+            }
             if (top) {
                 fixedNavDiv.addContent(subDiv);
+                fixedNavDiv.addContent(queue.poll());
                 fixedNavDiv.addContent(Position.TOP.endOfNav());
                 tree.addContent(fixedNavDiv);
                 HtmlTree paddingDiv = HtmlTree.DIV(HtmlStyle.navPadding, Contents.SPACE);
@@ -1088,6 +1043,7 @@
                 addFixedNavScript(tree);
             } else {
                 tree.addContent(subDiv);
+                tree.addContent(queue.poll());
                 tree.addContent(Position.BOTTOM.endOfNav());
             }
             return tree;
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/standard.properties	Thu Jun 28 12:44:34 2018 -0400
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/standard.properties	Mon Jul 02 10:41:20 2018 -0400
@@ -168,8 +168,6 @@
     Frames/No Frames
 doclet.help.frames.body=\
     These links show and hide the HTML frames.  All pages are available with or without frames.
-doclet.help.all_classes.body=\
-    The {0} link shows all classes and interfaces except non-static nested types.
 doclet.help.serial_form.body=\
     Each serializable or externalizable class has a description of its serialization fields and \
     methods. This information is of interest to re-implementors, not to developers using the API. \
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/stylesheet.css	Thu Jun 28 12:44:34 2018 -0400
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/stylesheet.css	Mon Jul 02 10:41:20 2018 -0400
@@ -191,6 +191,9 @@
     padding:0 0 5px 6px;
     text-transform:uppercase;
 }
+.subNav .navList {
+    padding-top:5px;
+}
 ul.navList, ul.subNavList {
     float:left;
     margin:0 25px 0 0;
@@ -220,6 +223,7 @@
 ul.subNavList li {
     list-style:none;
     float:left;
+    padding-top:10px;
 }
 .topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited {
     color:#FFFFFF;
@@ -784,6 +788,7 @@
     padding-left:20px;
     position:relative;
     right:-18px;
+    width:400px;
 }
 #reset {
     background-color: rgb(255,255,255);
--- a/src/jdk.jdeps/share/classes/com/sun/tools/jdeprscan/Main.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/src/jdk.jdeps/share/classes/com/sun/tools/jdeprscan/Main.java	Mon Jul 02 10:41:20 2018 -0400
@@ -106,7 +106,7 @@
     // Keep these updated manually until there's a compiler API
     // that allows querying of supported releases.
     final Set<String> releasesWithoutForRemoval = Set.of("6", "7", "8");
-    final Set<String> releasesWithForRemoval = Set.of("9", "10", "11");
+    final Set<String> releasesWithForRemoval = Set.of("9", "10", "11", "12");
 
     final Set<String> validReleases;
     {
@@ -496,7 +496,7 @@
         String dir = null;
         String jar = null;
         String jdkHome = null;
-        String release = "11";
+        String release = Integer.toString(Runtime.version().feature());
         List<String> loadClasses = new ArrayList<>();
         String csvFile = null;
 
--- a/src/jdk.rmic/share/classes/sun/tools/java/RuntimeConstants.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/src/jdk.rmic/share/classes/sun/tools/java/RuntimeConstants.java	Mon Jul 02 10:41:20 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -67,7 +67,7 @@
     /* Class File Constants */
     int JAVA_MAGIC                   = 0xcafebabe;
     int JAVA_MIN_SUPPORTED_VERSION   = 45;
-    int JAVA_MAX_SUPPORTED_VERSION   = 55;
+    int JAVA_MAX_SUPPORTED_VERSION   = 56;
     int JAVA_MAX_SUPPORTED_MINOR_VERSION = 0;
 
     /* Generate class file version for 1.1  by default */
--- a/test/hotspot/gtest/jfr/test_networkUtilization.cpp	Thu Jun 28 12:44:34 2018 -0400
+++ b/test/hotspot/gtest/jfr/test_networkUtilization.cpp	Mon Jul 02 10:41:20 2018 -0400
@@ -61,8 +61,8 @@
     }
   };
 
-  typedef TimeInstant<CounterRepresentation, MockFastUnorderedElapsedCounterSource> JfrTicks;
-  typedef TimeInterval<CounterRepresentation, MockFastUnorderedElapsedCounterSource> JfrTickspan;
+  typedef TimeInstant<CounterRepresentation, MockFastUnorderedElapsedCounterSource> MockJfrTicks;
+  typedef TimeInterval<CounterRepresentation, MockFastUnorderedElapsedCounterSource> MockJfrTickspan;
 
   class MockJfrCheckpointWriter {
   public:
@@ -128,9 +128,9 @@
       committed.push_back(*this);
     }
 
-    void set_starttime(const JfrTicks& time) {}
+    void set_starttime(const MockJfrTicks& time) {}
 
-    void set_endtime(const JfrTicks& time) {}
+    void set_endtime(const MockJfrTicks& time) {}
 
     static const MockEventNetworkUtilization& get_committed(const std::string& name) {
       static MockEventNetworkUtilization placeholder;
@@ -216,6 +216,8 @@
 #define JfrOSInterface MockJfrOSInterface
 #define JfrSerializer MockJfrSerializer
 #define JfrCheckpointWriter MockJfrCheckpointWriter
+#define JfrTicks MockJfrTicks
+#define JfrTickspan MockJfrTickspan
 
 #include "jfr/periodic/jfrNetworkUtilization.hpp"
 #include "jfr/periodic/jfrNetworkUtilization.cpp"
@@ -225,6 +227,8 @@
 #undef JfrOSInterface
 #undef JfrSerializer
 #undef JfrCheckpointWriter
+#undef JfrTicks
+#undef JfrTickspan
 
 } // anonymous namespace
 
--- a/test/hotspot/jtreg/ProblemList-graal.txt	Thu Jun 28 12:44:34 2018 -0400
+++ b/test/hotspot/jtreg/ProblemList-graal.txt	Mon Jul 02 10:41:20 2018 -0400
@@ -121,10 +121,6 @@
 vmTestbase/nsk/jdi/ArrayType/newInstance/newinstance001/TestDescription.java                              8203174   generic-all
 vmTestbase/nsk/jdi/ArrayType/newInstance/newinstance002/TestDescription.java                              8203174   generic-all
 vmTestbase/nsk/jdi/ArrayType/newInstance/newinstance003/TestDescription.java                              8203174   generic-all
-vmTestbase/nsk/jdi/EventRequestManager/methodExitRequests/methexitreq002/TestDescription.java             8203174   generic-all
-vmTestbase/nsk/jdi/MonitorContendedEnteredRequest/MonitorContendedEnteredRequest001/TestDescription.java  8203174   generic-all
-vmTestbase/nsk/jdi/MonitorContendedEnteredRequest/MonitorContendedEnteredRequest002/TestDescription.java  8203174   generic-all
-vmTestbase/nsk/jdi/MonitorWaitedRequest/addClassExclusionFilter/TestDescription.java                      8203174   generic-all
 vmTestbase/nsk/jdi/ObjectReference/referringObjects/referringObjects001/referringObjects001.java          8203174   generic-all
 vmTestbase/nsk/jdi/ReferenceType/instances/instances002/instances002.java                                 8203174   generic-all
 vmTestbase/nsk/jdi/ReferenceType/instances/instances003/instances003.java                                 8203174   generic-all
--- a/test/hotspot/jtreg/runtime/CommandLine/VMDeprecatedOptions.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/test/hotspot/jtreg/runtime/CommandLine/VMDeprecatedOptions.java	Mon Jul 02 10:41:20 2018 -0400
@@ -46,13 +46,6 @@
         {"InitialRAMFraction",        "64"},
         {"AssumeMP",                  "false"},
         {"UseMembar",                 "true"},
-        {"CompilerThreadHintNoPreempt", "true"},
-        {"VMThreadHintNoPreempt",       "false"},
-        {"PrintSafepointStatistics",    "false"},
-        {"PrintSafepointStatisticsCount", "3"},
-        {"PrintSafepointStatisticsTimeout", "3"},
-        {"AggressiveOpts", "true"},
-        {"AllowNonVirtualCalls", "true"},
 
         // deprecated alias flags (see also aliased_jvm_flags):
         {"DefaultMaxRAMFraction", "4"},
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/runtime/classFileParserBug/Class56.jasm	Mon Jul 02 10:41:20 2018 -0400
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2018, 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 8206022
+ * @summary Check that the JVM accepts class files with version 56
+ * @run main Class56
+ */
+
+super public class Class56 version 56:0 {
+
+    public Method "<init>":"()V" stack 1 locals 1 {
+        aload_0;
+        invokespecial    Method java/lang/Object."<init>":"()V";
+        return;
+    }
+
+    public static Method main:"([Ljava/lang/String;)V" stack 0 locals 1 {
+        return;
+    }
+
+} // end Class Class56
--- a/test/hotspot/jtreg/vmTestbase/nsk/jdb/exclude/exclude001/exclude001.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/test/hotspot/jtreg/vmTestbase/nsk/jdb/exclude/exclude001/exclude001.java	Mon Jul 02 10:41:20 2018 -0400
@@ -61,9 +61,9 @@
  * @run driver jdk.test.lib.FileInstaller . .
  * @build nsk.jdb.exclude.exclude001.exclude001
  *        nsk.jdb.exclude.exclude001.exclude001a
- * @run main/othervm PropertyResolvingWrapper nsk.jdb.exclude.exclude001.exclude001
+ * @run main/othervm/timeout=420 PropertyResolvingWrapper nsk.jdb.exclude.exclude001.exclude001
  *      -arch=${os.family}-${os.simpleArch}
- *      -waittime=5
+ *      -waittime=7
  *      -debugee.vmkind=java
  *      -transport.address=dynamic
  *      -jdb=${test.jdk}/bin/jdb
--- a/test/hotspot/jtreg/vmTestbase/nsk/share/jdi/EventTestTemplates.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/test/hotspot/jtreg/vmTestbase/nsk/share/jdi/EventTestTemplates.java	Mon Jul 02 10:41:20 2018 -0400
@@ -139,7 +139,7 @@
 
         // can't control events from system libraries, so save events only from nsk packages
         protected boolean shouldSaveEvent(Event event) {
-            return isEventFromNSK(event);
+            return isEventFromNSK(event, debuggee);
         }
 
         protected String debuggeeClassName() {
@@ -415,7 +415,7 @@
 
         // can't control events from system libraries, so save events only from nsk packages
         protected boolean shouldSaveEvent(Event event) {
-            return isEventFromNSK(event);
+            return isEventFromNSK(event, debuggee);
         }
 
         protected String debuggeeClassName() {
@@ -436,20 +436,25 @@
         }
     }
 
-    static public boolean isEventFromNSK(Event event) {
-        if (event instanceof MonitorContendedEnterEvent) {
-            return ((MonitorContendedEnterEvent) event).location() != null && ((MonitorContendedEnterEvent) event).monitor().type().name().startsWith("nsk.");
-        }
-        if (event instanceof MonitorContendedEnteredEvent) {
-            return ((MonitorContendedEnteredEvent) event).location() != null  && ((MonitorContendedEnteredEvent) event).monitor().type().name().startsWith("nsk.");
+    static public boolean isEventFromNSK(Event event, Debugee debuggee) {
+        try {
+            if (event instanceof MonitorContendedEnterEvent) {
+                return ((MonitorContendedEnterEvent) event).location() != null && ((MonitorContendedEnterEvent) event).monitor().type().name().startsWith("nsk.");
+            }
+            if (event instanceof MonitorContendedEnteredEvent) {
+                return ((MonitorContendedEnteredEvent) event).location() != null && ((MonitorContendedEnteredEvent) event).monitor().type().name().startsWith("nsk.");
+            }
+            if (event instanceof MonitorWaitEvent) {
+                return ((MonitorWaitEvent) event).monitor().type().name().startsWith("nsk.");
+            }
+            if (event instanceof MonitorWaitedEvent) {
+                return ((MonitorWaitedEvent) event).monitor().type().name().startsWith("nsk.");
+            }
+        } catch (ObjectCollectedException ex) {
+            // The monitor object the event refers to might be already collected. Ignore this exception.
+            debuggee.getLog().display("Exception caught:" + ex);
+            return false;
         }
-        if (event instanceof MonitorWaitEvent) {
-            return ((MonitorWaitEvent) event).monitor().type().name().startsWith("nsk.");
-        }
-        if (event instanceof MonitorWaitedEvent) {
-            return ((MonitorWaitedEvent) event).monitor().type().name().startsWith("nsk.");
-        }
-
         // don't filter other events
         return true;
     }
--- a/test/jaxp/javax/xml/jaxp/unittest/datatype/DurationTest.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/test/jaxp/javax/xml/jaxp/unittest/datatype/DurationTest.java	Mon Jul 02 10:41:20 2018 -0400
@@ -39,11 +39,13 @@
 import org.testng.Assert;
 import org.testng.AssertJUnit;
 import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.DataProvider;
 import org.testng.annotations.Listeners;
 import org.testng.annotations.Test;
 
 /*
  * @test
+ * @bug 8190835
  * @library /javax/xml/jaxp/libs /javax/xml/jaxp/unittest
  * @run testng/othervm -DrunSecMngr=true datatype.DurationTest
  * @run testng/othervm datatype.DurationTest
@@ -66,6 +68,61 @@
         }
     }
 
+    /*
+       DataProvider: for testDurationSubtract1
+       Data: minuend, subtrahend, expected result
+     */
+    @DataProvider(name = "DurationSubtract1")
+    public Object[][] getSubtract1() {
+
+        return new Object[][]{
+            {"P2Y2M", "P1Y5M", "P9M"},
+            {"P2DT2H", "P1DT12H", "PT14H"},
+            {"P2DT2H10M", "P1DT2H25M", "PT23H45M"},
+            {"PT2H10M", "PT1H25M", "PT45M"},
+            {"PT2H10M20S", "PT1H25M35S", "PT44M45S"},
+            {"PT2H10M20.25S", "PT1H25M35.45S", "PT44M44.8S"},
+            // 8190835 test case
+            {"PT2M3.123S", "PT1M10.123S", "PT53S"}
+        };
+    }
+
+    @DataProvider(name = "DurationSubtract2")
+    public Object[][] getSubtract2() {
+
+        return new Object[][]{
+            {"P2Y20D", "P1Y125D"},
+            {"P2M20D", "P1M25D"}
+        };
+    }
+
+    /*
+     * Verifies valid substraction operations.
+     */
+    @Test(dataProvider = "DurationSubtract1")
+    public void testDurationSubtract1(String t1, String t2, String e) throws Exception {
+        DatatypeFactory factory = DatatypeFactory.newInstance();
+        Duration dt1 = factory.newDuration(t1);
+        Duration dt2 = factory.newDuration(t2);
+
+        Duration result = dt1.subtract(dt2);
+        Duration expected = factory.newDuration(e);
+        Assert.assertTrue(result.equals(expected), "The result should be " + e);
+
+    }
+
+    /*
+     * Verifies invalid substraction operations. These operations are invalid
+     * since days in a month are indeterminate.
+    */
+    @Test(dataProvider = "DurationSubtract2", expectedExceptions = IllegalStateException.class)
+    public void testDurationSubtract2(String t1, String t2) throws Exception {
+        DatatypeFactory factory = DatatypeFactory.newInstance();
+        Duration dt1 = factory.newDuration(t1);
+        Duration dt2 = factory.newDuration(t2);
+        Duration result = dt1.subtract(dt2);
+    }
+
     @Test
     public void testDurationSubtract() {
         try {
--- a/test/jdk/com/sun/management/HotSpotDiagnosticMXBean/CheckOrigin.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/test/jdk/com/sun/management/HotSpotDiagnosticMXBean/CheckOrigin.java	Mon Jul 02 10:41:20 2018 -0400
@@ -58,7 +58,7 @@
             File flagsFile = File.createTempFile("CheckOriginFlags", null);
             try (PrintWriter pw =
                    new PrintWriter(new FileWriter(flagsFile))) {
-                pw.println("+PrintSafepointStatistics");
+                pw.println("+PrintVMQWaitTime");
             }
 
             ProcessBuilder pb = ProcessTools.
@@ -108,7 +108,7 @@
             checkOrigin("IgnoreUnrecognizedVMOptions", Origin.ENVIRON_VAR);
             checkOrigin("PrintVMOptions", Origin.ENVIRON_VAR);
             // Set in -XX:Flags file
-            checkOrigin("PrintSafepointStatistics", Origin.CONFIG_FILE);
+            checkOrigin("PrintVMQWaitTime", Origin.CONFIG_FILE);
             // Set through j.l.m
             checkOrigin("HeapDumpOnOutOfMemoryError", Origin.MANAGEMENT);
             // Should be set by the VM, when we set UseConcMarkSweepGC
--- a/test/jdk/java/io/RandomAccessFile/SetLength.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/test/jdk/java/io/RandomAccessFile/SetLength.java	Mon Jul 02 10:41:20 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2018, 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
@@ -22,60 +22,143 @@
  */
 
 /* @test
-   @summary General tests of the setLength method -- Should migrate to 1.2 JCK
+ * @bug 8204310
+ * @summary General tests of the setLength method
+ * @library /test/lib
+ * @build jdk.test.lib.RandomFactory
+ * @run main SetLength
+ * @key randomness
  */
 
-import java.io.*;
+import java.io.IOException;
+import java.io.File;
+import java.io.RandomAccessFile;
 
+import jdk.test.lib.RandomFactory;
 
 public class SetLength {
 
-    static void fail(String s) {
-        throw new RuntimeException(s);
+    static void checkState(RandomAccessFile f, long expectedFilePointer,
+            long expectedLength)
+        throws IOException
+    {
+        long filePointer = f.getFilePointer();
+        long length = f.length();
+        if (length != expectedLength) {
+            throw new RuntimeException("File length " + length + " != expected "
+                    + expectedLength);
+        }
+        if (filePointer != expectedFilePointer) {
+            throw new RuntimeException("File pointer " + filePointer
+                    + " != expected " + expectedFilePointer);
+        }
     }
 
-    static void go(File fn, int max) throws IOException {
-        int chunk = max / 4;
-        long i;
-        RandomAccessFile f;
+    static void test(RandomAccessFile f, long quarterLength)
+        throws IOException
+    {
+        long halfLength = 2 * quarterLength;
+        long threeQuarterLength = 3 * quarterLength;
+        long fullLength = 4 * quarterLength;
+
+        // initially, empty file
+        checkState(f, 0, 0);
+
+        // extending the file size
+        f.setLength(halfLength);
+        checkState(f, 0, halfLength);
+
+        // writing from the begining
+        f.write(new byte[(int)fullLength]);
+        checkState(f, fullLength, fullLength);
+
+        // setting to the same length
+        f.setLength(fullLength);
+        checkState(f, fullLength, fullLength);
+
+        // truncating the file
+        f.setLength(threeQuarterLength);
+        checkState(f, threeQuarterLength, threeQuarterLength);
+
+        // changing the file pointer
+        f.seek(quarterLength);
+        checkState(f, quarterLength, threeQuarterLength);
+
+        // truncating the file again
+        f.setLength(halfLength);
+        checkState(f, quarterLength, halfLength);
+
+        // writing from the middle with extending the file
+        f.write(new byte[(int)halfLength]);
+        checkState(f, threeQuarterLength, threeQuarterLength);
+
+        // changing the file pointer
+        f.seek(quarterLength);
+        checkState(f, quarterLength, threeQuarterLength);
 
-        f = new RandomAccessFile(fn, "rw");
-        f.setLength(2 * chunk);
-        if (f.length() != 2 * chunk) fail("Length not increased to " + (2 * chunk));
-        if ((i = f.getFilePointer()) != 0) fail("File pointer shifted to " + i);
-        byte[] buf = new byte[max];
-        f.write(buf);
-        if (f.length() != max) fail("Write didn't work");
-        if (f.getFilePointer() != max) fail("File pointer inconsistent");
-        f.setLength(3 * chunk);
-        if (f.length() != 3 * chunk) fail("Length not reduced to " + 3 * chunk);
-        if (f.getFilePointer() != 3 * chunk) fail("File pointer not shifted to " + (3 * chunk));
-        f.seek(1 * chunk);
-        if (f.getFilePointer() != 1 * chunk) fail("File pointer not shifted to " + (1 * chunk));
-        f.setLength(2 * chunk);
-        if (f.length() != 2 * chunk) fail("Length not reduced to " + (2 * chunk));
-        if (f.getFilePointer() != 1 * chunk) fail("File pointer not shifted to " + (1 * chunk));
+        // writing from the middle without extending the file
+        f.write(new byte[(int)quarterLength]);
+        checkState(f, halfLength, threeQuarterLength);
+
+        // changing the file pointer to the end of file
+        f.seek(threeQuarterLength);
+        checkState(f, threeQuarterLength, threeQuarterLength);
+
+        // writing to the end of file
+        f.write(new byte[(int)quarterLength]);
+        checkState(f, fullLength, fullLength);
+
+        // truncating the file to zero
+        f.setLength(0);
+        checkState(f, 0, 0);
+
+        // changing the file pointer beyond the end of file
+        f.seek(threeQuarterLength);
+        checkState(f, threeQuarterLength, 0);
+
+        // writing beyont the end of file
+        f.write(new byte[(int)quarterLength]);
+        checkState(f, fullLength, fullLength);
+
+        // negative file pointer
+        try {
+            f.seek(-1);
+            throw new RuntimeException("IOE not thrown");
+        } catch (IOException expected) {
+        }
+        checkState(f, fullLength, fullLength);
+
+        // truncating the file after failed seek
+        f.setLength(halfLength);
+        checkState(f, halfLength, halfLength);
+
+        // truncating after closing
         f.close();
+        try {
+            f.setLength(halfLength);
+            throw new RuntimeException("IOE not thrown");
+        } catch (IOException expected) {
+        }
     }
 
     public static void main(String[] args) throws IOException {
-        File fn = new File("x.SetLength");
-        try {
-            go(fn, 20);
-            fn.delete();
-            go(fn, 64 * 1024);
-            RandomAccessFile f = new RandomAccessFile(fn, "r");
-            boolean thrown = false;
-            try {
-                f.setLength(3);
-            } catch (IOException x) {
-                thrown = true;
-            }
-            if (!thrown) fail("setLength succeeded on a file opened read-only");
-            f.close();
+        File f28b = new File("f28b");
+        File f28K = new File("f28K");
+        File frnd = new File("frnd");
+
+        try (RandomAccessFile raf28b = new RandomAccessFile(f28b, "rw");
+             RandomAccessFile raf28K = new RandomAccessFile(f28K, "rw");
+             RandomAccessFile rafrnd = new RandomAccessFile(frnd, "rw")) {
+            test(raf28b, 7);
+            test(raf28K, 7 * 1024);
+            test(rafrnd, 1 + RandomFactory.getRandom().nextInt(16000));
         }
-        finally {
-            fn.delete();
+
+        // truncating read-only file
+        try (RandomAccessFile raf28b = new RandomAccessFile(f28b, "r")) {
+            raf28b.setLength(42);
+            throw new RuntimeException("IOE not thrown");
+        } catch (IOException expected) {
         }
     }
 
--- a/test/jdk/java/lang/module/ClassFileVersionsTest.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/test/jdk/java/lang/module/ClassFileVersionsTest.java	Mon Jul 02 10:41:20 2018 -0400
@@ -54,8 +54,8 @@
                 { 53,   0,  Set.of(STATIC, TRANSITIVE) },
 
                 { 54,   0,  Set.of() },                      // JDK 10
-
-                { 55,   0,  Set.of()},                       // JDK 11
+                { 55,   0,  Set.of() },                      // JDK 11
+                { 56,   0,  Set.of() },                      // JDK 12
         };
     }
 
@@ -75,7 +75,11 @@
                 { 55,   0,  Set.of(TRANSITIVE) },
                 { 55,   0,  Set.of(STATIC, TRANSITIVE) },
 
-                { 56,   0,  Set.of()},                       // JDK 12
+                { 56,   0,  Set.of(STATIC) },                // JDK 12
+                { 56,   0,  Set.of(TRANSITIVE) },
+                { 56,   0,  Set.of(STATIC, TRANSITIVE) },
+
+                { 57,   0,  Set.of()},                       // JDK 13
         };
     }
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/java/nio/channels/FileChannel/TruncateRAF.java	Mon Jul 02 10:41:20 2018 -0400
@@ -0,0 +1,155 @@
+/*
+ * Copyright (c) 2018, 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 8204310
+ * @summary Check how FileChannel behaves if the file size/offset change via
+ *          RAF.setLength() and other methods.
+ * @run main TruncateRAF
+ */
+
+import java.io.File;
+import java.io.RandomAccessFile;
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.nio.channels.FileChannel;
+
+public class TruncateRAF {
+
+    static void checkState(RandomAccessFile raf, FileChannel fch,
+            long expectedOffset, long expectedLength)
+        throws IOException
+    {
+        long rafLength = raf.length();
+        long rafOffset = raf.getFilePointer();
+        long fchLength = fch.size();
+        long fchOffset = fch.position();
+
+        if (rafLength != expectedLength)
+            throw new RuntimeException("rafLength (" + rafLength + ") != " +
+                    "expectedLength (" + expectedLength + ")");
+        if (rafOffset != expectedOffset)
+            throw new RuntimeException("rafOffset (" + rafOffset + ") != " +
+                    "expectedOffset (" + expectedOffset + ")");
+        if (fchLength != expectedLength)
+            throw new RuntimeException("fchLength (" + fchLength + ") != " +
+                    "expectedLength (" + expectedLength + ")");
+        if (fchOffset != expectedOffset)
+            throw new RuntimeException("fchOffset (" + fchOffset + ") != " +
+                    "expectedOffset (" + expectedOffset + ")");
+    }
+
+    public static void main(String[] args) throws Throwable {
+        File file = new File("tmp");
+        try (RandomAccessFile raf = new RandomAccessFile(file, "rw");
+             FileChannel fch = raf.getChannel()) {
+
+            // initially empty
+            checkState(raf, fch, 0, 0);
+
+            // seeking beyond EOF
+            raf.seek(42);
+            checkState(raf, fch, 42, 0);
+
+            // seeking beyond EOF
+            fch.position(84);
+            checkState(raf, fch, 84, 0);
+
+            // writing at offset beyond EOF
+            raf.write(1);
+            checkState(raf, fch, 85, 85);
+
+            // truncating
+            raf.setLength(63);
+            checkState(raf, fch, 63, 63);
+
+            // writing at EOF
+            fch.write(ByteBuffer.wrap(new byte[1]));
+            checkState(raf, fch, 64, 64);
+
+            // seeking at the middle
+            fch.position(32);
+            checkState(raf, fch, 32, 64);
+
+            // truncating beyond offset
+            fch.truncate(42);
+            checkState(raf, fch, 32, 42);
+
+            // truncating before offset
+            fch.truncate(16);
+            checkState(raf, fch, 16, 16);
+
+            // writing at position beyond EOF
+            fch.write(ByteBuffer.wrap(new byte[1]), 127);
+            checkState(raf, fch, 16, 128);
+
+            // writing at position before EOF
+            fch.write(ByteBuffer.wrap(new byte[1]), 42);
+            checkState(raf, fch, 16, 128);
+
+            // truncating
+            raf.setLength(64);
+            checkState(raf, fch, 16, 64);
+
+            // changing offset
+            raf.seek(21);
+            checkState(raf, fch, 21, 64);
+
+            // skipping should change offset
+            raf.skipBytes(4);
+            checkState(raf, fch, 25, 64);
+
+            // reading should change offset
+            raf.read();
+            checkState(raf, fch, 26, 64);
+
+            // truncating to zero
+            raf.setLength(0);
+            checkState(raf, fch, 0, 0);
+
+            // FileChannel cannot expand size
+            fch.truncate(42);
+            checkState(raf, fch, 0, 0);
+
+            // expanding
+            raf.setLength(42);
+            checkState(raf, fch, 0, 42);
+
+            // seeking beyond EOF
+            raf.seek(512);
+            checkState(raf, fch, 512, 42);
+
+            // truncating to the same size
+            fch.truncate(256);
+            checkState(raf, fch, 256, 42);
+
+            // truncating to the same size
+            fch.truncate(42);
+            checkState(raf, fch, 42, 42);
+
+            // truncating to zero
+            fch.truncate(0);
+            checkState(raf, fch, 0, 0);
+        }
+    }
+}
--- a/test/jdk/java/util/jar/JarFile/mrjar/TestVersionedStream.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/test/jdk/java/util/jar/JarFile/mrjar/TestVersionedStream.java	Mon Jul 02 10:41:20 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2018, 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
@@ -64,6 +64,8 @@
     private final Path userdir;
     private final Set<String> unversionedEntryNames;
 
+    private static final int LATEST_VERSION = Runtime.version().feature();
+
     public TestVersionedStream() throws IOException {
         userdir = Paths.get(System.getProperty("user.dir", "."));
 
@@ -79,12 +81,14 @@
                 "v9/p/Foo.class",
                 "v10/p/Foo.class",
                 "v10/q/Bar.class",
-                "v11/p/Bar.class",
-                "v11/p/Foo.class"
+                "v" + LATEST_VERSION + "/p/Bar.class",
+                "v" + LATEST_VERSION + "/p/Foo.class"
         );
 
-        jar("cf mmr.jar -C base . --release 9 -C v9 . " +
-                "--release 10 -C v10 . --release 11 -C v11 .");
+        jar("cf mmr.jar -C base . " +
+            "--release 9 -C v9 . " +
+            "--release 10 -C v10 . " +
+            "--release " + LATEST_VERSION + " -C v" + LATEST_VERSION + " .");
 
         System.out.println("Contents of mmr.jar\n=======");
 
@@ -124,7 +128,7 @@
             {Runtime.Version.parse("8")},
             {Runtime.Version.parse("9")},
             {Runtime.Version.parse("10")},
-            {Runtime.Version.parse("11")},
+            {Runtime.Version.parse(Integer.toString(LATEST_VERSION))},
             {JarFile.baseVersion()},
             {JarFile.runtimeVersion()}
         };
@@ -173,7 +177,8 @@
 
             expected.put("p/Bar.class", new String[] { "base/p/Bar.class", "p/Bar.class" });
             expected.put("p/Main.class", new String[] { "base/p/Main.class", "p/Main.class" });
-            switch (version.major()) {
+            int majorVersion  = version.major();
+            switch (majorVersion) {
                 case 8:
                     expected.put("p/Foo.class", new String[]
                         { "base/p/Foo.class", "p/Foo.class" });
@@ -189,16 +194,19 @@
                     expected.put("q/Bar.class", new String[]
                         { "v10/q/Bar.class", "META-INF/versions/10/q/Bar.class" });
                     break;
-                case 11:
-                    expected.put("p/Bar.class", new String[]
-                        { "v11/p/Bar.class", "META-INF/versions/11/p/Bar.class"});
-                    expected.put("p/Foo.class", new String[]
-                        { "v11/p/Foo.class", "META-INF/versions/11/p/Foo.class"});
-                    expected.put("q/Bar.class", new String[]
-                        { "q/Bar.class", "META-INF/versions/10/q/Bar.class"});
-                    break;
                 default:
-                    Assert.fail("Test out of date, please add more cases");
+                    if (majorVersion == LATEST_VERSION) {
+                        expected.put("p/Bar.class",
+                                     new String[] { "v" + LATEST_VERSION + "/p/Bar.class",
+                                                    "META-INF/versions/" + LATEST_VERSION + "/p/Bar.class"});
+                        expected.put("p/Foo.class",
+                                     new String[]{ "v" + LATEST_VERSION + "/p/Foo.class",
+                                                   "META-INF/versions/" + LATEST_VERSION + "/p/Foo.class"});
+                        expected.put("q/Bar.class",
+                                     new String[] { "q/Bar.class", "META-INF/versions/10/q/Bar.class"});
+                    } else {
+                        Assert.fail("Test out of date, please add more cases");
+                    }
             }
 
             expected.entrySet().stream().forEach(e -> {
--- a/test/jdk/jdk/nio/zipfs/MultiReleaseJarTest.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/test/jdk/jdk/nio/zipfs/MultiReleaseJarTest.java	Mon Jul 02 10:41:20 2018 -0400
@@ -116,7 +116,8 @@
         return new Object[][] {
                 {Version.parse("8"),    8},
                 {Version.parse("9"),    9},
-                {Version.parse("11"),  MAJOR_VERSION},
+                {Version.parse(Integer.toString(MAJOR_VERSION)),  MAJOR_VERSION},
+                {Version.parse(Integer.toString(MAJOR_VERSION) + 1),  MAJOR_VERSION},
                 {Version.parse("100"), MAJOR_VERSION}
         };
     }
--- a/test/jdk/lib/security/cacerts/VerifyCACerts.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/test/jdk/lib/security/cacerts/VerifyCACerts.java	Mon Jul 02 10:41:20 2018 -0400
@@ -24,7 +24,7 @@
 
 /**
  * @test
- * @bug 8189131 8198240 8191844 8189949 8191031 8196141 8204923
+ * @bug 8189131 8198240 8191844 8189949 8191031 8196141 8204923 8195774
  * @requires java.runtime.name ~= "OpenJDK.*"
  * @summary Check root CA entries in cacerts file
  */
@@ -42,7 +42,7 @@
             + File.separator + "security" + File.separator + "cacerts";
 
     // The numbers of certs now.
-    private static final int COUNT = 75;
+    private static final int COUNT = 83;
 
     // map of cert alias to SHA-256 fingerprint
     private static final Map<String, String> FINGERPRINT_MAP
@@ -198,6 +198,22 @@
                     "14:65:FA:20:53:97:B8:76:FA:A6:F0:A9:95:8E:55:90:E4:0F:CC:7F:AA:4F:B7:C2:C8:67:75:21:FB:5F:B6:58");
             put("starfieldrootg2ca [jdk]",
                     "2C:E1:CB:0B:F9:D2:F9:E1:02:99:3F:BE:21:51:52:C3:B2:DD:0C:AB:DE:1C:68:E5:31:9B:83:91:54:DB:B7:F5");
+            put("entrustrootcaec1 [jdk]",
+                    "02:ED:0E:B2:8C:14:DA:45:16:5C:56:67:91:70:0D:64:51:D7:FB:56:F0:B2:AB:1D:3B:8E:B0:70:E5:6E:DF:F5");
+            put("entrust2048ca [jdk]",
+                    "6D:C4:71:72:E0:1C:BC:B0:BF:62:58:0D:89:5F:E2:B8:AC:9A:D4:F8:73:80:1E:0C:10:B9:C8:37:D2:1E:B1:77");
+            put("entrustrootcag2 [jdk]",
+                    "43:DF:57:74:B0:3E:7F:EF:5F:E4:0D:93:1A:7B:ED:F1:BB:2E:6B:42:73:8C:4E:6D:38:41:10:3D:3A:A7:F3:39");
+            put("entrustevca [jdk]",
+                    "73:C1:76:43:4F:1B:C6:D5:AD:F4:5B:0E:76:E7:27:28:7C:8D:E5:76:16:C1:E6:E6:14:1A:2B:2C:BC:7D:8E:4C");
+            put("affirmtrustnetworkingca [jdk]",
+                    "0A:81:EC:5A:92:97:77:F1:45:90:4A:F3:8D:5D:50:9F:66:B5:E2:C5:8F:CD:B5:31:05:8B:0E:17:F3:F0:B4:1B");
+            put("affirmtrustpremiumca [jdk]",
+                    "70:A7:3F:7F:37:6B:60:07:42:48:90:45:34:B1:14:82:D5:BF:0E:69:8E:CC:49:8D:F5:25:77:EB:F2:E9:3B:9A");
+            put("affirmtrustcommercialca [jdk]",
+                    "03:76:AB:1D:54:C5:F9:80:3C:E4:B2:E2:01:A0:EE:7E:EF:7B:57:B6:36:E8:A9:3C:9B:8D:48:60:C9:6F:5F:A7");
+            put("affirmtrustpremiumeccca [jdk]",
+                    "BD:71:FD:F6:DA:97:E4:CF:62:D1:64:7A:DD:25:81:B0:7D:79:AD:F8:39:7E:B4:EC:BA:9C:5E:84:88:82:14:23");
         }
     };
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/security/infra/java/security/cert/CertPathValidator/certification/EntrustCA.java	Mon Jul 02 10:41:20 2018 -0400
@@ -0,0 +1,169 @@
+/*
+ * Copyright (c) 2018, 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 8195774
+ * @summary Interoperability tests with Entrust EC CA
+ * @build ValidatePathWithParams
+ * @run main/othervm -Djava.security.debug=certpath EntrustCA OCSP
+ * @run main/othervm -Djava.security.debug=certpath EntrustCA CRL
+ */
+
+/*
+ * Obtain test artifacts for Entrust EC CA from:
+ *
+ * Valid https://validec.entrust.net
+ *
+ * Revoked https://revokedec.entrust.net
+ */
+public class EntrustCA {
+
+    // Owner: CN=Entrust Certification Authority - L1J, OU="(c) 2016 Entrust, Inc. - for authorized use only",
+    // OU=See www.entrust.net/legal-terms, O="Entrust, Inc.", C=US
+    // Issuer: CN=Entrust Root Certification Authority - EC1, OU="(c) 2012 Entrust, Inc. - for authorized use only",
+    // OU=See www.entrust.net/legal-terms, O="Entrust, Inc.", C=US
+    private static final String INT = "-----BEGIN CERTIFICATE-----\n" +
+            "MIID5zCCA2ygAwIBAgIQCoPUgD5+n1EAAAAAUdTB9zAKBggqhkjOPQQDAzCBvzEL\n" +
+            "MAkGA1UEBhMCVVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1Nl\n" +
+            "ZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDEy\n" +
+            "IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25seTEzMDEGA1UE\n" +
+            "AxMqRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRUMxMB4X\n" +
+            "DTE2MDQwNTIwMTk1NFoXDTM3MTAwNTIwNDk1NFowgboxCzAJBgNVBAYTAlVTMRYw\n" +
+            "FAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3Qu\n" +
+            "bmV0L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxNiBFbnRydXN0LCBJbmMu\n" +
+            "IC0gZm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxLjAsBgNVBAMTJUVudHJ1c3QgQ2Vy\n" +
+            "dGlmaWNhdGlvbiBBdXRob3JpdHkgLSBMMUowdjAQBgcqhkjOPQIBBgUrgQQAIgNi\n" +
+            "AAT14eFXmpQX/dEf7NAxrMH13n0btz1KKvH2S1rROGPAKex2CY8yxznbffK/MbCk\n" +
+            "F7ByYXGs1+8kL5xmTysU/c+YmjOZx2mMSAk2DPw30fijJ3tRrwChZ+TBpgtB6+A5\n" +
+            "MsCjggEuMIIBKjAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADAz\n" +
+            "BggrBgEFBQcBAQQnMCUwIwYIKwYBBQUHMAGGF2h0dHA6Ly9vY3NwLmVudHJ1c3Qu\n" +
+            "bmV0MDMGA1UdHwQsMCowKKAmoCSGImh0dHA6Ly9jcmwuZW50cnVzdC5uZXQvZWMx\n" +
+            "cm9vdC5jcmwwOwYDVR0gBDQwMjAwBgRVHSAAMCgwJgYIKwYBBQUHAgEWGmh0dHA6\n" +
+            "Ly93d3cuZW50cnVzdC5uZXQvcnBhMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEF\n" +
+            "BQcDAjAdBgNVHQ4EFgQUw/lFA77I+Qs8RTXz63Ls5+jrlJswHwYDVR0jBBgwFoAU\n" +
+            "t2PnGt2N6QimVYOk4GpQQWURQkkwCgYIKoZIzj0EAwMDaQAwZgIxAPnVAOqxKDd7\n" +
+            "v37EBmpPqWCCWBFPKW6HpRx3GUWc9caeQIw8rO2HXYgf92pb/TsJYAIxAJhI0MpR\n" +
+            "z5L42xF1R9UIPfQxCMwgsnWBqIqcfMrMO+2DxQy6GIP3cFFj9gRyxguKWw==\n" +
+            "-----END CERTIFICATE-----";
+
+    // Owner: CN=validec.entrust.net, SERIALNUMBER=D15576572, OID.2.5.4.15=Private Organization, O="Entrust, Inc.",
+    // OID.1.3.6.1.4.1.311.60.2.1.2=Maryland, OID.1.3.6.1.4.1.311.60.2.1.3=US, L=Kanata, ST=Ontario, C=CA
+    // Issuer: CN=Entrust Certification Authority - L1J, OU="(c) 2016 Entrust, Inc. - for authorized use only",
+    // OU=See www.entrust.net/legal-terms, O="Entrust, Inc.", C=US
+    private static final String VALID = "-----BEGIN CERTIFICATE-----\n" +
+            "MIIFrTCCBTKgAwIBAgIQYtgW4DLwh74AAAAAVqBXkTAKBggqhkjOPQQDAjCBujEL\n" +
+            "MAkGA1UEBhMCVVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1Nl\n" +
+            "ZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDE2\n" +
+            "IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25seTEuMCwGA1UE\n" +
+            "AxMlRW50cnVzdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEwxSjAeFw0xODA2\n" +
+            "MjUxMzE1NTdaFw0xOTA2MjUxMzQ1NTBaMIHJMQswCQYDVQQGEwJDQTEQMA4GA1UE\n" +
+            "CBMHT250YXJpbzEPMA0GA1UEBxMGS2FuYXRhMRMwEQYLKwYBBAGCNzwCAQMTAlVT\n" +
+            "MRkwFwYLKwYBBAGCNzwCAQITCE1hcnlsYW5kMRYwFAYDVQQKEw1FbnRydXN0LCBJ\n" +
+            "bmMuMR0wGwYDVQQPExRQcml2YXRlIE9yZ2FuaXphdGlvbjESMBAGA1UEBRMJRDE1\n" +
+            "NTc2NTcyMRwwGgYDVQQDExN2YWxpZGVjLmVudHJ1c3QubmV0MFkwEwYHKoZIzj0C\n" +
+            "AQYIKoZIzj0DAQcDQgAEHQe7lUaAUgIwR9EiLJlhkbx+HfSr22M3JvQD6+fnYgqd\n" +
+            "55e6E1UE45fk92UpqPi1CEbXrdpmWKu1Z470B9cPGaOCAwcwggMDMB4GA1UdEQQX\n" +
+            "MBWCE3ZhbGlkZWMuZW50cnVzdC5uZXQwggF/BgorBgEEAdZ5AgQCBIIBbwSCAWsB\n" +
+            "aQB1AFWB1MIWkDYBSuoLm1c8U/DA5Dh4cCUIFy+jqh0HE9MMAAABZDcxpMkAAAQD\n" +
+            "AEYwRAIgIb0PwjCcNOchJg8Zywz/0Lwm2vEOJUSao6BqNUIsyaYCIElHHexB06LE\n" +
+            "yXWDXO7UqOtWT6uqkdJN8V4TzwT9B4o4AHcA3esdK3oNT6Ygi4GtgWhwfi6OnQHV\n" +
+            "XIiNPRHEzbbsvswAAAFkNzGkvgAABAMASDBGAiEAlxy/kxB9waIifYn+EV550pvA\n" +
+            "C3jUfS/bjsKbcsBH9cQCIQDSHTJORz6fZu8uLFhpV525pw7iHVh2dSn3gpcteObh\n" +
+            "DQB3ALvZ37wfinG1k5Qjl6qSe0c4V5UKq1LoGpCWZDaOHtGFAAABZDcxpTsAAAQD\n" +
+            "AEgwRgIhAPCBqVqSvAEIXMPloV0tfBEEdjRrAhiG407cPqYwt9AFAiEAuQf4R5os\n" +
+            "MLkD3XhxvrTDvnD+PUOf8PzPevsWkuxNqcQwDgYDVR0PAQH/BAQDAgeAMB0GA1Ud\n" +
+            "JQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjBjBggrBgEFBQcBAQRXMFUwIwYIKwYB\n" +
+            "BQUHMAGGF2h0dHA6Ly9vY3NwLmVudHJ1c3QubmV0MC4GCCsGAQUFBzAChiJodHRw\n" +
+            "Oi8vYWlhLmVudHJ1c3QubmV0L2wxai1lYzEuY2VyMDMGA1UdHwQsMCowKKAmoCSG\n" +
+            "Imh0dHA6Ly9jcmwuZW50cnVzdC5uZXQvbGV2ZWwxai5jcmwwSgYDVR0gBEMwQTA2\n" +
+            "BgpghkgBhvpsCgECMCgwJgYIKwYBBQUHAgEWGmh0dHA6Ly93d3cuZW50cnVzdC5u\n" +
+            "ZXQvcnBhMAcGBWeBDAEBMB8GA1UdIwQYMBaAFMP5RQO+yPkLPEU18+ty7Ofo65Sb\n" +
+            "MB0GA1UdDgQWBBT+J7OhS6gskCanmOGnx10DPSF8ATAJBgNVHRMEAjAAMAoGCCqG\n" +
+            "SM49BAMCA2kAMGYCMQCQLUQABT74TmdHzAtB97uNF5+Zy15wzkmlKeRSOXCIf2C5\n" +
+            "YKjsgdkR1OdzZXcpjNgCMQDfWcdPhodNXZC4l1lLPOPaTzPPw6uVqqoITQlc6r1t\n" +
+            "dRkkD6K9ii/X8EtwoFp7s80=\n" +
+            "-----END CERTIFICATE-----";
+
+    // Owner: CN=revokedec.entrust.net, SERIALNUMBER=115868500, OID.2.5.4.15=Private Organization, O="Entrust, Inc.",
+    // OID.1.3.6.1.4.1.311.60.2.1.2=Texas, OID.1.3.6.1.4.1.311.60.2.1.3=US, L=Kanata, ST=Ontario, C=CA
+    // Issuer: CN=Entrust Certification Authority - L1J, OU="(c) 2016 Entrust, Inc. - for authorized use only",
+    // OU=See www.entrust.net/legal-terms, O="Entrust, Inc.", C=US
+    private static final String REVOKED = "-----BEGIN CERTIFICATE-----\n" +
+            "MIIGJzCCBaygAwIBAgIRAM0WDfag1taIAAAAAFagJ5gwCgYIKoZIzj0EAwIwgbox\n" +
+            "CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9T\n" +
+            "ZWUgd3d3LmVudHJ1c3QubmV0L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykgMjAx\n" +
+            "NiBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxLjAsBgNV\n" +
+            "BAMTJUVudHJ1c3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBMMUowHhcNMTcw\n" +
+            "NTI0MTcwNzA4WhcNMTkwNTI0MTczNjU1WjCByDELMAkGA1UEBhMCQ0ExEDAOBgNV\n" +
+            "BAgTB09udGFyaW8xDzANBgNVBAcTBkthbmF0YTETMBEGCysGAQQBgjc8AgEDEwJV\n" +
+            "UzEWMBQGCysGAQQBgjc8AgECEwVUZXhhczEWMBQGA1UEChMNRW50cnVzdCwgSW5j\n" +
+            "LjEdMBsGA1UEDxMUUHJpdmF0ZSBPcmdhbml6YXRpb24xEjAQBgNVBAUTCTExNTg2\n" +
+            "ODUwMDEeMBwGA1UEAxMVcmV2b2tlZGVjLmVudHJ1c3QubmV0MFkwEwYHKoZIzj0C\n" +
+            "AQYIKoZIzj0DAQcDQgAEN5MP/59yrs9uwVM/Mrc8IuHonMChAZgN2twwvh8KTnR2\n" +
+            "3stfem/R+NtLccq+4ds1+8ktnXgP7u1x0as6IJOH1qOCA4EwggN9MCAGA1UdEQQZ\n" +
+            "MBeCFXJldm9rZWRlYy5lbnRydXN0Lm5ldDCCAfcGCisGAQQB1nkCBAIEggHnBIIB\n" +
+            "4wHhAHYA7ku9t3XOYLrhQmkfq+GeZqMPfl+wctiDAMR7iXqo/csAAAFcO4iiogAA\n" +
+            "BAMARzBFAiAgHVpryyNVgnsUIihu+5DC2/vuP8Cy5iXq8NhCBXg8UgIhAKi5jImT\n" +
+            "f1FJksvHboc0EZh9TWhWljVZ6E5jB2CL+qzeAHcAVhQGmi/XwuzT9eG9RLI+x0Z2\n" +
+            "ubyZEVzA75SYVdaJ0N0AAAFcO4ij9QAABAMASDBGAiEA4B2p2726ISSkKC9WVlzj\n" +
+            "BVwYZ1Hr7mTjPrFqkoGpEHYCIQC5iuInkJXGBANLTH06BHIQkkr4KnFRl9QBOSw4\n" +
+            "b+kNqgB1AN3rHSt6DU+mIIuBrYFocH4ujp0B1VyIjT0RxM227L7MAAABXDuIpkcA\n" +
+            "AAQDAEYwRAIgQ9ssw19wIhHWW6IWgwnIyB7e30HacBNX6S1eQ3GUX04CICffGj3A\n" +
+            "WWmK9lixmk35YklMnSXNqHQezSYRiCYtXxejAHcApLkJkLQYWBSHuxOizGdwCjw1\n" +
+            "mAT5G9+443fNDsgN3BAAAAFcO4inUwAABAMASDBGAiEA+8T9tpPw/mU/STsNv0oz\n" +
+            "8Nla21fKlpEOyWqDKWPSUeYCIQCwI5tDyyaJtyFY9/OVqLG+BKPKjscUtTqGJYl4\n" +
+            "XbOo1jAOBgNVHQ8BAf8EBAMCB4AwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUF\n" +
+            "BwMCMGMGCCsGAQUFBwEBBFcwVTAjBggrBgEFBQcwAYYXaHR0cDovL29jc3AuZW50\n" +
+            "cnVzdC5uZXQwLgYIKwYBBQUHMAKGImh0dHA6Ly9haWEuZW50cnVzdC5uZXQvbDFq\n" +
+            "LWVjMS5jZXIwMwYDVR0fBCwwKjAooCagJIYiaHR0cDovL2NybC5lbnRydXN0Lm5l\n" +
+            "dC9sZXZlbDFqLmNybDBKBgNVHSAEQzBBMDYGCmCGSAGG+mwKAQIwKDAmBggrBgEF\n" +
+            "BQcCARYaaHR0cDovL3d3dy5lbnRydXN0Lm5ldC9ycGEwBwYFZ4EMAQEwHwYDVR0j\n" +
+            "BBgwFoAUw/lFA77I+Qs8RTXz63Ls5+jrlJswHQYDVR0OBBYEFIj28ytR8ulo1p2t\n" +
+            "ZnBQOLK0rlLUMAkGA1UdEwQCMAAwCgYIKoZIzj0EAwIDaQAwZgIxANzqGRI0en5P\n" +
+            "gSUDcdwoQSNKrBPBfGz2AQVLHAXsxvIlGhKZAQtM49zxA8AdFy/agwIxAMEjJH6A\n" +
+            "4UbcGZc40eYu6wUbAxiUDD3gwSElNQ8Z6IhNLPCCdMM6KZORyaagAcXn4A==\n" +
+            "-----END CERTIFICATE-----";
+
+    public static void main(String[] args) throws Exception {
+
+        ValidatePathWithParams pathValidator = new ValidatePathWithParams(null);
+
+        if (args.length >= 1 && "CRL".equalsIgnoreCase(args[0])) {
+            pathValidator.enableCRLCheck();
+        } else {
+            // OCSP check by default
+            pathValidator.enableOCSPCheck();
+        }
+
+        // Validate valid
+        pathValidator.validate(new String[]{VALID, INT},
+                ValidatePathWithParams.Status.GOOD, null, System.out);
+
+        // Validate Revoked
+        pathValidator.validate(new String[]{REVOKED, INT},
+                ValidatePathWithParams.Status.REVOKED,
+                "Wed May 24 10:39:28 PDT 2017", System.out);
+    }
+
+}
--- a/test/langtools/ProblemList.txt	Thu Jun 28 12:44:34 2018 -0400
+++ b/test/langtools/ProblemList.txt	Mon Jul 02 10:41:20 2018 -0400
@@ -56,6 +56,9 @@
 tools/javac/modules/SourceInSymlinkTest.java                                    8180263    windows-all    fails when run on a subst drive
 tools/javac/importscope/T8193717.java                                           8203925    generic-all    the test requires too much memory
 
+
+tools/javac/options/smokeTests/OptionSmokeTest.java                             8205493    generic-all    hard-coded release values in strings
+
 ###########################################################################
 #
 # javap
@@ -70,12 +73,12 @@
 tools/sjavac/IncCompileFullyQualifiedRef.java                                   8152055    generic-all    Requires dependency code to deal with in-method dependencies.
 tools/sjavac/IncCompileWithChanges.java                                         8152055    generic-all    Requires dependency code to deal with in-method dependencies.
 
-tools/sjavac/ApiExtraction.java							8158002	   generic-all	  Requires investigation
-tools/sjavac/IgnoreSymbolFile.java						8158002	   generic-all	  Requires investigation
-tools/sjavac/ClasspathDependencies.java						8158002	   generic-all	  Requires investigation
+tools/sjavac/ApiExtraction.java                                                 8158002    generic-all    Requires investigation
+tools/sjavac/IgnoreSymbolFile.java                                              8158002    generic-all    Requires investigation
+tools/sjavac/ClasspathDependencies.java                                         8158002    generic-all    Requires investigation
 
 
 ###########################################################################
 #
-# jdeps 
+# jdeps
 
--- a/test/langtools/jdk/javadoc/doclet/WindowTitles/WindowTitles.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/test/langtools/jdk/javadoc/doclet/WindowTitles/WindowTitles.java	Mon Jul 02 10:41:20 2018 -0400
@@ -51,6 +51,7 @@
                 "-sourcepath", testSrc,
                 "p1", "p2");
         checkExit(Exit.OK);
+        checkFiles(false, "allclasses-noframe.html");
 
         checkTitle("overview-summary.html",     "Overview");
         checkTitle("overview-tree.html",        "Class Hierarchy");
@@ -61,7 +62,6 @@
         checkTitle("p1/package-use.html",       "Uses of Package p1");
         checkTitle("p1/C1.html",                "C1");
         checkTitle("allclasses-frame.html",     "All Classes");
-        checkTitle("allclasses-noframe.html",   "All Classes");
         checkTitle("constant-values.html",      "Constant Field Values");
         checkTitle("deprecated-list.html",      "Deprecated List");
         checkTitle("serialized-form.html",      "Serialized Form");
--- a/test/langtools/jdk/javadoc/doclet/testFramesNoFrames/TestFramesNoFrames.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/test/langtools/jdk/javadoc/doclet/testFramesNoFrames/TestFramesNoFrames.java	Mon Jul 02 10:41:20 2018 -0400
@@ -287,24 +287,19 @@
         private void checkAllClassesFiles() {
             // these files are only generated in frames mode
             checkFiles(frames,
-                    "allclasses-frame.html",
-                    "allclasses-noframe.html");
+                    "allclasses-frame.html");
 
-            // this file is only generated when not in frames mode
-            checkFiles(!frames,
+            checkFiles(false,
                     "allclasses.html");
 
+            checkFiles(false,
+                    "allclasses-noframe.html");
+
             if (frames) {
                 checkOutput("allclasses-frame.html", true,
                         classes.stream()
                             .map(c -> "title=\"class in " + packagePart(c) + "\" target=\"classFrame\">" + classPart(c) + "</a>")
                             .toArray(String[]::new));
-                checkOutput("allclasses-noframe.html", false,
-                            "target=\"classFrame\">");
-            } else {
-                checkOutput("allclasses.html", false,
-                            "target=\"classFrame\">");
-
             }
         }
 
--- a/test/langtools/jdk/javadoc/doclet/testGeneratedBy/TestGeneratedBy.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/test/langtools/jdk/javadoc/doclet/testGeneratedBy/TestGeneratedBy.java	Mon Jul 02 10:41:20 2018 -0400
@@ -45,6 +45,7 @@
             "-sourcepath", testSrc,
             "pkg");
         checkExit(Exit.OK);
+        checkFiles(false, "allclasses-noframe.html");
 
         checkTimestamps(true);
     }
@@ -57,6 +58,7 @@
             "-sourcepath", testSrc,
             "pkg");
         checkExit(Exit.OK);
+        checkFiles(false, "allclasses-noframe.html");
 
         checkTimestamps(false);
     }
@@ -67,7 +69,6 @@
         "pkg/package-summary.html",
         "pkg/package-frame.html",
         "pkg/package-tree.html",
-        "allclasses-noframe.html",
         "constant-values.html",
         "allclasses-frame.html",
         "overview-tree.html",
--- a/test/langtools/jdk/javadoc/doclet/testHtmlVersion/TestHtmlVersion.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/test/langtools/jdk/javadoc/doclet/testHtmlVersion/TestHtmlVersion.java	Mon Jul 02 10:41:20 2018 -0400
@@ -117,14 +117,6 @@
                 + "<ul>\n"
                 + "<li>");
 
-        // Test for allclasses-noframe page
-        checkOutput("allclasses-noframe.html", true,
-                "<!DOCTYPE HTML>",
-                "<meta name=\"dc.created\"",
-                "<main role=\"main\" class=\"indexContainer\">\n"
-                + "<ul>\n"
-                + "<li>");
-
         // Test for overview-summary page
         checkOutput("overview-summary.html", true,
                 "<!DOCTYPE HTML>",
@@ -655,14 +647,6 @@
                 + "<ul>\n"
                 + "<li>");
 
-        // Negated test for allclasses-noframe page
-        checkOutput("allclasses-noframe.html", false,
-                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
-                "<meta name=\"date\"",
-                "<div class=\"indexContainer\">\n"
-                + "<ul>\n"
-                + "<li>");
-
         // Negated test for overview-summary page
         checkOutput("overview-summary.html", false,
                 "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
@@ -1088,14 +1072,6 @@
                 + "<ul>\n"
                 + "<li>");
 
-        // Test for allclasses-noframe page
-        checkOutput("allclasses-noframe.html", true,
-                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
-                "<meta name=\"date\"",
-                "<div class=\"indexContainer\">\n"
-                + "<ul>\n"
-                + "<li>");
-
         // Test for overview-summary page
         checkOutput("overview-summary.html", true,
                 "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",
@@ -1539,14 +1515,6 @@
                 + "<ul>\n"
                 + "<li>");
 
-        // Negated test for allclasses-noframe page
-        checkOutput("allclasses-noframe.html", false,
-                "<!DOCTYPE HTML>",
-                "<meta name=\"dc.created\"",
-                "<main role=\"main\" class=\"indexContainer\">\n"
-                + "<ul>\n"
-                + "<li>");
-
         // Negated test for overview-summary page
         checkOutput("overview-summary.html", false,
                 "<!DOCTYPE HTML>",
--- a/test/langtools/jdk/javadoc/doclet/testModuleDirs/TestModuleDirs.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/test/langtools/jdk/javadoc/doclet/testModuleDirs/TestModuleDirs.java	Mon Jul 02 10:41:20 2018 -0400
@@ -102,7 +102,7 @@
                 + "<li><a href=\"overview-frame.html\" target=\"packageListFrame\">All&nbsp;Packages</a></li>\n"
                 + "<li><a href=\"module-overview-frame.html\" target=\"packageListFrame\">All&nbsp;Modules</a></li>\n"
                 + "</ul>\n");
-        checkOutput("ma-summary.html", true,
+        checkOutput("ma-summary.html", false,
                 "<ul class=\"navList\" id=\"allclasses_navbar_top\">\n"
                 + "<li><a href=\"allclasses-noframe.html\">All&nbsp;Classes</a></li>\n"
                 + "</ul>\n");
@@ -145,7 +145,7 @@
                 + "<li><a href=\"../overview-frame.html\" target=\"packageListFrame\">All&nbsp;Packages</a></li>\n"
                 + "<li><a href=\"../module-overview-frame.html\" target=\"packageListFrame\">All&nbsp;Modules</a></li>\n"
                 + "</ul>\n");
-        checkOutput("ma/module-summary.html", true,
+        checkOutput("ma/module-summary.html", false,
                 "<ul class=\"navList\" id=\"allclasses_navbar_top\">\n"
                 + "<li><a href=\"../allclasses-noframe.html\">All&nbsp;Classes</a></li>\n"
                 + "</ul>\n");
--- a/test/langtools/jdk/javadoc/doclet/testModules/TestModules.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/test/langtools/jdk/javadoc/doclet/testModules/TestModules.java	Mon Jul 02 10:41:20 2018 -0400
@@ -1148,7 +1148,8 @@
                 "module-overview-frame.html");
         checkFiles(true,
                 "moduleC/module-summary.html",
-                "allclasses-frame.html",
+                "allclasses-frame.html");
+        checkFiles(false,
                 "allclasses-noframe.html");
     }
 
--- a/test/langtools/jdk/javadoc/doclet/testNavigation/TestModuleNavigation.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/test/langtools/jdk/javadoc/doclet/testNavigation/TestModuleNavigation.java	Mon Jul 02 10:41:20 2018 -0400
@@ -81,34 +81,73 @@
 
         checkOutput("overview-summary.html", false,
                 "Prev",
-                "Next");
+                "Next",
+                "All&nbsp;Classes",
+                "<script type=\"text/javascript\"><!--\n"
+                + "  allClassesLink = document.getElementById(\"allclasses_navbar_top\");",
+                "<script type=\"text/javascript\"><!--\n"
+                + "  allClassesLink = document.getElementById(\"allclasses_navbar_bottom\");");
 
         checkOutput("m/module-summary.html", false,
                 "Prev&nbsp;Module",
-                "Next&nbsp;Module");
+                "Next&nbsp;Module",
+                "All&nbsp;Classes",
+                "<script type=\"text/javascript\"><!--\n"
+                + "  allClassesLink = document.getElementById(\"allclasses_navbar_top\");",
+                "<script type=\"text/javascript\"><!--\n"
+                + "  allClassesLink = document.getElementById(\"allclasses_navbar_bottom\");");
 
         checkOutput("m2/m2p1/package-summary.html", false,
                 "Prev&nbsp;Package",
-                "Next&nbsp;Package");
+                "Next&nbsp;Package",
+                "All&nbsp;Classes",
+                "<script type=\"text/javascript\"><!--\n"
+                + "  allClassesLink = document.getElementById(\"allclasses_navbar_top\");",
+                "<script type=\"text/javascript\"><!--\n"
+                + "  allClassesLink = document.getElementById(\"allclasses_navbar_bottom\");");
 
         checkOutput("m2/m2p1/Am2.html", false,
                 "Prev&nbsp;Class",
-                "Next&nbsp;Class");
+                "Next&nbsp;Class",
+                "All&nbsp;Classes",
+                "<script type=\"text/javascript\"><!--\n"
+                + "  allClassesLink = document.getElementById(\"allclasses_navbar_top\");",
+                "<script type=\"text/javascript\"><!--\n"
+                + "  allClassesLink = document.getElementById(\"allclasses_navbar_bottom\");");
 
         checkOutput("m2/m2p1/class-use/Am2.html", false,
                 "Prev",
-                "Next");
+                "Next",
+                "All&nbsp;Classes",
+                "<script type=\"text/javascript\"><!--\n"
+                + "  allClassesLink = document.getElementById(\"allclasses_navbar_top\");",
+                "<script type=\"text/javascript\"><!--\n"
+                + "  allClassesLink = document.getElementById(\"allclasses_navbar_bottom\");");
 
         checkOutput("m2/m2p1/package-tree.html", false,
                 "Prev",
-                "Next");
+                "Next",
+                "All&nbsp;Classes",
+                "<script type=\"text/javascript\"><!--\n"
+                + "  allClassesLink = document.getElementById(\"allclasses_navbar_top\");",
+                "<script type=\"text/javascript\"><!--\n"
+                + "  allClassesLink = document.getElementById(\"allclasses_navbar_bottom\");");
 
         checkOutput("deprecated-list.html", false,
                 "Prev",
-                "Next");
+                "Next",
+                "All&nbsp;Classes",
+                "<script type=\"text/javascript\"><!--\n"
+                + "  allClassesLink = document.getElementById(\"allclasses_navbar_top\");",
+                "<script type=\"text/javascript\"><!--\n"
+                + "  allClassesLink = document.getElementById(\"allclasses_navbar_bottom\");");
 
         checkOutput("index-all.html", false,
                 "Prev",
-                "Next");
+                "Next",
+                "<script type=\"text/javascript\"><!--\n"
+                + "  allClassesLink = document.getElementById(\"allclasses_navbar_top\");",
+                "<script type=\"text/javascript\"><!--\n"
+                + "  allClassesLink = document.getElementById(\"allclasses_navbar_bottom\");");
     }
 }
--- a/test/langtools/jdk/javadoc/doclet/testNavigation/TestNavigation.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/test/langtools/jdk/javadoc/doclet/testNavigation/TestNavigation.java	Mon Jul 02 10:41:20 2018 -0400
@@ -60,6 +60,7 @@
                 "-sourcepath", testSrc,
                 "pkg");
         checkExit(Exit.OK);
+        checkSubNav();
 
         checkOutput("pkg/A.html", true,
                 "<ul class=\"navList\" title=\"Navigation\">\n" +
@@ -117,6 +118,7 @@
                 "-sourcepath", testSrc,
                 "pkg");
         checkExit(Exit.OK);
+        checkSubNav();
 
         checkOutput("pkg/I.html", true,
                 // Test for 4664607
@@ -156,6 +158,7 @@
                 "-sourcepath", testSrc,
                 "pkg");
         checkExit(Exit.OK);
+        checkSubNav();
 
         checkOutput("pkg/A.html", true,
                 "<!-- ========= END OF TOP NAVBAR ========= -->\n"
@@ -189,6 +192,7 @@
                 "-sourcepath", testSrc,
                 "pkg");
         checkExit(Exit.OK);
+        checkSubNav();
 
         checkOutput("pkg/A.html", false,
                 "<!-- ========= END OF TOP NAVBAR ========= -->\n"
@@ -221,6 +225,7 @@
                 "-sourcepath", testSrc,
                 "pkg");
         checkExit(Exit.OK);
+        checkSubNav();
 
         checkOutput("pkg/A.html", false,
                 "<!-- ========= END OF TOP NAVBAR ========= -->\n"
@@ -329,4 +334,42 @@
                 "<li>Constr&nbsp;|&nbsp;</li>",
                 "<li>Method</li>");
     }
+
+    private void checkSubNav() {
+
+        checkOutput("pkg/A.html", false,
+                "All&nbsp;Classes",
+                "<script type=\"text/javascript\"><!--\n"
+                + "  allClassesLink = document.getElementById(\"allclasses_navbar_top\");",
+                "<script type=\"text/javascript\"><!--\n"
+                + "  allClassesLink = document.getElementById(\"allclasses_navbar_bottom\");");
+
+        checkOutput("pkg/C.html", false,
+                "All&nbsp;Classes",
+                "<script type=\"text/javascript\"><!--\n"
+                + "  allClassesLink = document.getElementById(\"allclasses_navbar_top\");",
+                "<script type=\"text/javascript\"><!--\n"
+                + "  allClassesLink = document.getElementById(\"allclasses_navbar_bottom\");");
+
+        checkOutput("pkg/E.html", false,
+                "All&nbsp;Classes",
+                "<script type=\"text/javascript\"><!--\n"
+                + "  allClassesLink = document.getElementById(\"allclasses_navbar_top\");",
+                "<script type=\"text/javascript\"><!--\n"
+                + "  allClassesLink = document.getElementById(\"allclasses_navbar_bottom\");");
+
+        checkOutput("pkg/I.html", false,
+                "All&nbsp;Classes",
+                "<script type=\"text/javascript\"><!--\n"
+                + "  allClassesLink = document.getElementById(\"allclasses_navbar_top\");",
+                "<script type=\"text/javascript\"><!--\n"
+                + "  allClassesLink = document.getElementById(\"allclasses_navbar_bottom\");");
+
+        checkOutput("pkg/package-summary.html", false,
+                "All&nbsp;Classes",
+                "<script type=\"text/javascript\"><!--\n"
+                + "  allClassesLink = document.getElementById(\"allclasses_navbar_top\");",
+                "<script type=\"text/javascript\"><!--\n"
+                + "  allClassesLink = document.getElementById(\"allclasses_navbar_bottom\");");
 }
+}
--- a/test/langtools/jdk/javadoc/doclet/testOrdering/TestOrdering.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/test/langtools/jdk/javadoc/doclet/testOrdering/TestOrdering.java	Mon Jul 02 10:41:20 2018 -0400
@@ -132,6 +132,7 @@
                     "--frames",
                     "pkg1");
             tester.checkExit(Exit.OK);
+            tester.checkFiles(false, "allclasses-noframe.html");
 
             checkClassUseOrdering("pkg1/class-use/UsedClass.html");
 
@@ -182,20 +183,6 @@
                     "<dd><code>iterator</code>&nbsp;in interface&nbsp;<code>java.util.Collection&lt;",
                     "<dd><code>iterator</code>&nbsp;in interface&nbsp;<code>java.lang.Iterable&lt;");
 
-            tester.checkOrder("allclasses-noframe.html",
-                    "pkg1/A.html\" title=\"class in pkg1",
-                    "pkg1/A.C.html\" title=\"class in pkg1",
-                    "pkg1/B.html\" title=\"class in pkg1",
-                    "pkg1/B.A.html\" title=\"class in pkg1",
-                    "pkg1/C1.html\" title=\"class in pkg1",
-                    "pkg1/C2.html\" title=\"class in pkg1",
-                    "pkg1/C3.html\" title=\"class in pkg1",
-                    "pkg1/C4.html\" title=\"class in pkg1",
-                    "pkg1/ImplementsOrdering.html\" title=\"interface in pkg1",
-                    "pkg1/MethodOrder.html\" title=\"class in pkg1",
-                    "pkg1/OverrideOrdering.html\" title=\"class in pkg1",
-                    "pkg1/UsedClass.html\" title=\"class in pkg1");
-
             tester.checkOrder("allclasses-frame.html",
                     "pkg1/A.html\" title=\"class in pkg1",
                     "pkg1/A.C.html\" title=\"class in pkg1",
--- a/test/langtools/jdk/javadoc/tool/api/basic/APITest.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/test/langtools/jdk/javadoc/tool/api/basic/APITest.java	Mon Jul 02 10:41:20 2018 -0400
@@ -190,7 +190,6 @@
      * Standard files generated by processing a documented class pkg.C.
      */
     protected static Set<String> standardExpectFiles = new HashSet<>(Arrays.asList(
-            "allclasses.html",
             "allclasses-index.html",
             "allpackages-index.html",
             "constant-values.html",
--- a/test/langtools/tools/javac/6330997/T6330997.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/test/langtools/tools/javac/6330997/T6330997.java	Mon Jul 02 10:41:20 2018 -0400
@@ -23,7 +23,7 @@
 
 /**
  * @test
- * @bug     6330997 7025789 8000961 8188870
+ * @bug     6330997 7025789 8000961 8188870 8193290
  * @summary javac should accept class files with major version of the next release
  * @author  Wei Tao
  * @modules jdk.compiler/com.sun.tools.javac.api
@@ -32,8 +32,8 @@
  *          jdk.compiler/com.sun.tools.javac.main
  *          jdk.compiler/com.sun.tools.javac.util
  * @clean T1 T2
- * @compile -source 10 -target 11 T1.java
- * @compile -source 10 -target 11 T2.java
+ * @compile -source 11 -target 12 T1.java
+ * @compile -source 11 -target 12 T2.java
  * @run main/othervm T6330997
  */
 
--- a/test/langtools/tools/javac/Diagnostics/compressed/T8012003b.out	Thu Jun 28 12:44:34 2018 -0400
+++ b/test/langtools/tools/javac/Diagnostics/compressed/T8012003b.out	Mon Jul 02 10:41:20 2018 -0400
@@ -3,6 +3,6 @@
 T8012003b.java:32:22: compiler.err.prob.found.req: (compiler.misc.incompatible.ret.type.in.lambda: (compiler.misc.conditional.target.cant.be.void))
 T8012003b.java:33:12: compiler.err.prob.found.req: (compiler.misc.invalid.mref: kindname.method, (compiler.misc.prob.found.req: (compiler.misc.inconvertible.types: java.lang.Integer, java.lang.String)))
 T8012003b.java:34:12: compiler.err.prob.found.req: (compiler.misc.incompatible.ret.type.in.mref: (compiler.misc.inconvertible.types: java.lang.String, java.lang.Integer))
-T8012003b.java:35:12: compiler.err.invalid.mref: kindname.method, (compiler.misc.cant.resolve.location.args: kindname.method, k, , , (compiler.misc.location: kindname.class, T8012003b, null))
+T8012003b.java:35:12: compiler.err.invalid.mref: kindname.method, (compiler.misc.cant.resolve.location.args: kindname.method, k, , java.lang.String, (compiler.misc.location: kindname.class, T8012003b, null))
 - compiler.note.compressed.diags
 6 errors
--- a/test/langtools/tools/javac/api/T6265137.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/test/langtools/tools/javac/api/T6265137.java	Mon Jul 02 10:41:20 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -52,7 +52,9 @@
             String srcdir = System.getProperty("test.src");
             Iterable<? extends JavaFileObject> files =
                 fm.getJavaFileObjectsFromFiles(Arrays.asList(new File(srcdir, "T6265137a.java")));
-            javac.getTask(null, fm, dl, Arrays.asList("-target","11"), null, files).call();
+            javac.getTask(null, fm, dl,
+                          Arrays.asList("-target", Integer.toString(Runtime.version().feature())),
+                          null, files).call();
         }
     }
 }
--- a/test/langtools/tools/javac/api/T6395981.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/test/langtools/tools/javac/api/T6395981.java	Mon Jul 02 10:41:20 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug     6395981 6458819 7025784 8028543 8028544 8193291
+ * @bug     6395981 6458819 7025784 8028543 8028544 8193291 8193292 8193292
  * @summary JavaCompilerTool and Tool must specify version of JLS and JVMS
  * @author  Peter von der Ah\u00e9
  * @modules java.compiler
@@ -31,7 +31,7 @@
  * @run main/fail T6395981
  * @run main/fail T6395981 RELEASE_3 RELEASE_5 RELEASE_6
  * @run main/fail T6395981 RELEASE_0 RELEASE_1 RELEASE_2 RELEASE_3 RELEASE_4 RELEASE_5 RELEASE_6
- * @run main T6395981 RELEASE_3 RELEASE_4 RELEASE_5 RELEASE_6 RELEASE_7 RELEASE_8 RELEASE_9 RELEASE_10 RELEASE_11
+ * @run main T6395981 RELEASE_3 RELEASE_4 RELEASE_5 RELEASE_6 RELEASE_7 RELEASE_8 RELEASE_9 RELEASE_10 RELEASE_11 RELEASE_12
  */
 
 import java.util.EnumSet;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/langtools/tools/javac/api/TestGetScopeResult.java	Mon Jul 02 10:41:20 2018 -0400
@@ -0,0 +1,155 @@
+/*
+ * Copyright (c) 2018, 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 8205418
+ * @summary Test the outcomes from Trees.getScope
+ * @modules jdk.compiler
+ */
+
+import java.io.IOException;
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.lang.model.element.Element;
+import javax.tools.JavaCompiler;
+import javax.tools.SimpleJavaFileObject;
+import javax.tools.StandardJavaFileManager;
+import javax.tools.ToolProvider;
+
+import com.sun.source.tree.CompilationUnitTree;
+import com.sun.source.tree.LambdaExpressionTree;
+import com.sun.source.tree.Scope;
+import com.sun.source.util.JavacTask;
+import com.sun.source.util.TreePath;
+import com.sun.source.util.TreePathScanner;
+import com.sun.source.util.Trees;
+
+import static javax.tools.JavaFileObject.Kind.SOURCE;
+
+public class TestGetScopeResult {
+    public static void main(String... args) throws IOException {
+        new TestGetScopeResult().run();
+    }
+
+    public void run() throws IOException {
+        String[] simpleLambda = {
+            "s:java.lang.String",
+            "i:Test.I",
+            "super:java.lang.Object",
+            "this:Test"
+        };
+        doTest("class Test { void test() { I i = s -> { }; } interface I { public void test(String s); } }",
+               simpleLambda);
+        doTest("class Test { void test() { I i = s -> { }; } interface I { public int test(String s); } }",
+               simpleLambda);
+        doTest("class Test { void test() { I i = s -> { }; } interface I { public String test(String s); } }",
+               simpleLambda);
+        doTest("class Test { void test() { I i; inv(s -> { }); } void inv(I i) { } interface I { public void test(String s); } }",
+               simpleLambda);
+        doTest("class Test { void test() { I i; inv(s -> { }); } void inv(I i) { } interface I { public int test(String s); } }",
+               simpleLambda);
+        doTest("class Test { void test() { I i; inv(s -> { }); } void inv(I i) { } interface I { public String test(String s); } }",
+               simpleLambda);
+        String[] dualLambda = {
+            "s:java.lang.String",
+            "i:Test.I1",
+            "super:java.lang.Object",
+            "this:Test",
+            "s:java.lang.CharSequence",
+            "i:Test.I1",
+            "super:java.lang.Object",
+            "this:Test"
+        };
+        doTest("class Test { void test() { I1 i; inv(s -> { }, s -> { }); } void inv(I1 i, I2 i) { } interface I1 { public String test(String s); } interface I2 { public void test(CharSequence s); } }",
+               dualLambda);
+        doTest("class Test { void test() { I1 i; inv(s -> { }, s -> { }); } void inv(I1 i, I2 i) { } interface I1 { public String test(String s); } interface I2 { public int test(CharSequence s); } }",
+               dualLambda);
+        String[] brokenType = {
+            "s:<any>",
+            "u:Undefined",
+            "super:java.lang.Object",
+            "this:Test"
+        };
+        doTest("class Test { void test() { Undefined u = s -> { }; } }",
+               brokenType);
+        String[] multipleCandidates1 = {
+            "s:<any>",
+            "super:java.lang.Object",
+            "this:Test"
+        };
+        doTest("class Test { void test() { cand1(s -> { }); } void cand1(I1 i) { } void cand1(I2 i) { } interface I1 { public String test(String s); } interface I2 { public int test(CharSequence s); } }",
+               multipleCandidates1);
+        String[] multipleCandidates2 = {
+            "s:java.lang.String",
+            "super:java.lang.Object",
+            "this:Test"
+        };
+        doTest("class Test { void test() { cand1(s -> { }); } void cand1(I1 i) { } void cand1(I2 i, int i) { } interface I1 { public String test(String s); } interface I2 { public int test(CharSequence s); } }",
+               multipleCandidates2);
+    }
+
+    public void doTest(String code, String... expected) throws IOException {
+        JavaCompiler c = ToolProvider.getSystemJavaCompiler();
+        try (StandardJavaFileManager fm = c.getStandardFileManager(null, null, null)) {
+            class MyFileObject extends SimpleJavaFileObject {
+                MyFileObject() {
+                    super(URI.create("myfo:///Test.java"), SOURCE);
+                }
+                @Override
+                public String getCharContent(boolean ignoreEncodingErrors) {
+                    return code;
+                }
+            }
+            JavacTask t = (JavacTask) c.getTask(null, fm, null, null, null, List.of(new MyFileObject()));
+            CompilationUnitTree cut = t.parse().iterator().next();
+            t.analyze();
+
+            List<String> actual = new ArrayList<>();
+
+            new TreePathScanner<Void, Void>() {
+                @Override
+                public Void visitLambdaExpression(LambdaExpressionTree node, Void p) {
+                    Scope scope = Trees.instance(t).getScope(new TreePath(getCurrentPath(), node.getBody()));
+                    while (scope.getEnclosingClass() != null) {
+                        for (Element el : scope.getLocalElements()) {
+                            actual.add(el.getSimpleName() + ":" +el.asType().toString());
+                        }
+                        scope = scope.getEnclosingScope();
+                    }
+                    return super.visitLambdaExpression(node, p);
+                }
+            }.scan(cut, null);
+
+            List<String> expectedList = List.of(expected);
+
+            if (!expectedList.equals(actual)) {
+                throw new IllegalStateException("Unexpected scope content: " + actual);
+            }
+        }
+    }
+
+}
+
--- a/test/langtools/tools/javac/classfiles/ClassVersionChecker.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/test/langtools/tools/javac/classfiles/ClassVersionChecker.java	Mon Jul 02 10:41:20 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 7157626 8001112 8188870 8173382
+ * @bug 7157626 8001112 8188870 8173382 8193290 8205619
  * @summary Test major version for all legal combinations for -source and -target
  * @author sgoel
  *
@@ -38,7 +38,7 @@
 public class ClassVersionChecker {
 
     int errors;
-    String[] jdk = {"", "1.6", "1.7", "1.8", "1.9", "1.10", "11"};
+    String[] jdk = {"", "1.6", "1.7", "1.8", "1.9", "1.10", "11", "12"};
     File javaFile = null;
 
     public static void main(String[] args) throws Throwable {
@@ -58,12 +58,12 @@
          * -1 => invalid combinations
          */
         int[][] ver =
-                {{55, -1, -1, -1, -1, -1, -1},
-                 {55, 50, 51, 52, 53, 54, 55},
-                 {55, -1, 51, 52, 53, 54, 55},
-                 {55, -1, -1, 52, 53, 54, 55},
-                 {55, -1, -1, -1, 53, 54, 55},
-                 {55, -1, -1, -1, -1, 54, 55}};
+            {{56, -1, -1, -1, -1, -1, -1, -1},
+             {56, 50, 51, 52, 53, 54, 55, 56},
+             {56, -1, 51, 52, 53, 54, 55, 56},
+             {56, -1, -1, 52, 53, 54, 55, 56},
+             {56, -1, -1, -1, 53, 54, 55, 56},
+             {56, -1, -1, -1, -1, 54, 55, 56}};
 
         // Loop to run all possible combinations of source/target values
         for (int i = 0; i< ver.length; i++) {
--- a/test/langtools/tools/javac/diags/examples/PreviewFeatureUse.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/test/langtools/tools/javac/diags/examples/PreviewFeatureUse.java	Mon Jul 02 10:41:20 2018 -0400
@@ -27,7 +27,7 @@
 //key: compiler.warn.preview.feature.use.plural
 //key: compiler.misc.feature.diamond
 //key: compiler.misc.feature.lambda
-//options: -Xlint:preview -XDforcePreview -source 11 --enable-preview
+//options: -Xlint:preview -XDforcePreview -source 12 --enable-preview
 
 import java.util.ArrayList;
 
--- a/test/langtools/tools/javac/diags/examples/PreviewFilename.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/test/langtools/tools/javac/diags/examples/PreviewFilename.java	Mon Jul 02 10:41:20 2018 -0400
@@ -25,7 +25,7 @@
 
 // key: compiler.note.preview.filename
 // key: compiler.note.preview.recompile
-// options: -XDforcePreview  -source 11 --enable-preview
+// options: -XDforcePreview  -source 12 --enable-preview
 
 import java.util.ArrayList;
 import java.util.List;
--- a/test/langtools/tools/javac/diags/examples/PreviewFilenameAdditional.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/test/langtools/tools/javac/diags/examples/PreviewFilenameAdditional.java	Mon Jul 02 10:41:20 2018 -0400
@@ -26,7 +26,7 @@
 // key: compiler.note.preview.filename.additional
 // key: compiler.warn.preview.feature.use
 // key: compiler.misc.feature.diamond
-// options: -Xlint:preview -Xmaxwarns 1 -XDforcePreview  -source 11 --enable-preview
+// options: -Xlint:preview -Xmaxwarns 1 -XDforcePreview  -source 12 --enable-preview
 
 import java.util.ArrayList;
 
--- a/test/langtools/tools/javac/diags/examples/PreviewPlural/PreviewPlural.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/test/langtools/tools/javac/diags/examples/PreviewPlural/PreviewPlural.java	Mon Jul 02 10:41:20 2018 -0400
@@ -25,7 +25,7 @@
 
 // key: compiler.note.preview.plural
 // key: compiler.note.preview.recompile
-// options: -XDforcePreview  -source 11 --enable-preview
+// options: -XDforcePreview  -source 12 --enable-preview
 
 import java.util.ArrayList;
 
--- a/test/langtools/tools/javac/lambda/BadRecovery.out	Thu Jun 28 12:44:34 2018 -0400
+++ b/test/langtools/tools/javac/lambda/BadRecovery.out	Mon Jul 02 10:41:20 2018 -0400
@@ -1,3 +1,4 @@
 BadRecovery.java:17:9: compiler.err.cant.apply.symbol: kindname.method, m, BadRecovery.SAM1, @11, kindname.class, BadRecovery, (compiler.misc.no.conforming.assignment.exists: (compiler.misc.incompatible.arg.types.in.lambda))
+BadRecovery.java:17:38: compiler.err.cant.resolve.location.args: kindname.method, someMemberOfReceiver, , @60, (compiler.misc.location.1: kindname.variable, receiver, java.lang.Object)
 BadRecovery.java:17:77: compiler.err.cant.resolve.location: kindname.variable, f, , , (compiler.misc.location: kindname.class, BadRecovery, null)
-2 errors
+3 errors
--- a/test/langtools/tools/javac/lib/JavacTestingAbstractProcessor.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/test/langtools/tools/javac/lib/JavacTestingAbstractProcessor.java	Mon Jul 02 10:41:20 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2018, 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
@@ -110,7 +110,7 @@
      * corresponding platform visitor type.
      */
 
-    @SupportedSourceVersion(RELEASE_11)
+    @SupportedSourceVersion(RELEASE_12)
     public static abstract class AbstractAnnotationValueVisitor<R, P> extends AbstractAnnotationValueVisitor9<R, P> {
 
         /**
@@ -121,7 +121,7 @@
         }
     }
 
-    @SupportedSourceVersion(RELEASE_11)
+    @SupportedSourceVersion(RELEASE_12)
     public static abstract class AbstractElementVisitor<R, P> extends AbstractElementVisitor9<R, P> {
         /**
          * Constructor for concrete subclasses to call.
@@ -131,7 +131,7 @@
         }
     }
 
-    @SupportedSourceVersion(RELEASE_11)
+    @SupportedSourceVersion(RELEASE_12)
     public static abstract class AbstractTypeVisitor<R, P> extends AbstractTypeVisitor9<R, P> {
         /**
          * Constructor for concrete subclasses to call.
@@ -141,7 +141,7 @@
         }
     }
 
-    @SupportedSourceVersion(RELEASE_11)
+    @SupportedSourceVersion(RELEASE_12)
     public static class ElementKindVisitor<R, P> extends ElementKindVisitor9<R, P> {
         /**
          * Constructor for concrete subclasses; uses {@code null} for the
@@ -162,7 +162,7 @@
         }
     }
 
-    @SupportedSourceVersion(RELEASE_11)
+    @SupportedSourceVersion(RELEASE_12)
     public static class ElementScanner<R, P> extends ElementScanner9<R, P> {
         /**
          * Constructor for concrete subclasses; uses {@code null} for the
@@ -181,7 +181,7 @@
         }
     }
 
-    @SupportedSourceVersion(RELEASE_11)
+    @SupportedSourceVersion(RELEASE_12)
     public static class SimpleAnnotationValueVisitor<R, P> extends SimpleAnnotationValueVisitor9<R, P> {
         /**
          * Constructor for concrete subclasses; uses {@code null} for the
@@ -202,7 +202,7 @@
         }
     }
 
-    @SupportedSourceVersion(RELEASE_11)
+    @SupportedSourceVersion(RELEASE_12)
     public static class SimpleElementVisitor<R, P> extends SimpleElementVisitor9<R, P> {
         /**
          * Constructor for concrete subclasses; uses {@code null} for the
@@ -223,7 +223,7 @@
         }
     }
 
-    @SupportedSourceVersion(RELEASE_11)
+    @SupportedSourceVersion(RELEASE_12)
     public static class SimpleTypeVisitor<R, P> extends SimpleTypeVisitor9<R, P> {
         /**
          * Constructor for concrete subclasses; uses {@code null} for the
@@ -244,7 +244,7 @@
         }
     }
 
-    @SupportedSourceVersion(RELEASE_11)
+    @SupportedSourceVersion(RELEASE_12)
     public static class TypeKindVisitor<R, P> extends TypeKindVisitor9<R, P> {
         /**
          * Constructor for concrete subclasses to call; uses {@code null}
--- a/test/langtools/tools/javac/parser/JavacParserTest.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/test/langtools/tools/javac/parser/JavacParserTest.java	Mon Jul 02 10:41:20 2018 -0400
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 7073631 7159445 7156633 8028235 8065753 8205913
+ * @bug 7073631 7159445 7156633 8028235 8065753 8205418 8205913
  * @summary tests error and diagnostics positions
  * @author  Jan Lahoda
  * @modules jdk.compiler/com.sun.tools.javac.api
@@ -51,6 +51,7 @@
 import com.sun.source.tree.WhileLoopTree;
 import com.sun.source.util.JavacTask;
 import com.sun.source.util.SourcePositions;
+import com.sun.source.util.TreePath;
 import com.sun.source.util.TreePathScanner;
 import com.sun.source.util.TreeScanner;
 import com.sun.source.util.Trees;
@@ -1037,6 +1038,105 @@
         assertEquals("the error message is not correct, actual: " + actualErrors, expectedErrors, actualErrors);
     }
 
+    @Test
+    void testTypeParamsWithoutMethod() throws IOException {
+        assert tool != null;
+
+        String code = "package test; class Test { /**javadoc*/ |public <T> |}";
+        String[] parts = code.split("\\|");
+
+        code = parts[0] + parts[1] + parts[2];
+
+        JavacTaskImpl ct = (JavacTaskImpl) tool.getTask(null, fm, null, null,
+                null, Arrays.asList(new MyFileObject(code)));
+        Trees trees = Trees.instance(ct);
+        SourcePositions pos = trees.getSourcePositions();
+        CompilationUnitTree cut = ct.parse().iterator().next();
+        ClassTree clazz = (ClassTree) cut.getTypeDecls().get(0);
+        ErroneousTree err = (ErroneousTree) clazz.getMembers().get(0);
+        MethodTree method = (MethodTree) err.getErrorTrees().get(0);
+
+        final int methodStart = parts[0].length();
+        final int methodEnd = parts[0].length() + parts[1].length();
+        assertEquals("testTypeParamsWithoutMethod",
+                methodStart, pos.getStartPosition(cut, method));
+        assertEquals("testTypeParamsWithoutMethod",
+                methodEnd, pos.getEndPosition(cut, method));
+
+        TreePath path2Method = new TreePath(new TreePath(new TreePath(cut), clazz), method);
+        String javadoc = trees.getDocComment(path2Method);
+
+        if (!"javadoc".equals(javadoc)) {
+            throw new AssertionError("Expected javadoc not found, actual javadoc: " + javadoc);
+        }
+    }
+
+    @Test
+    void testAnalyzeParensWithComma1() throws IOException {
+        assert tool != null;
+
+        String code = "package test; class Test { FI fi = |(s, |";
+        String[] parts = code.split("\\|", 3);
+
+        code = parts[0] + parts[1] + parts[2];
+
+        JavacTaskImpl ct = (JavacTaskImpl) tool.getTask(null, fm, null, null,
+                null, Arrays.asList(new MyFileObject(code)));
+        Trees trees = Trees.instance(ct);
+        SourcePositions pos = trees.getSourcePositions();
+        CompilationUnitTree cut = ct.parse().iterator().next();
+        boolean[] found = new boolean[1];
+
+        new TreeScanner<Void, Void>() {
+            @Override
+            public Void visitLambdaExpression(LambdaExpressionTree tree, Void v) {
+                found[0] = true;
+                int lambdaStart = parts[0].length();
+                int lambdaEnd = parts[0].length() + parts[1].length();
+                assertEquals("testAnalyzeParensWithComma1",
+                        lambdaStart, pos.getStartPosition(cut, tree));
+                assertEquals("testAnalyzeParensWithComma1",
+                        lambdaEnd, pos.getEndPosition(cut, tree));
+                return null;
+            }
+        }.scan(cut, null);
+
+        assertTrue("testAnalyzeParensWithComma1", found[0]);
+    }
+
+    @Test
+    void testAnalyzeParensWithComma2() throws IOException {
+        assert tool != null;
+
+        String code = "package test; class Test { FI fi = |(s, o)|";
+        String[] parts = code.split("\\|", 3);
+
+        code = parts[0] + parts[1] + parts[2];
+
+        JavacTaskImpl ct = (JavacTaskImpl) tool.getTask(null, fm, null, null,
+                null, Arrays.asList(new MyFileObject(code)));
+        Trees trees = Trees.instance(ct);
+        SourcePositions pos = trees.getSourcePositions();
+        CompilationUnitTree cut = ct.parse().iterator().next();
+        boolean[] found = new boolean[1];
+
+        new TreeScanner<Void, Void>() {
+            @Override
+            public Void visitLambdaExpression(LambdaExpressionTree tree, Void v) {
+                found[0] = true;
+                int lambdaStart = parts[0].length();
+                int lambdaEnd = parts[0].length() + parts[1].length();
+                assertEquals("testAnalyzeParensWithComma2",
+                        lambdaStart, pos.getStartPosition(cut, tree));
+                assertEquals("testAnalyzeParensWithComma2",
+                        lambdaEnd, pos.getEndPosition(cut, tree));
+                return null;
+            }
+        }.scan(cut, null);
+
+        assertTrue("testAnalyzeParensWithComma2", found[0]);
+    }
+
     void run(String[] args) throws Exception {
         int passed = 0, failed = 0;
         final Pattern p = (args != null && args.length > 0)
@@ -1082,6 +1182,12 @@
         }
     }
 
+    void assertTrue(String message, boolean bvalue) {
+        if (bvalue == false) {
+            fail(message);
+        }
+    }
+
     void assertEquals(String message, int i, long l) {
         if (i != l) {
             fail(message + ":" + i + ":" + l);
--- a/test/langtools/tools/javac/positions/TreeEndPosTest.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/test/langtools/tools/javac/positions/TreeEndPosTest.java	Mon Jul 02 10:41:20 2018 -0400
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 8017216 8019422 8019421 8054956
+ * @bug 8017216 8019422 8019421 8054956 8205418
  * @summary verify start and end positions
  * @modules java.compiler
  *          jdk.compiler
@@ -44,6 +44,13 @@
 import javax.tools.JavaFileObject;
 import javax.tools.SimpleJavaFileObject;
 import javax.tools.ToolProvider;
+import com.sun.source.tree.CompilationUnitTree;
+import com.sun.source.tree.Tree;
+import com.sun.source.tree.Tree.Kind;
+import com.sun.source.util.JavacTask;
+import com.sun.source.util.SourcePositions;
+import com.sun.source.util.TreeScanner;
+import com.sun.source.util.Trees;
 
 public class TreeEndPosTest {
     private static JavaFileManager getJavaFileManager(JavaCompiler compiler,
@@ -99,6 +106,15 @@
             js.endPos = end;
             return js;
         }
+
+        static JavaSource createFullJavaSource(String code) {
+            final String name = "Bug";
+            String[] parts = code.split("\\|", 3);
+            JavaSource js = new JavaSource(name + ".java", parts[0] + parts[1] + parts[2]);
+            js.startPos = parts[0].length();
+            js.endPos = parts[0].length() + parts[1].length();
+            return js;
+        }
     }
 
     public static void main(String... args) throws IOException {
@@ -107,6 +123,7 @@
         testUnresolvableAnnotationAttribute();
         testFinalVariableWithDefaultConstructor();
         testFinalVariableWithConstructor();
+        testWholeTextSpan();
     }
 
     static void testUninitializedVariable() throws IOException {
@@ -133,6 +150,10 @@
                 "{}"));
     }
 
+    static void testWholeTextSpan() throws IOException {
+        treeSpan(JavaSource.createFullJavaSource("|class X    |"));
+    }
+
     static void compile(JavaSource src) throws IOException {
         ByteArrayOutputStream ba = new ByteArrayOutputStream();
         PrintWriter writer = new PrintWriter(ba);
@@ -169,4 +190,46 @@
             }
         }
     }
+
+    static void treeSpan(JavaSource src) throws IOException {
+        ByteArrayOutputStream ba = new ByteArrayOutputStream();
+        PrintWriter writer = new PrintWriter(ba);
+        File tempDir = new File(".");
+        JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
+        DiagnosticCollector dc = new DiagnosticCollector();
+        try (JavaFileManager javaFileManager = getJavaFileManager(compiler, dc)) {
+            List<String> options = new ArrayList<>();
+            options.add("-cp");
+            options.add(tempDir.getPath());
+            options.add("-d");
+            options.add(tempDir.getPath());
+            options.add("--should-stop=at=GENERATE");
+
+            List<JavaFileObject> sources = new ArrayList<>();
+            sources.add(src);
+            JavacTask task = (JavacTask) compiler.getTask(writer, javaFileManager,
+                                                          dc, options, null,
+                                                          sources);
+            SourcePositions sp = Trees.instance(task).getSourcePositions();
+            boolean[] found = new boolean[1];
+            new TreeScanner<Void, Void>() {
+                CompilationUnitTree cut;
+                @Override
+                public Void scan(Tree tree, Void p) {
+                    if (tree == null)
+                        return null;
+                    if (tree.getKind() == Kind.COMPILATION_UNIT) {
+                        cut = (CompilationUnitTree) tree;
+                    }
+                    found[0] |= (sp.getStartPosition(cut, tree) == src.startPos) &&
+                                (sp.getEndPosition(cut, tree) == src.endPos);
+                    return super.scan(tree, p);
+                }
+            }.scan(task.parse(), null);
+
+            if (!found[0]) {
+                throw new IllegalStateException();
+            }
+        }
+    }
 }
--- a/test/langtools/tools/javac/preview/classReaderTest/Client.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/test/langtools/tools/javac/preview/classReaderTest/Client.java	Mon Jul 02 10:41:20 2018 -0400
@@ -2,9 +2,9 @@
  * @test /nodynamiccopyright/
  * @bug 8199194
  * @summary smoke test for --enabled-preview classreader support
- * @compile -XDforcePreview --enable-preview -source 11 Bar.java
+ * @compile -XDforcePreview --enable-preview -source 12 Bar.java
  * @compile/fail/ref=Client.nopreview.out -Xlint:preview -XDrawDiagnostics Client.java
- * @compile/fail/ref=Client.preview.out -Werror -Xlint:preview -XDrawDiagnostics --enable-preview -source 11 Client.java
+ * @compile/fail/ref=Client.preview.out -Werror -Xlint:preview -XDrawDiagnostics --enable-preview -source 12 Client.java
  */
 
 public class Client {
--- a/test/langtools/tools/javac/preview/classReaderTest/Client.nopreview.out	Thu Jun 28 12:44:34 2018 -0400
+++ b/test/langtools/tools/javac/preview/classReaderTest/Client.nopreview.out	Mon Jul 02 10:41:20 2018 -0400
@@ -1,2 +1,2 @@
-- compiler.err.preview.feature.disabled.classfile: Bar.class, 11
+- compiler.err.preview.feature.disabled.classfile: Bar.class, 12
 1 error
--- a/test/langtools/tools/javac/preview/classReaderTest/Client.preview.out	Thu Jun 28 12:44:34 2018 -0400
+++ b/test/langtools/tools/javac/preview/classReaderTest/Client.preview.out	Mon Jul 02 10:41:20 2018 -0400
@@ -1,4 +1,4 @@
-- compiler.warn.preview.feature.use.classfile: Bar.class, 11
+- compiler.warn.preview.feature.use.classfile: Bar.class, 12
 - compiler.err.warnings.and.werror
 1 error
 1 warning
--- a/test/langtools/tools/javac/profiles/ProfileOptionTest.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/test/langtools/tools/javac/profiles/ProfileOptionTest.java	Mon Jul 02 10:41:20 2018 -0400
@@ -1,5 +1,5 @@
-/*
- * Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
+ /*
+ * Copyright (c) 2011, 2018, 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
@@ -150,6 +150,7 @@
                     case JDK1_9:
                     case JDK1_10:
                     case JDK1_11:
+                    case JDK1_12:
                         if (p == Profile.DEFAULT)
                             break;
                         if (ise == null)
--- a/test/langtools/tools/javac/versions/Versions.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/test/langtools/tools/javac/versions/Versions.java	Mon Jul 02 10:41:20 2018 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 4981566 5028634 5094412 6304984 7025786 7025789 8001112 8028545 8000961 8030610 8028546 8188870 8173382 8173382
+ * @bug 4981566 5028634 5094412 6304984 7025786 7025789 8001112 8028545 8000961 8030610 8028546 8188870 8173382 8173382 8193290 8205619
  * @summary Check interpretation of -target and -source options
  * @modules java.compiler
  *          jdk.compiler
@@ -64,13 +64,15 @@
         String TC = "";
         System.out.println("Version.java: Starting");
 
-        check("55.0");
-        check("55.0", "-source 1.6");
-        check("55.0", "-source 1.7");
-        check("55.0", "-source 1.8");
-        check("55.0", "-source 1.9");
-        check("55.0", "-source 1.10");
-        check("55.0", "-source 11");
+        String LATEST_MAJOR_VERSION = "56.0";
+        check(LATEST_MAJOR_VERSION);
+        check(LATEST_MAJOR_VERSION, "-source 1.6");
+        check(LATEST_MAJOR_VERSION, "-source 1.7");
+        check(LATEST_MAJOR_VERSION, "-source 1.8");
+        check(LATEST_MAJOR_VERSION, "-source 1.9");
+        check(LATEST_MAJOR_VERSION, "-source 1.10");
+        check(LATEST_MAJOR_VERSION, "-source 11");
+        check(LATEST_MAJOR_VERSION, "-source 12");
 
         check_source_target(true, "50.0", "6", "6");
         check_source_target(true, "51.0", "6", "7");
@@ -93,6 +95,7 @@
         check_source_target(false, "55.0", "9", "11");
         check_source_target(false, "55.0", "10", "11");
         check_source_target(false, "55.0", "11", "11");
+        check_source_target(false, "56.0", "12", "12");
 
         checksrc16("-source 1.6");
         checksrc16("-source 6");
@@ -117,7 +120,9 @@
         checksrc110("-source 10", "-target 10");
         checksrc111("-source 11");
         checksrc111("-source 11", "-target 11");
-        checksrc111("-target 11");
+        checksrc112("-source 12");
+        checksrc112("-source 12", "-target 12");
+        checksrc112("-target 12");
 
         fail("-source 7", "-target 1.6", "Base.java");
         fail("-source 8", "-target 1.6", "Base.java");
@@ -128,6 +133,8 @@
         fail("-source 10", "-target 1.8", "Base.java");
         fail("-source 11", "-target 1.9", "Base.java");
         fail("-source 11", "-target 1.10", "Base.java");
+        fail("-source 12", "-target 1.10", "Base.java");
+        fail("-source 12", "-target 11", "Base.java");
 
         fail("-source 1.5", "-target 1.5", "Base.java");
         fail("-source 1.4", "-target 1.4", "Base.java");
@@ -248,6 +255,11 @@
         checksrc110(args);
     }
 
+    protected void checksrc112(String... args) {
+        printargs("checksrc112", args);
+        checksrc111(args);
+    }
+
     protected void pass(String... args) {
         printargs("pass", args);
 
--- a/test/langtools/tools/javadoc/api/basic/APITest.java	Thu Jun 28 12:44:34 2018 -0400
+++ b/test/langtools/tools/javadoc/api/basic/APITest.java	Mon Jul 02 10:41:20 2018 -0400
@@ -190,7 +190,6 @@
      * Standard files generated by processing a documented class pkg.C.
      */
     protected static Set<String> standardExpectFiles = new HashSet<>(Arrays.asList(
-            "allclasses.html",
             "allclasses-index.html",
             "allpackages-index.html",
             "constant-values.html",