Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8152143

jlink --include-locales should gracefully detect certain user error

XMLWordPrintable

    • b112
    • Verified

      1. If nothing matches, it removes all localedata. Per our discussion, —-include-locale should at least expect some remaining locales. You can check if only the provider classes are remained.

      $ jlink --output /tmp/myimage --modulepath jmods --addmods jdk.localedata --include-locales xyz

      $ jimage list /tmp/myimage/lib/modules | grep jdk.localedata
      /jdk.localedata/module-info.class
      /jdk.localedata/sun/util/resources/cldr/provider/CLDRLocaleDataMetaInfo.class
      /jdk.localedata/sun/util/resources/provider/LocaleDataProvider.class
      /jdk.localedata/sun/util/resources/provider/NonBaseLocaleDataMetaInfo.class
      /jdk.localedata/sun/util/resources/provider/SupplementaryLocaleDataProvider.class


      2. I had a typo “zh_HK” instead of “zh-HK”. It throws IAE. It should be caught and throw PluginException so that it can issue the error message gracefully.

      $ jlink --output /tmp/myimage --modulepath jmods --addmods jdk.localedata --include-locales zh_HK

      An exception has occurred in jlink. Please file a bug at the Java Bug Database (http://bugreport.java.com/bugreport/) after checking the database for duplicates. Include your program and the following diagnostic in your report. Thank you.
      java.lang.IllegalArgumentException: range=zh_hk
      at java.util.Locale$LanguageRange.<init>(java.base@9-internal/Locale.java:2908)
      at java.util.Locale$LanguageRange.<init>(java.base@9-internal/Locale.java:2867)
      at java.util.stream.ReferencePipeline$3$1.accept(java.base@9-internal/ReferencePipeline.java:195)
      at java.util.Spliterators$ArraySpliterator.forEachRemaining(java.base@9-internal/Spliterators.java:948)
      at java.util.stream.AbstractPipeline.copyInto(java.base@9-internal/AbstractPipeline.java:484)
      at java.util.stream.AbstractPipeline.wrapAndCopyInto(java.base@9-internal/AbstractPipeline.java:474)
      at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(java.base@9-internal/ReduceOps.java:913)
      at java.util.stream.AbstractPipeline.evaluate(java.base@9-internal/AbstractPipeline.java:234)
      at java.util.stream.ReferencePipeline.collect(java.base@9-internal/ReferencePipeline.java:511)
      at jdk.tools.jlink.internal.plugins.IncludeLocalesPlugin.configure(jdk.jlink@9-internal/IncludeLocalesPlugin.java:160)
      at jdk.tools.jlink.plugin.Plugin.configure(jdk.jlink@9-internal/Plugin.java:216)
      at jdk.tools.jlink.internal.TaskHelper$PluginsOptions.getPluginsConfig(jdk.jlink@9-internal/TaskHelper.java:359)
      at jdk.tools.jlink.internal.TaskHelper$PluginsOptions.access$1000(jdk.jlink@9-internal/TaskHelper.java:154)
      at jdk.tools.jlink.internal.TaskHelper.getPluginsConfig(jdk.jlink@9-internal/TaskHelper.java:681)
      at jdk.tools.jlink.internal.JlinkTask.createImage(jdk.jlink@9-internal/JlinkTask.java:340)
      at jdk.tools.jlink.internal.JlinkTask.run(jdk.jlink@9-internal/JlinkTask.java:212)
      at jdk.tools.jlink.internal.Main.main(jdk.jlink@9-internal/Main.java:33)

            naoto Naoto Sato
            mchung Mandy Chung (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: