On Tue, 16 Dec 2025 22:43:13 GMT, Alexander Matveev <[email protected]>
wrote:
>> Alexey Semenyuk has updated the pull request incrementally with one
>> additional commit since the last revision:
>>
>> Fix test failure; Fix whitespaces
>
> src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/SigningIdentityBuilder.java
> line 152:
>
>> 150: var errMsg = I18N.format("error.cert.not.found",
>> certificateSelector.signingIdentities().getFirst(),
>> 151: keychain.map(Keychain::name).orElse(""));
>> 152: Log.error(I18N.format("message.error-header", errMsg));
>
> Looks like it is only place which uses `message.error-header` directly. Do
> you know why?
This is because ErrorTest expects two error messages when a certificate cannot
be found [1].
One is `error.cert.not.found`, and another one is
`error.explicit-sign-no-cert`.
It has been like this all the time.
Test cases for these keys were added in
[JDK-8355328](https://bugs.openjdk.org/browse/JDK-8355328). Back in the day,
these errors were reported from different locations. When
`SigningIdentityBuilder.java` was added, the same function started reporting
both errors.
We can report only a single exception to the top-level error handler. So one
error is reported in place, and another is reported with an exception.
I can see now that `error.cert.not.found`, and `error.explicit-sign-no-cert`
are duplicating each other. We need only one of them. I filed
[JDK-83738330](https://bugs.openjdk.org/browse/JDK-83738330) to do this
follow-up clean-up.
[1]
https://github.com/openjdk/jdk/blob/87d881fee01c42f5847031a63d50873b3d438f7a/test/jdk/tools/jpackage/share/ErrorTest.java#L703
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/28833#discussion_r2625089412