[
https://jira.qos.ch/browse/SLF4J-407?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18788#comment-18788
]
Ceki Gülcü commented on SLF4J-407:
----------------------------------
As you observed, under Java 9, when two or more slf4j provider modules are
present on the module path, the following error message is output by the JVM:
{code}
# java -p
target/classes\;lib/slf4j-api-1.8.0-alpha2.jar\;lib/slf4j-simple-1.8.0-alpha2.jar\;lib/slf4j-jdk14-1.8.0-alpha2.jar
-m org.inttest/pkg.Main
Error occurred during initialization of boot layer
java.lang.reflect.LayerInstantiationException: Package org.slf4j.impl in both
module org.slf4j.jul and module org.slf4j.simple
{code}
Note that the providers are of version 1.8.0-alpah2.
The error occurring within the JVM boot phase, slf4j-api cannot print any
relevant warning message.
> Jigsaw modules contain clashing package
> ---------------------------------------
>
> Key: SLF4J-407
> URL: https://jira.qos.ch/browse/SLF4J-407
> Project: SLF4J
> Issue Type: Bug
> Components: Implementations
> Affects Versions: 1.8.0-alpha2
> Reporter: Stephen Colebourne
> Assignee: Ceki Gülcü
> Fix For: 1.8.0-alpha3
>
>
> Looking at the slf4j-jdk14 and slf4j-nop artifacts, they both appear to
> contain the package `org.slf4j.impl`. Jigsaw will refuse to load two modules
> that contain the same package, so this will be a problem.
> I know that SLF4J does not intend users to load both of these modules at the
> same time. But the current setup means that it will be the JPMS runtime that
> rejects it, meaning that there is no chance for SLF4J to output a helpful
> message (as I believe it does today).
> The solution to this would appear to be to move the `org.slf4j.impl` package
> to `org.slf4j.jul.impl` and `org.slf4j.nop.impl`. As the impl package is not
> exported, this should not affect any user code (except code that would have
> been affected anyway).
> I imagine this affects other slf4j artifacts.
> I also note that [this
> module-info.java|https://github.com/qos-ch/slf4j/blob/1_8_0-SNAPSHOT/slf4j-jdk14/src/main/java/module-info.java]
> exports the `org.slf4j.jul` package, which seems unnecessary (simple and nop
> do not export their package).
> See [here|http://blog.joda.org/2017/04/java-se-9-jpms-module-naming.html] for
> more information on naming.
--
This message was sent by Atlassian JIRA
(v7.3.1#73012)
_______________________________________________
slf4j-dev mailing list
[email protected]
http://mailman.qos.ch/mailman/listinfo/slf4j-dev