[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug Report: libjaxb-java incompatible with libjakarta-activation-java in Java Module System



Date: Oct 10, 2025, 10:44
From: clort@tutanota.com
To: pkg-java-maintainers@lists.alioth.debian.org
Subject: Bug Report: libjaxb-java incompatible with libjakarta-activation-java in Java Module System


> Dear maintainers,
>
> I am writing to report a packaging incompatibility between the libjaxb-java and libjakarta-activation-java packages when used with a modern Java (9+) application that uses the module system. 
>
> System Information: 
>
>      Distribution: Devuan Daedalus
>      Package Version: libjaxb-java 2.3.0.1-10.1
>      Package Version: libjakarta-activation-java 2.0.0-1
>      Java Version: 
>         openjdk 17.0.16 2025-07-15
>         OpenJDK Runtime Environment (build 17.0.16+8-Debian-1deb12u1)
>         OpenJDK 64-Bit Server VM (build 17.0.16+8-Debian-1deb12u1, mixed mode, sharing)
>      
> Summary of the Problem:
> The jaxb-api.jar file provided by libjaxb-java declares a dependency on a module named java.activation. However, the jakarta-activation.jar provided by libjakarta-activation-java provides a module named jakarta.activation. This mismatch prevents any Java application from using both packages together with the --add-modules flag, resulting in a FindException. 
>
> Steps to Reproduce: 
>
>      On a clean Devuan Daedalus system, install the required packages:
> sudo apt install default-jdk libjaxb-java libjakarta-activation-java
>      Create a minimal test case. The following invocation fails:
>      	java --module-path /usr/share/java/jaxb-api.jar:/usr/share/java/jakarta-activation.jar --add-modules java.xml.bind,jakarta.activation -jar [any-jar-that-uses-jaxb]
>      
>      The command produces the following error:
>     Error occurred during initialization of boot layer
>     java.lang.module.FindException: Module java.activation not found, required by java.xml.bind
>      
> Root Cause Analysis:
> The module-info.class within /usr/share/java/jaxb-api.jar contains a requires java.base; and requires java.activation; clause. However, the module-info.class within /usr/share/java/jakarta-activation.jar defines its name as module jakarta.activation. The module system cannot resolve this dependency. 
>
> Workaround:
> The only way to use these libraries is to bypass the module system entirely and use the traditional classpath: 
>  
> java -cp /usr/share/java/jaxb-api.jar:/usr/share/java/jaxb-runtime.jar:/usr/share/java/jakarta-activation.jar:[app].jar [main.class]
>  
> This is not ideal as it prevents the use of modern Java features. 
>
> Suggested Fix:
> The libjaxb-java package should be rebuilt so its jaxb-api.jar module correctly depends on jakarta.activation instead of java.activation, aligning it with the Jakarta EE standard that the companion packages have adopted. 
>
> Thank you for your time and for maintaining Devuan. Please let me know if you need any further information or testing. 
>
> Best regards, 
> clort@tutanota.com
>


Reply to: