diff --git a/jdk/make/src/classes/build/tools/taglet/ExtLink.java b/jdk/make/src/classes/build/tools/taglet/ExtLink.java
index ad042160756..34eaed59f28 100644
--- a/jdk/make/src/classes/build/tools/taglet/ExtLink.java
+++ b/jdk/make/src/classes/build/tools/taglet/ExtLink.java
@@ -56,7 +56,7 @@ public class ExtLink implements Taglet {
static final String TAG_NAME = "extLink";
- static final String URL = "https://www.oracle.com/pls/topic/lookup?ctx=javase9&id=";
+ static final String URL = "https://www.oracle.com/pls/topic/lookup?ctx=javase9&id=";
static final Pattern TAG_PATTERN = Pattern.compile("(\\s*)(?\\w+)(\\s+)(?.*)");
diff --git a/jdk/src/java.base/share/classes/java/io/File.java b/jdk/src/java.base/share/classes/java/io/File.java
index 6e77026c6c1..e9959b59acd 100644
--- a/jdk/src/java.base/share/classes/java/io/File.java
+++ b/jdk/src/java.base/share/classes/java/io/File.java
@@ -923,6 +923,12 @@ public class File
* java.nio.file.Files#readAttributes(Path,Class,LinkOption[])
* Files.readAttributes} method may be used.
*
+ * @apiNote
+ * While the unit of time of the return value is milliseconds,
+ * the granularity of the value depends on the underlying
+ * file system and may be larger. For example, some
+ * file systems use time stamps in units of seconds.
+ *
* @return A long value representing the time the file was
* last modified, measured in milliseconds since the epoch
* (00:00:00 GMT, January 1, 1970), or 0L if the
diff --git a/jdk/src/java.base/share/classes/javax/crypto/Cipher.java b/jdk/src/java.base/share/classes/javax/crypto/Cipher.java
index cf288f5f1da..4068483470c 100644
--- a/jdk/src/java.base/share/classes/javax/crypto/Cipher.java
+++ b/jdk/src/java.base/share/classes/javax/crypto/Cipher.java
@@ -137,6 +137,7 @@ import sun.security.jca.*;
*
{@code AES/CBC/PKCS5Padding} (128)
*
{@code AES/ECB/NoPadding} (128)
*
{@code AES/ECB/PKCS5Padding} (128)
+ *
{@code AES/GCM/NoPadding} (128)
*
{@code DES/CBC/NoPadding} (56)
*
{@code DES/CBC/PKCS5Padding} (56)
*
{@code DES/ECB/NoPadding} (56)
diff --git a/jdk/src/java.base/share/native/libjli/args.c b/jdk/src/java.base/share/native/libjli/args.c
index adbff674bf9..9eb2317de6c 100644
--- a/jdk/src/java.base/share/native/libjli/args.c
+++ b/jdk/src/java.base/share/native/libjli/args.c
@@ -456,6 +456,11 @@ jboolean JLI_AddArgsFromEnvVar(JLI_List args, const char *var_name) {
env++;
}
+ // Trailing space
+ if (*env == '\0') {
+ break;
+ }
+
arg = p;
while (*env != '\0' && !isspace(*env)) {
if (*env == '"' || *env == '\'') {
diff --git a/jdk/src/java.base/share/native/libjli/emessages.h b/jdk/src/java.base/share/native/libjli/emessages.h
index c5ae8d74b5e..2f94a60bce8 100644
--- a/jdk/src/java.base/share/native/libjli/emessages.h
+++ b/jdk/src/java.base/share/native/libjli/emessages.h
@@ -36,7 +36,7 @@
#define JNI_ERROR "Error: A JNI error has occurred, please check your installation and try again"
#define JNI_ERROR1 "Error: can't find JNI interfaces in: %s"
-#define ARG_INFO_ENVVAR "NOTE: Picked up the following options via %s:\n %s"
+#define ARG_INFO_ENVVAR "NOTE: Picked up %s: %s"
#define ARG_WARN "Warning: %s option is no longer supported."
#define ARG_ERROR1 "Error: %s requires class path specification"
diff --git a/jdk/test/java/nio/channels/Selector/SelectAndClose.java b/jdk/test/java/nio/channels/Selector/SelectAndClose.java
index 9c1673b7f40..747afbedbae 100644
--- a/jdk/test/java/nio/channels/Selector/SelectAndClose.java
+++ b/jdk/test/java/nio/channels/Selector/SelectAndClose.java
@@ -23,7 +23,6 @@
/* @test
* @bug 5004077
- * @key intermittent
* @summary Check blocking of select and close
*/
diff --git a/jdk/test/java/nio/channels/Selector/WakeupAfterClose.java b/jdk/test/java/nio/channels/Selector/WakeupAfterClose.java
index da4c806460e..92b1aef5c6d 100644
--- a/jdk/test/java/nio/channels/Selector/WakeupAfterClose.java
+++ b/jdk/test/java/nio/channels/Selector/WakeupAfterClose.java
@@ -24,7 +24,6 @@
/* @test
* @bug 6524172
* @summary Invoking wakeup on closed Selector can throw NPE if close resets interrupt status
- * @key intermittent
*/
import java.io.IOException;
diff --git a/jdk/test/javax/sound/sampled/Clip/ClipCloseLoss.java b/jdk/test/javax/sound/sampled/Clip/ClipCloseLoss.java
index 24226ddd125..56b046163b0 100644
--- a/jdk/test/javax/sound/sampled/Clip/ClipCloseLoss.java
+++ b/jdk/test/javax/sound/sampled/Clip/ClipCloseLoss.java
@@ -36,6 +36,7 @@ import javax.sound.sampled.Mixer;
* @bug 4946913
* @summary DirectClip doesn't kill the thread correctly, sometimes
* @run main/othervm ClipCloseLoss
+ * @key intermittent
*/
public class ClipCloseLoss {
static int frameCount = 441000; // lets say 10 seconds
diff --git a/jdk/test/tools/launcher/ArgsEnvVar.java b/jdk/test/tools/launcher/ArgsEnvVar.java
index fe18e1d256c..5dd63c84cb4 100644
--- a/jdk/test/tools/launcher/ArgsEnvVar.java
+++ b/jdk/test/tools/launcher/ArgsEnvVar.java
@@ -23,7 +23,7 @@
/**
* @test
- * @bug 8170832
+ * @bug 8170832 8180447
* @summary Arguments passed in environment variable
* @build TestHelper
* @run main ArgsEnvVar
@@ -224,6 +224,21 @@ public class ArgsEnvVar extends TestHelper {
verifyOptions(List.of("-p", "?", "-jar", "test.jar", "one", "two"), tr);
}
+ @Test
+ public void testTrailingSpaces() {
+ env.put(JDK_JAVA_OPTIONS, "--add-exports java.base/jdk.internal.misc=ALL-UNNAMED ");
+ TestResult tr = doExec(env, javaCmd, "-jar", "test.jar");
+ verifyOptions(List.of("--add-exports", "java.base/jdk.internal.misc=ALL-UNNAMED", "-jar", "test.jar"), tr);
+
+ env.put(JDK_JAVA_OPTIONS, "--class-path ' '");
+ tr = doExec(env, javaCmd, "-jar", "test.jar");
+ verifyOptions(List.of("--class-path", " ", "-jar", "test.jar"), tr);
+
+ env.put(JDK_JAVA_OPTIONS, " --add-exports java.base/jdk.internal.misc=ALL-UNNAMED ");
+ tr = doExec(env, javaCmd, "-jar", "test.jar");
+ verifyOptions(List.of("--add-exports", "java.base/jdk.internal.misc=ALL-UNNAMED", "-jar", "test.jar"), tr);
+ }
+
public static void main(String... args) throws Exception {
init();
ArgsEnvVar a = new ArgsEnvVar();
@@ -236,4 +251,3 @@ public class ArgsEnvVar extends TestHelper {
}
}
}
-