From 3883078d21db421f298fdfd9678d993b52f1dc2d Mon Sep 17 00:00:00 2001 From: Athijegannathan Sundararajan Date: Wed, 5 Dec 2018 19:22:04 +0530 Subject: [PATCH] 8206962: jlink --release-info=del throws NPE if no keys are specified Reviewed-by: alanb --- .../jlink/internal/plugins/ReleaseInfoPlugin.java | 6 +++++- test/jdk/tools/jlink/JLinkTest.java | 11 +++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/ReleaseInfoPlugin.java b/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/ReleaseInfoPlugin.java index 3a1dcf93af4..b0be07116fc 100644 --- a/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/ReleaseInfoPlugin.java +++ b/src/jdk.jlink/share/classes/jdk/tools/jlink/internal/plugins/ReleaseInfoPlugin.java @@ -108,7 +108,11 @@ public final class ReleaseInfoPlugin implements Plugin { case "del": { // --release-info del:keys=openjdk,java_version - Utils.parseList(config.get(KEYS)).stream().forEach((k) -> { + String keys = config.get(KEYS); + if (keys == null || keys.isEmpty()) { + throw new IllegalArgumentException("No key specified for delete"); + } + Utils.parseList(keys).stream().forEach((k) -> { release.remove(k); }); } diff --git a/test/jdk/tools/jlink/JLinkTest.java b/test/jdk/tools/jlink/JLinkTest.java index 20af6ecc269..1baf70bb03c 100644 --- a/test/jdk/tools/jlink/JLinkTest.java +++ b/test/jdk/tools/jlink/JLinkTest.java @@ -44,6 +44,7 @@ import tests.JImageGenerator; * @summary Test image creation * @bug 8189777 * @bug 8194922 + * @bug 8206962 * @author Jean-Francois Denise * @requires (vm.compMode != "Xcomp" & os.maxMemory >= 2g) * @library ../lib @@ -344,6 +345,16 @@ public class JLinkTest { .option("--help") .call().assertSuccess(); } + + { + String imageDir = "bug8206962"; + JImageGenerator.getJLinkTask() + .modulePath(helper.defaultModulePath()) + .output(helper.createNewImageDir(imageDir)) + .addMods("java.base") + .option("--release-info=del") + .call().assertFailure("Error: No key specified for delete"); + } } private static void testCompress(Helper helper, String moduleName, String... userOptions) throws IOException {