herobrine99dan / NESS-Reloaded

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

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Get Rid of Static State such as NessAnticheat.getVersion()

A248 opened this issue · comments

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.

Fixed with 6e7afb1