--ignore-signing-information do not suppress all errors

Alan Bateman Alan.Bateman at oracle.com
Mon May 8 06:24:51 UTC 2017


On 08/05/2017 00:06, Remi Forax wrote:

> Hi all,
> I wonder if it's an issue or if there is a rational for not suppressing this error when using --ignore-signing-information.
>
> I'm patching the compiler related modules of the jdk9 with the one from amber/langtools, so i know that i'm doing something borderline but i gently ask jlink to do not bother me with the hash signature.
>
> ...
> jlink --module-path ./target/main/artifact:./deps:/usr/jdk/jdk-9-b167/jmods
>        --add-modules jdk.policytool,jdk.charsets,jdk.pack,jdk.xml.dom,java.xml,jdk.deploy,java.datatransfer,java.jnlp,java.desktop,com.github.forax.pro.uberbooter,java.se,jdk.snmp,java.security.sasl,jdk.deploy.controlpanel,jdk.zipfs,java.base,jdk.crypto.ec,com.github.forax.pro.main,jdk.management.agent,jdk.jshell,jdk.editpad,oracle.desktop,jdk.jsobject,jdk.unsupported,java.smartcardio,jdk.scripting.nashorn,java.security.jgss,com.github.forax.pro.plugin.convention,jdk.dynalink,java.activation,java.sql,java.logging,jdk.jfr,jdk.internal.vm.ci,com.github.forax.pro.plugin.packager,jdk.packager.services,jdk.net,javafx.controls,jdk.internal.ed,jdk.compiler,jdk.naming.rmi,jdk.jconsole,jdk.internal.le,jdk.packager,jdk.jdwp.agent,jdk.internal.vm.compiler,com.github.forax.pro.daemon.imp,java.scripting,jdk.jartool,java.rmi,jdk.jdi,jdk.javaws,jdk.rmic,com.github.forax.pro.plugin.resolver,jdk.jstatd,jdk.httpserver,java.se.ee,jdk.jcmd,javafx.base,com.github.forax.pro.plugin.linker,com.github.forax.pro.plugin.compiler,jdk.plugin.dom,com.github.forax.pro.plugin.modulefixer,jdk.javadoc,jdk.xml.ws,java.sql.rowset,jdk.sctp,javafx.swing,jdk.jlink,jdk.scripting.nashorn.shell,oracle.net,java.xml.bind,java.compiler,javafx.graphics,javafx.fxml,jdk.plugin,javafx.media,jdk.accessibility,jdk.security.jgss,javafx.web,com.github.forax.pro.plugin.uberpackager,jdk.hotspot.agent,javafx.deploy,java.xml.crypto,jdk.incubator.httpclient,jdk.plugin.server,jdk.crypto.cryptoki,java.naming,java.prefs,jdk.internal.opt,jdk.attach,java.transaction,java.xml.ws,java.xml.ws.annotation,java.management,jdk.xml.bind,jdk.internal.jvmstat,java.instrument,jdk.management,jdk.security.auth,jdk.jdeps,jdk.aot,java.corba,java.management.rmi,jdk.naming.dns,jdk.localedata
>        --launcher pro=com.github.forax.pro.main/com.github.forax.pro.main.Main
>        --compress 0
>        --ignore-signing-information
>        --output ./target/image
> Error: Hash of jdk.javadoc (5b3a628bce2aad807392ea8a3f2ce69a652e885e33db586694b47fcf6f5ebf52) differs to expected hash (6bdf7f26f72c9f102c5052f8ddf68a80a4b18f997a16e56805e3acc7347469b5) recorded in java.base
>
`--ignore-signing-information` is used when linking signed modular JARs 
into a run-time image and is nothing to do with the integrity hashes 
that are used to avoid mixing tied modules from different builds.

If you've patched jdk.compiler, jdk.javadoc, and other modules in your 
jdk9/dev or jigsaw/jake build then I wouldn't expect any issues. I'm 
guessing therefore that you've patched the packaged modules or less 
re-created a subset of the JMOD files. When you do that then the hashes 
stored in java.base will not match. If you re-create java.base.jmod then 
it will generate the hashes to match the updated modules. Alternatively 
for your local testing you could just drop the ModuleHashes class file 
attribute.

-Alan





More information about the jigsaw-dev mailing list