--- 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 Packages</a></li>\n"
+ "<li><a href=\"module-overview-frame.html\" target=\"packageListFrame\">All 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 Classes</a></li>\n"
+ "</ul>\n");
@@ -145,7 +145,7 @@
+ "<li><a href=\"../overview-frame.html\" target=\"packageListFrame\">All Packages</a></li>\n"
+ "<li><a href=\"../module-overview-frame.html\" target=\"packageListFrame\">All 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 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 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 Module",
- "Next Module");
+ "Next Module",
+ "All 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 Package",
- "Next Package");
+ "Next Package",
+ "All 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 Class",
- "Next Class");
+ "Next Class",
+ "All 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 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 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 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 | </li>",
"<li>Method</li>");
}
+
+ private void checkSubNav() {
+
+ checkOutput("pkg/A.html", false,
+ "All 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 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 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 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 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> in interface <code>java.util.Collection<",
"<dd><code>iterator</code> in interface <code>java.lang.Iterable<");
- 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",