RFR: 8351073: [macos] jpackage produces invalid Java runtime DMG bundles [v5]

Alexander Matveev almatvee at openjdk.org
Wed Jul 16 02:01:57 UTC 2025


On Tue, 15 Jul 2025 02:31:03 GMT, Alexey Semenyuk <asemenyuk at openjdk.org> wrote:

>> [19:14:45.620] jdk.jpackage.internal.model.PackagerException: java.lang.ClassCastException: class com.sun.proxy.jdk.proxy1.$Proxy0 cannot be cast to class jdk.jpackage.internal.MacApplicationLayout (com.sun.proxy.jdk.proxy1.$Proxy0 is in module jdk.proxy1 of loader 'app'; jdk.jpackage.internal.MacApplicationLayout is in module jdk.jpackage of loader 'app')
>> 	at jdk.jpackage/jdk.jpackage.internal.PackagingPipeline.execute(PackagingPipeline.java:487)
>> 	at jdk.jpackage/jdk.jpackage.internal.PackagingPipeline.execute(PackagingPipeline.java:68)
>> 	at jdk.jpackage/jdk.jpackage.internal.PackagerBuilder.execute(PackagerBuilder.java:67)
>> 	at jdk.jpackage/jdk.jpackage.internal.MacDmgPackager$Builder.execute(MacDmgPackager.java:81)
>> 	at jdk.jpackage/jdk.jpackage.internal.MacDmgBundler.execute(MacDmgBundler.java:80)
>> 	at jdk.jpackage/jdk.jpackage.internal.Arguments.executeBundler(Arguments.java:741)
>> 	at jdk.jpackage/jdk.jpackage.internal.Arguments.generateBundle(Arguments.java:702)
>> 	at jdk.jpackage/jdk.jpackage.internal.Arguments.processArguments(Arguments.java:553)
>> 	at jdk.jpackage/jdk.jpackage.main.Main.execute(Main.java:93)
>> 	at jdk.jpackage/jdk.jpackage.main.Main.main(Main.java:54)
>> Caused by: java.lang.ClassCastException: class com.sun.proxy.jdk.proxy1.$Proxy0 cannot be cast to class jdk.jpackage.internal.MacApplicationLayout (com.sun.proxy.jdk.proxy1.$Proxy0 is in module jdk.proxy1 of loader 'app'; jdk.jpackage.internal.MacApplicationLayout is in module jdk.jpackage of loader 'app')
>> 	at jdk.jpackage/jdk.jpackage.internal.MacPackagingPipeline.signApplicationBundle(MacPackagingPipeline.java:367)
>> 	at jdk.jpackage/jdk.jpackage.internal.PackagingPipeline$DefaultTaskContext.execute(PackagingPipeline.java:571)
>> 	at jdk.jpackage/jdk.jpackage.internal.MacPackagingPipeline$TaskContextProxy.execute(MacPackagingPipeline.java:541)
>> 	at jdk.jpackage/jdk.jpackage.internal.PackagingPipeline.lambda$createTask$0(PackagingPipeline.java:604)
>> 	at jdk.jpackage/jdk.jpackage.internal.pipeline.TaskPipelineBuilder$SequentialWrapperTask.call(TaskPipelineBuilder.java:130)
>> 	at jdk.jpackage/jdk.jpackage.internal.pipeline.TaskPipelineBuilder$SequentialWrapperTask.call(TaskPipelineBuilder.java:121)
>> 	at jdk.jpackage/jdk.jpackage.internal.PackagingPipeline.execute(PackagingPipeline.java:480)
>> 	... 9 more
>> java.lang.ClassCastException: class com.sun.proxy.jdk.proxy1.$Proxy0 cannot be cast to class jdk.jpackage.internal.MacApplicationLayout (com.sun.proxy.jdk.proxy1.$P...
>
> Try to change the signature from
> 
> private static void signApplicationBundle(AppImageBuildEnv<MacApplication, MacApplicationLayout> env) throws IOException
> 
> 
> to
> 
> private static void signApplicationBundle(AppImageBuildEnv<MacApplication, AppImageLayout> env) throws IOException
> 
> 
> I guess if you change the signature or the original `sign()` from:
> 
> void sign(AppImageBuildEnv<MacApplication, MacApplicationLayout> env) throws IOException
> 
> to
> 
> void sign(AppImageBuildEnv<MacApplication, AppImageLayout> env) throws IOException
> 
> and use it instead of `signRuntimeBundle()` and `signApplicationBundle()` it will work too.

Fixed.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/26173#discussion_r2208795140


More information about the core-libs-dev mailing list