Arclight
Arclight copied to clipboard
Plugins fail to load if JMX is enabled
I have confirmed that ...
- [X] Arclight is up to date
- [X] all dependencies are installed
- [X] all plugins and mods are up to date
- [X] unable to reproduce in Spigot
- [X] unable to reproduce in Forge
Arclight version
arclight-forge-1.16.5-1.0.24-SNAPSHOT
OS & Java versions
$ uname -a
Linux e7a980bb-6ea9-4ec0-b6d6-53b353670b89 4.19.0-18-amd64 #1 SMP Debian 4.19.208-1 (2021-09-29) x86_64 GNU/Linux`
$ java -version
openjdk version "11.0.13" 2021-10-19 OpenJDK Runtime Environment 18.9 (build 11.0.13+8) OpenJDK 64-Bit Server VM 18.9 (build 11.0.13+8, mixed mode, sharing)
Plugins and Mods
Any combination of mods/plugins
However, we're using Pixelmon (hence Java 11)
Description
If Java Management Extensions (JMX) are enabled, all plugins fail to load with a null pointer.
Step to reproduce
-
java -Xms8G -Xmx8G -Dcom.sun.management.jmxremote.port=7091 -Dcom.sun.management.jmxremote.authenticate=false -jar arclight-forge-1.16.5-1.0.24-SNAPSHOT.jar
- Observe plugins fail to load
- Remove the two
jmxremote
arguments. - Observe plugins load successfully
Logs
Jul 18, 2022 11:37:11 AM org.bukkit.craftbukkit.v1_16_R3.CraftServer loadPlugins
SEVERE: null initializing <Plugin> (Is it up to date?)
java.lang.NullPointerException
at io.izzel.arclight.common.mod.util.log.ArclightPluginLogger.log(ArclightPluginLogger.java:22)
at java.logging/java.util.logging.Logger.doLog(Logger.java:1006)
at java.logging/java.util.logging.Logger.log(Logger.java:1029)
at java.logging/java.util.logging.Logger.info(Logger.java:1802)
at org.bukkit.craftbukkit.v1_16_R3.CraftServer.loadPlugins(CraftServerMixin.java:385)
at net.minecraft.server.dedicated.DedicatedServer.handler$zpp000$arclight$loadPlugins(DedicatedServerMixin.java:637)
at net.minecraft.server.dedicated.DedicatedServer.func_71197_b(DedicatedServerMixin.java:160)
at net.minecraft.server.MinecraftServer.func_240802_v_(MinecraftServerMixin.java:1861)
at net.minecraft.server.MinecraftServer.func_240783_a_(MinecraftServerMixin.java:232)
at java.base/java.lang.Thread.run(Thread.java:829)
Server pack link (Optional)
No response
have you tried disabling pixelmon then going to java 8 or a different java version?
have you tried disabling pixelmon then going to java 8 or a different java version?
Even with the mods folder removed altogether, I observe the same behavior in Java 11 and Java 8.
If I update to Java 17, the plugins still do not load, but the error is slightly more verbose:
SEVERE: Error occurred (in the plugin loader) while enabling <Plugin> (Is it up to date?)
java.lang.NullPointerException: Cannot invoke "java.util.logging.Logger.log(java.util.logging.LogRecord)" because "this.logger" is null
at io.izzel.arclight.common.mod.util.log.ArclightPluginLogger.log(ArclightPluginLogger.java:22)
at java.logging/java.util.logging.Logger.doLog(Logger.java:1007)
at java.logging/java.util.logging.Logger.log(Logger.java:1030)
at java.logging/java.util.logging.Logger.info(Logger.java:1803)
at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoaderMixin.java:330)
at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:480)
at org.bukkit.craftbukkit.v1_16_R3.CraftServer.enablePlugin(CraftServerMixin.java:492)
at org.bukkit.craftbukkit.v1_16_R3.CraftServer.enablePlugins(CraftServerMixin.java:406)
at net.minecraft.server.MinecraftServer.handler$zpo000$arclight$enablePlugins(MinecraftServerMixin.java:1977)
at net.minecraft.server.MinecraftServer.func_240787_a_(MinecraftServerMixin.java:382)
at net.minecraft.server.MinecraftServer.func_240800_l__(MinecraftServerMixin.java:308)
at net.minecraft.server.dedicated.DedicatedServer.func_71197_b(DedicatedServerMixin.java:168)
at net.minecraft.server.MinecraftServer.func_240802_v_(MinecraftServerMixin.java:1861)
at net.minecraft.server.MinecraftServer.func_240783_a_(MinecraftServerMixin.java:232)
at java.base/java.lang.Thread.run(Thread.java:833)
I believe JMX interferes with the logger and likely needs some additional handling in Arclight.
This is fixed in 1.18+, there's no plan now to backport these changes.