From 100c802c6e4e38968f59fc59cc0eddf06e11b9f0 Mon Sep 17 00:00:00 2001 From: Goetz Lindenmaier Date: Mon, 18 Jul 2022 09:35:22 +0000 Subject: [PATCH] 8272815: jpackage --type rpm produces an error: Invalid or unsupported type: [null] Reviewed-by: asemenyuk Backport-of: a3ca770227065aecc2df9f9c711687fd8ec5d34e --- .../jdk/jpackage/internal/Arguments.java | 24 +++++++++---------- .../share/jdk/jpackage/tests/ErrorTest.java | 6 ++--- 2 files changed, 14 insertions(+), 16 deletions(-) diff --git a/src/jdk.jpackage/share/classes/jdk/jpackage/internal/Arguments.java b/src/jdk.jpackage/share/classes/jdk/jpackage/internal/Arguments.java index 46b63bceef2..a0b7c72de38 100644 --- a/src/jdk.jpackage/share/classes/jdk/jpackage/internal/Arguments.java +++ b/src/jdk.jpackage/share/classes/jdk/jpackage/internal/Arguments.java @@ -35,6 +35,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Optional; import java.util.Properties; import java.util.ResourceBundle; import java.util.jar.Attributes; @@ -635,15 +636,13 @@ private jdk.jpackage.internal.Bundler getPlatformBundler() { for (jdk.jpackage.internal.Bundler bundler : Bundlers.createBundlersInstance().getBundlers(bundleType)) { if (type == null) { - if (bundler.isDefault() - && bundler.supported(runtimeInstaller)) { - return bundler; - } + if (bundler.isDefault()) { + return bundler; + } } else { - if ((appImage || type.equalsIgnoreCase(bundler.getID())) - && bundler.supported(runtimeInstaller)) { - return bundler; - } + if (appImage || type.equalsIgnoreCase(bundler.getID())) { + return bundler; + } } } return null; @@ -652,8 +651,6 @@ private jdk.jpackage.internal.Bundler getPlatformBundler() { private void generateBundle(Map params) throws PackagerException { - boolean bundleCreated = false; - // the temp dir needs to be fetched from the params early, // to prevent each copy of the params (such as may be used for // additional launchers) from generating a separate temp dir when @@ -665,9 +662,10 @@ private void generateBundle(Map params) // determine what bundler to run jdk.jpackage.internal.Bundler bundler = getPlatformBundler(); - if (bundler == null) { - throw new PackagerException("ERR_InvalidInstallerType", - deployParams.getTargetFormat()); + if (bundler == null || !bundler.supported(runtimeInstaller)) { + String type = Optional.ofNullable(bundler).map(Bundler::getID).orElseGet( + () -> deployParams.getTargetFormat()); + throw new PackagerException("ERR_InvalidInstallerType", type); } Map localParams = new HashMap<>(params); diff --git a/test/jdk/tools/jpackage/share/jdk/jpackage/tests/ErrorTest.java b/test/jdk/tools/jpackage/share/jdk/jpackage/tests/ErrorTest.java index 95f7ff9a12d..8fcd3c8a730 100644 --- a/test/jdk/tools/jpackage/share/jdk/jpackage/tests/ErrorTest.java +++ b/test/jdk/tools/jpackage/share/jdk/jpackage/tests/ErrorTest.java @@ -32,7 +32,7 @@ /* * @test - * @summary jpackage application version testing + * @summary Test jpackage output for erroneous input * @library ../../../../helpers * @build jdk.jpackage.test.* * @modules jdk.jpackage/jdk.jpackage.internal @@ -44,7 +44,7 @@ /* * @test - * @summary jpackage application version testing + * @summary Test jpackage output for erroneous input * @library ../../../../helpers * @build jdk.jpackage.test.* * @modules jdk.jpackage/jdk.jpackage.internal @@ -96,7 +96,7 @@ public static Collection input() { {"Hello", new String[]{"--type", "invalid-type"}, null, - "Invalid or unsupported type:"}, + "Invalid or unsupported type: [invalid-type]"}, // no --input {"Hello", null,