NESS Reloaded is an anticheat that aims to support lots of minecraft versions (from 1.8 to 1.17.1) without losing the advantage of having powerful checks
GNU General Public License v3.0
47
stars
5
forks
source link
Get Rid of Static State such as NessAnticheat.getVersion() #117
Accidentally initializing NessAnticheat during tests causes ExceptionInInitializerError. This is not a problem at runtime.
java.util.concurrent.CompletionException: java.lang.ExceptionInInitializerError
at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:314)
at java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:319)
at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1766)
at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.exec(CompletableFuture.java:1756)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1016)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1665)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1598)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)
Caused by: java.lang.ExceptionInInitializerError
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:377)
at com.sun.proxy.$Proxy23.<clinit>(Unknown Source)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:64)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481)
at java.base/java.lang.reflect.Proxy.newProxyInstance(Proxy.java:1022)
at java.base/java.lang.reflect.Proxy.newProxyInstance(Proxy.java:1008)
at space.arim.dazzleconf.internal.processor.ProcessorBase.createConfig(ProcessorBase.java:98)
at space.arim.dazzleconf.internal.processor.ProcessorBase.getNestedSection(ProcessorBase.java:139)
at space.arim.dazzleconf.internal.processor.ProcessorBase.process(ProcessorBase.java:116)
at space.arim.dazzleconf.internal.processor.ProcessorBase.createConfig(ProcessorBase.java:85)
at space.arim.dazzleconf.internal.processor.ProcessorBase.getNestedSection(ProcessorBase.java:139)
at space.arim.dazzleconf.internal.processor.ProcessorBase.process(ProcessorBase.java:116)
at space.arim.dazzleconf.internal.processor.ProcessorBase.createConfig(ProcessorBase.java:85)
at space.arim.dazzleconf.internal.AbstractConfigurationFactoryImpl.loadDefaults(AbstractConfigurationFactoryImpl.java:56)
at space.arim.dazzleconf.factory.DelegatingConfigurationFactory.loadDefaults(DelegatingConfigurationFactory.java:67)
at space.arim.dazzleconf.factory.AbstractConfigurationFactory.loadDefaults(AbstractConfigurationFactory.java:45)
at com.github.ness.config.ConfigManager.lambda$loadConf$0(ConfigManager.java:74)
at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1764)
... 6 more
Caused by: java.lang.NullPointerException: Cannot invoke "org.bukkit.Server.getVersion()" because "org.bukkit.Bukkit.server" is null
at org.bukkit.Bukkit.getVersion(Bukkit.java:101)
at com.github.ness.NessAnticheat.getVersion(NessAnticheat.java:56)
at com.github.ness.NessAnticheat.<clinit>(NessAnticheat.java:42)
... 28 more
The solution to this is to remove any and all static state in NessAnticheat and elsewhere.
Accidentally initializing NessAnticheat during tests causes ExceptionInInitializerError. This is not a problem at runtime.
The solution to this is to remove any and all static state in NessAnticheat and elsewhere.