Conversation
…Right-Bust-Tracking
…-And-Tail-Tracking
…cking # Conflicts: # server/core/src/main/java/dev/slimevr/skeleton/module.kt
When we log for the first time, the static initialiser for io.klogging.internal.hostname is called, since it instantiates a LogEvent class where the 'host' field defaults to the aforementioned hostname variable when no host is provided in the constructor. The static initialiser may throw an UnknownHostException (since Java may perform a DNS lookup in `InetAddress.getLocalHost().getHostName()`), which is caught and tries to log the exception to stderr inside the catch block. Since we redirect the streams before the first time we log, the message ends up getting passed to our LineLogger where we try to log it with Klogger. This ends up trying to instantiate a LogEvent again with no host field specified, and since an exception was thrown in hostname's static initialiser, it is null, so an exception is thrown by the constructor. This manifests as a crash with VERY CONFUSING log output: INFO [ main] : Configuration : Configuration set using the DSL with append=false Exception: java.lang.NoClassDefFoundError thrown from the UncaughtExceptionHandler in thread "main" Output with debugger printing all exceptions: Connected to the target VM, address: 'localhost:35355', transport: 'socket' ---snip--- Exception 'java.net.UnknownHostException' occurred in thread 'main @mainSlimeVR#1' at java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:-1) Breakpoint reached at java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:-1) at java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:52) at java.net.InetAddress$PlatformResolver.lookupByName(InetAddress.java:1134) at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1712) at java.net.InetAddress$NameServiceAddresses.get(InetAddress.java:1060) at java.net.InetAddress.getAllByName0(InetAddress.java:1702) at java.net.InetAddress.getLocalHost(InetAddress.java:1796) at io.klogging.internal.KloggingEngine_jvmKt.<clinit>(KloggingEngine.jvm.kt:26) at io.klogging.events.LogEvent.<init>(LogEvent.kt:51) at io.klogging.BaseLogger.eventFrom(BaseLogger.kt:108) at io.klogging.impl.KloggerImpl.eventFrom(KloggerImpl.kt:39) at io.klogging.impl.KloggerImpl.emitEvent(KloggerImpl.kt:57) at io.klogging.Klogger.emitEvent$default(Klogger.kt:48) at io.klogging.Klogger.log$suspendImpl(Klogger.kt:123) at io.klogging.Klogger.log(Klogger.kt:-1) at io.klogging.impl.KloggerImpl.log(KloggerImpl.kt:39) at io.klogging.Klogger.info$suspendImpl(Klogger.kt:323) at io.klogging.Klogger.info(Klogger.kt:-1) at io.klogging.impl.KloggerImpl.info(KloggerImpl.kt:39) at dev.slimevr.logging.LoggerKt.configureLogging(logger.kt:74) at dev.slimevr.logging.LoggerKt.configureLogging$default(logger.kt:48) at dev.slimevr.desktop.LoggingKt.setupDesktopLogging(logging.kt:13) at dev.slimevr.desktop.Main$main$1.invokeSuspend(Main.kt:62) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith$$$capture(ContinuationImpl.kt:34) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:-1) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100) at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:263) at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:94) at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:70) at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source:1) at dev.slimevr.desktop.Main.main(Main.kt:61) Exception 'java.net.UnknownHostException' occurred in thread 'main @mainSlimeVR#1' at java.net.InetAddress$PlatformResolver.lookupByName(InetAddress.java:1137) Breakpoint reached at java.net.InetAddress$PlatformResolver.lookupByName(InetAddress.java:1137) at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1712) at java.net.InetAddress$NameServiceAddresses.get(InetAddress.java:1060) at java.net.InetAddress.getAllByName0(InetAddress.java:1702) at java.net.InetAddress.getLocalHost(InetAddress.java:1796) at io.klogging.internal.KloggingEngine_jvmKt.<clinit>(KloggingEngine.jvm.kt:26) at io.klogging.events.LogEvent.<init>(LogEvent.kt:51) at io.klogging.BaseLogger.eventFrom(BaseLogger.kt:108) at io.klogging.impl.KloggerImpl.eventFrom(KloggerImpl.kt:39) at io.klogging.impl.KloggerImpl.emitEvent(KloggerImpl.kt:57) at io.klogging.Klogger.emitEvent$default(Klogger.kt:48) at io.klogging.Klogger.log$suspendImpl(Klogger.kt:123) at io.klogging.Klogger.log(Klogger.kt:-1) at io.klogging.impl.KloggerImpl.log(KloggerImpl.kt:39) at io.klogging.Klogger.info$suspendImpl(Klogger.kt:323) at io.klogging.Klogger.info(Klogger.kt:-1) at io.klogging.impl.KloggerImpl.info(KloggerImpl.kt:39) at dev.slimevr.logging.LoggerKt.configureLogging(logger.kt:74) at dev.slimevr.logging.LoggerKt.configureLogging$default(logger.kt:48) at dev.slimevr.desktop.LoggingKt.setupDesktopLogging(logging.kt:13) at dev.slimevr.desktop.Main$main$1.invokeSuspend(Main.kt:62) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith$$$capture(ContinuationImpl.kt:34) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:-1) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100) at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:263) at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:94) at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:70) at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source:1) at dev.slimevr.desktop.Main.main(Main.kt:61) Exception 'java.net.UnknownHostException' occurred in thread 'main @mainSlimeVR#1' at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1727) Breakpoint reached at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1727) at java.net.InetAddress$NameServiceAddresses.get(InetAddress.java:1060) at java.net.InetAddress.getAllByName0(InetAddress.java:1702) at java.net.InetAddress.getLocalHost(InetAddress.java:1796) at io.klogging.internal.KloggingEngine_jvmKt.<clinit>(KloggingEngine.jvm.kt:26) at io.klogging.events.LogEvent.<init>(LogEvent.kt:51) at io.klogging.BaseLogger.eventFrom(BaseLogger.kt:108) at io.klogging.impl.KloggerImpl.eventFrom(KloggerImpl.kt:39) at io.klogging.impl.KloggerImpl.emitEvent(KloggerImpl.kt:57) at io.klogging.Klogger.emitEvent$default(Klogger.kt:48) at io.klogging.Klogger.log$suspendImpl(Klogger.kt:123) at io.klogging.Klogger.log(Klogger.kt:-1) at io.klogging.impl.KloggerImpl.log(KloggerImpl.kt:39) at io.klogging.Klogger.info$suspendImpl(Klogger.kt:323) at io.klogging.Klogger.info(Klogger.kt:-1) at io.klogging.impl.KloggerImpl.info(KloggerImpl.kt:39) at dev.slimevr.logging.LoggerKt.configureLogging(logger.kt:74) at dev.slimevr.logging.LoggerKt.configureLogging$default(logger.kt:48) at dev.slimevr.desktop.LoggingKt.setupDesktopLogging(logging.kt:13) at dev.slimevr.desktop.Main$main$1.invokeSuspend(Main.kt:62) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith$$$capture(ContinuationImpl.kt:34) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:-1) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100) at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:263) at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:94) at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:70) at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source:1) at dev.slimevr.desktop.Main.main(Main.kt:61) Exception 'java.net.UnknownHostException' occurred in thread 'main @mainSlimeVR#1' at java.net.InetAddress$NameServiceAddresses.get(InetAddress.java:1104) Breakpoint reached at java.net.InetAddress$NameServiceAddresses.get(InetAddress.java:1104) at java.net.InetAddress.getAllByName0(InetAddress.java:1702) at java.net.InetAddress.getLocalHost(InetAddress.java:1796) at io.klogging.internal.KloggingEngine_jvmKt.<clinit>(KloggingEngine.jvm.kt:26) at io.klogging.events.LogEvent.<init>(LogEvent.kt:51) at io.klogging.BaseLogger.eventFrom(BaseLogger.kt:108) at io.klogging.impl.KloggerImpl.eventFrom(KloggerImpl.kt:39) at io.klogging.impl.KloggerImpl.emitEvent(KloggerImpl.kt:57) at io.klogging.Klogger.emitEvent$default(Klogger.kt:48) at io.klogging.Klogger.log$suspendImpl(Klogger.kt:123) at io.klogging.Klogger.log(Klogger.kt:-1) at io.klogging.impl.KloggerImpl.log(KloggerImpl.kt:39) at io.klogging.Klogger.info$suspendImpl(Klogger.kt:323) at io.klogging.Klogger.info(Klogger.kt:-1) at io.klogging.impl.KloggerImpl.info(KloggerImpl.kt:39) at dev.slimevr.logging.LoggerKt.configureLogging(logger.kt:74) at dev.slimevr.logging.LoggerKt.configureLogging$default(logger.kt:48) at dev.slimevr.desktop.LoggingKt.setupDesktopLogging(logging.kt:13) at dev.slimevr.desktop.Main$main$1.invokeSuspend(Main.kt:62) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith$$$capture(ContinuationImpl.kt:34) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:-1) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100) at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:263) at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:94) at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:70) at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source:1) at dev.slimevr.desktop.Main.main(Main.kt:61) Exception 'java.net.UnknownHostException' occurred in thread 'main @mainSlimeVR#1' at java.net.InetAddress$NameServiceAddresses.get(InetAddress.java:1111) Breakpoint reached at java.net.InetAddress$NameServiceAddresses.get(InetAddress.java:1111) at java.net.InetAddress.getAllByName0(InetAddress.java:1702) at java.net.InetAddress.getLocalHost(InetAddress.java:1796) at io.klogging.internal.KloggingEngine_jvmKt.<clinit>(KloggingEngine.jvm.kt:26) at io.klogging.events.LogEvent.<init>(LogEvent.kt:51) at io.klogging.BaseLogger.eventFrom(BaseLogger.kt:108) at io.klogging.impl.KloggerImpl.eventFrom(KloggerImpl.kt:39) at io.klogging.impl.KloggerImpl.emitEvent(KloggerImpl.kt:57) at io.klogging.Klogger.emitEvent$default(Klogger.kt:48) at io.klogging.Klogger.log$suspendImpl(Klogger.kt:123) at io.klogging.Klogger.log(Klogger.kt:-1) at io.klogging.impl.KloggerImpl.log(KloggerImpl.kt:39) at io.klogging.Klogger.info$suspendImpl(Klogger.kt:323) at io.klogging.Klogger.info(Klogger.kt:-1) at io.klogging.impl.KloggerImpl.info(KloggerImpl.kt:39) at dev.slimevr.logging.LoggerKt.configureLogging(logger.kt:74) at dev.slimevr.logging.LoggerKt.configureLogging$default(logger.kt:48) at dev.slimevr.desktop.LoggingKt.setupDesktopLogging(logging.kt:13) at dev.slimevr.desktop.Main$main$1.invokeSuspend(Main.kt:62) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith$$$capture(ContinuationImpl.kt:34) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:-1) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100) at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:263) at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:94) at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:70) at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source:1) at dev.slimevr.desktop.Main.main(Main.kt:61) Exception 'java.net.UnknownHostException' occurred in thread 'main @mainSlimeVR#1' at java.net.InetAddress.getLocalHost(InetAddress.java:1803) Breakpoint reached at java.net.InetAddress.getLocalHost(InetAddress.java:1803) at io.klogging.internal.KloggingEngine_jvmKt.<clinit>(KloggingEngine.jvm.kt:26) at io.klogging.events.LogEvent.<init>(LogEvent.kt:51) at io.klogging.BaseLogger.eventFrom(BaseLogger.kt:108) at io.klogging.impl.KloggerImpl.eventFrom(KloggerImpl.kt:39) at io.klogging.impl.KloggerImpl.emitEvent(KloggerImpl.kt:57) at io.klogging.Klogger.emitEvent$default(Klogger.kt:48) at io.klogging.Klogger.log$suspendImpl(Klogger.kt:123) at io.klogging.Klogger.log(Klogger.kt:-1) at io.klogging.impl.KloggerImpl.log(KloggerImpl.kt:39) at io.klogging.Klogger.info$suspendImpl(Klogger.kt:323) at io.klogging.Klogger.info(Klogger.kt:-1) at io.klogging.impl.KloggerImpl.info(KloggerImpl.kt:39) at dev.slimevr.logging.LoggerKt.configureLogging(logger.kt:74) at dev.slimevr.logging.LoggerKt.configureLogging$default(logger.kt:48) at dev.slimevr.desktop.LoggingKt.setupDesktopLogging(logging.kt:13) at dev.slimevr.desktop.Main$main$1.invokeSuspend(Main.kt:62) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith$$$capture(ContinuationImpl.kt:34) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:-1) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100) at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:263) at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:94) at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:70) at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source:1) at dev.slimevr.desktop.Main.main(Main.kt:61) Exception 'java.lang.NullPointerException' occurred in thread 'main @mainSlimeVR#1' at kotlin.jvm.internal.Intrinsics.throwParameterIsNullNPE(Intrinsics.java:140) Breakpoint reached at kotlin.jvm.internal.Intrinsics.throwParameterIsNullNPE(Intrinsics.java:140) at kotlin.jvm.internal.Intrinsics.checkNotNullParameter(Intrinsics.java:131) at io.klogging.events.LogEvent.<init>(LogEvent.kt:48) at io.klogging.events.LogEvent.<init>(LogEvent.kt:48) at io.klogging.BaseLogger.eventFrom(BaseLogger.kt:108) at io.klogging.impl.NoCoLoggerImpl.eventFrom(NoCoLoggerImpl.kt:41) at io.klogging.impl.NoCoLoggerImpl.emitEvent(NoCoLoggerImpl.kt:66) at io.klogging.NoCoLogger.emitEvent$default(NoCoLogger.kt:43) at io.klogging.NoCoLogger.log(NoCoLogger.kt:79) at io.klogging.impl.NoCoLoggerImpl.log(NoCoLoggerImpl.kt:41) at dev.slimevr.logging.LineLogger.write(standard-streams.kt:36) at java.io.OutputStream.write(OutputStream.java:167) at java.io.PrintStream.write(PrintStream.java:539) at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:220) at sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:315) at sun.nio.cs.StreamEncoder.flushBuffer(StreamEncoder.java:101) at java.io.OutputStreamWriter.flushBuffer(OutputStreamWriter.java:179) at java.io.PrintStream.writeln(PrintStream.java:690) at java.io.PrintStream.println(PrintStream.java:1004) at io.klogging.internal.PrintErr_jvmKt.printErr(PrintErr.jvm.kt:21) at io.klogging.internal.InternalLoggingKt.log(InternalLogging.kt:64) at io.klogging.internal.InternalLoggingKt.warn(InternalLogging.kt:127) at io.klogging.internal.KloggingEngine_jvmKt.<clinit>(KloggingEngine.jvm.kt:28) at io.klogging.events.LogEvent.<init>(LogEvent.kt:51) at io.klogging.BaseLogger.eventFrom(BaseLogger.kt:108) at io.klogging.impl.KloggerImpl.eventFrom(KloggerImpl.kt:39) at io.klogging.impl.KloggerImpl.emitEvent(KloggerImpl.kt:57) at io.klogging.Klogger.emitEvent$default(Klogger.kt:48) at io.klogging.Klogger.log$suspendImpl(Klogger.kt:123) at io.klogging.Klogger.log(Klogger.kt:-1) at io.klogging.impl.KloggerImpl.log(KloggerImpl.kt:39) at io.klogging.Klogger.info$suspendImpl(Klogger.kt:323) at io.klogging.Klogger.info(Klogger.kt:-1) at io.klogging.impl.KloggerImpl.info(KloggerImpl.kt:39) at dev.slimevr.logging.LoggerKt.configureLogging(logger.kt:74) at dev.slimevr.logging.LoggerKt.configureLogging$default(logger.kt:48) at dev.slimevr.desktop.LoggingKt.setupDesktopLogging(logging.kt:13) at dev.slimevr.desktop.Main$main$1.invokeSuspend(Main.kt:62) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith$$$capture(ContinuationImpl.kt:34) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:-1) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100) at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:263) at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:94) at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:70) at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source:1) at dev.slimevr.desktop.Main.main(Main.kt:61) Exception 'java.lang.NullPointerException' occurred in thread 'main @mainSlimeVR#1' at java.io.PrintStream.write(PrintStream.java:542) Breakpoint reached at java.io.PrintStream.write(PrintStream.java:542) at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:220) at sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:315) at sun.nio.cs.StreamEncoder.flushBuffer(StreamEncoder.java:101) at java.io.OutputStreamWriter.flushBuffer(OutputStreamWriter.java:179) at java.io.PrintStream.writeln(PrintStream.java:690) at java.io.PrintStream.println(PrintStream.java:1004) at io.klogging.internal.PrintErr_jvmKt.printErr(PrintErr.jvm.kt:21) at io.klogging.internal.InternalLoggingKt.log(InternalLogging.kt:64) at io.klogging.internal.InternalLoggingKt.warn(InternalLogging.kt:127) at io.klogging.internal.KloggingEngine_jvmKt.<clinit>(KloggingEngine.jvm.kt:28) at io.klogging.events.LogEvent.<init>(LogEvent.kt:51) at io.klogging.BaseLogger.eventFrom(BaseLogger.kt:108) at io.klogging.impl.KloggerImpl.eventFrom(KloggerImpl.kt:39) at io.klogging.impl.KloggerImpl.emitEvent(KloggerImpl.kt:57) at io.klogging.Klogger.emitEvent$default(Klogger.kt:48) at io.klogging.Klogger.log$suspendImpl(Klogger.kt:123) at io.klogging.Klogger.log(Klogger.kt:-1) at io.klogging.impl.KloggerImpl.log(KloggerImpl.kt:39) at io.klogging.Klogger.info$suspendImpl(Klogger.kt:323) at io.klogging.Klogger.info(Klogger.kt:-1) at io.klogging.impl.KloggerImpl.info(KloggerImpl.kt:39) at dev.slimevr.logging.LoggerKt.configureLogging(logger.kt:74) at dev.slimevr.logging.LoggerKt.configureLogging$default(logger.kt:48) at dev.slimevr.desktop.LoggingKt.setupDesktopLogging(logging.kt:13) at dev.slimevr.desktop.Main$main$1.invokeSuspend(Main.kt:62) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith$$$capture(ContinuationImpl.kt:34) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:-1) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100) at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:263) at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:94) at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:70) at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source:1) at dev.slimevr.desktop.Main.main(Main.kt:61) Exception 'java.lang.NullPointerException' occurred in thread 'main @mainSlimeVR#1' at sun.nio.cs.StreamEncoder.flushBuffer(StreamEncoder.java:104) Breakpoint reached at sun.nio.cs.StreamEncoder.flushBuffer(StreamEncoder.java:104) at java.io.OutputStreamWriter.flushBuffer(OutputStreamWriter.java:179) at java.io.PrintStream.writeln(PrintStream.java:690) at java.io.PrintStream.println(PrintStream.java:1004) at io.klogging.internal.PrintErr_jvmKt.printErr(PrintErr.jvm.kt:21) at io.klogging.internal.InternalLoggingKt.log(InternalLogging.kt:64) at io.klogging.internal.InternalLoggingKt.warn(InternalLogging.kt:127) at io.klogging.internal.KloggingEngine_jvmKt.<clinit>(KloggingEngine.jvm.kt:28) at io.klogging.events.LogEvent.<init>(LogEvent.kt:51) at io.klogging.BaseLogger.eventFrom(BaseLogger.kt:108) at io.klogging.impl.KloggerImpl.eventFrom(KloggerImpl.kt:39) at io.klogging.impl.KloggerImpl.emitEvent(KloggerImpl.kt:57) at io.klogging.Klogger.emitEvent$default(Klogger.kt:48) at io.klogging.Klogger.log$suspendImpl(Klogger.kt:123) at io.klogging.Klogger.log(Klogger.kt:-1) at io.klogging.impl.KloggerImpl.log(KloggerImpl.kt:39) at io.klogging.Klogger.info$suspendImpl(Klogger.kt:323) at io.klogging.Klogger.info(Klogger.kt:-1) at io.klogging.impl.KloggerImpl.info(KloggerImpl.kt:39) at dev.slimevr.logging.LoggerKt.configureLogging(logger.kt:74) at dev.slimevr.logging.LoggerKt.configureLogging$default(logger.kt:48) at dev.slimevr.desktop.LoggingKt.setupDesktopLogging(logging.kt:13) at dev.slimevr.desktop.Main$main$1.invokeSuspend(Main.kt:62) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith$$$capture(ContinuationImpl.kt:34) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:-1) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100) at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:263) at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:94) at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:70) at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source:1) at dev.slimevr.desktop.Main.main(Main.kt:61) Exception 'java.lang.NullPointerException' occurred in thread 'main @mainSlimeVR#1' at java.io.PrintStream.writeln(PrintStream.java:693) Breakpoint reached at java.io.PrintStream.writeln(PrintStream.java:693) at java.io.PrintStream.println(PrintStream.java:1004) at io.klogging.internal.PrintErr_jvmKt.printErr(PrintErr.jvm.kt:21) at io.klogging.internal.InternalLoggingKt.log(InternalLogging.kt:64) at io.klogging.internal.InternalLoggingKt.warn(InternalLogging.kt:127) at io.klogging.internal.KloggingEngine_jvmKt.<clinit>(KloggingEngine.jvm.kt:28) at io.klogging.events.LogEvent.<init>(LogEvent.kt:51) at io.klogging.BaseLogger.eventFrom(BaseLogger.kt:108) at io.klogging.impl.KloggerImpl.eventFrom(KloggerImpl.kt:39) at io.klogging.impl.KloggerImpl.emitEvent(KloggerImpl.kt:57) at io.klogging.Klogger.emitEvent$default(Klogger.kt:48) at io.klogging.Klogger.log$suspendImpl(Klogger.kt:123) at io.klogging.Klogger.log(Klogger.kt:-1) at io.klogging.impl.KloggerImpl.log(KloggerImpl.kt:39) at io.klogging.Klogger.info$suspendImpl(Klogger.kt:323) at io.klogging.Klogger.info(Klogger.kt:-1) at io.klogging.impl.KloggerImpl.info(KloggerImpl.kt:39) at dev.slimevr.logging.LoggerKt.configureLogging(logger.kt:74) at dev.slimevr.logging.LoggerKt.configureLogging$default(logger.kt:48) at dev.slimevr.desktop.LoggingKt.setupDesktopLogging(logging.kt:13) at dev.slimevr.desktop.Main$main$1.invokeSuspend(Main.kt:62) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith$$$capture(ContinuationImpl.kt:34) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:-1) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100) at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:263) at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:94) at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:70) at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source:1) at dev.slimevr.desktop.Main.main(Main.kt:61) Exception 'java.lang.ExceptionInInitializerError' occurred in thread 'main @mainSlimeVR#1' at io.klogging.events.LogEvent.<init>(LogEvent.kt:51) Breakpoint reached at io.klogging.events.LogEvent.<init>(LogEvent.kt:51) at io.klogging.BaseLogger.eventFrom(BaseLogger.kt:108) at io.klogging.impl.KloggerImpl.eventFrom(KloggerImpl.kt:39) at io.klogging.impl.KloggerImpl.emitEvent(KloggerImpl.kt:57) at io.klogging.Klogger.emitEvent$default(Klogger.kt:48) at io.klogging.Klogger.log$suspendImpl(Klogger.kt:123) at io.klogging.Klogger.log(Klogger.kt:-1) at io.klogging.impl.KloggerImpl.log(KloggerImpl.kt:39) at io.klogging.Klogger.info$suspendImpl(Klogger.kt:323) at io.klogging.Klogger.info(Klogger.kt:-1) at io.klogging.impl.KloggerImpl.info(KloggerImpl.kt:39) at dev.slimevr.logging.LoggerKt.configureLogging(logger.kt:74) at dev.slimevr.logging.LoggerKt.configureLogging$default(logger.kt:48) at dev.slimevr.desktop.LoggingKt.setupDesktopLogging(logging.kt:13) at dev.slimevr.desktop.Main$main$1.invokeSuspend(Main.kt:62) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith$$$capture(ContinuationImpl.kt:34) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:-1) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100) at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:263) at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:94) at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:70) at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source:1) at dev.slimevr.desktop.Main.main(Main.kt:61) Exception 'java.lang.ExceptionInInitializerError' occurred in thread 'main' at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:108) Breakpoint reached at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:108) at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:70) at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source:1) at dev.slimevr.desktop.Main.main(Main.kt:61) Exception 'java.lang.NoClassDefFoundError' occurred in thread 'main' at java.io.PrintStream.write(PrintStream.java:542) Breakpoint reached at java.io.PrintStream.write(PrintStream.java:542) at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:220) at sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:315) at sun.nio.cs.StreamEncoder.flushBuffer(StreamEncoder.java:101) at java.io.OutputStreamWriter.flushBuffer(OutputStreamWriter.java:179) at java.io.PrintStream.writeln(PrintStream.java:690) at java.io.PrintStream.println(PrintStream.java:1027) at java.lang.Throwable$WrappedPrintStream.println(Throwable.java:790) at java.lang.Throwable.printStackTrace(Throwable.java:697) at java.lang.Throwable.printStackTrace(Throwable.java:686) at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:579) at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:571) at java.lang.Thread.dispatchUncaughtException(Thread.java:2556) Exception 'java.lang.NoClassDefFoundError' occurred in thread 'main' at sun.nio.cs.StreamEncoder.flushBuffer(StreamEncoder.java:104) Breakpoint reached at sun.nio.cs.StreamEncoder.flushBuffer(StreamEncoder.java:104) at java.io.OutputStreamWriter.flushBuffer(OutputStreamWriter.java:179) at java.io.PrintStream.writeln(PrintStream.java:690) at java.io.PrintStream.println(PrintStream.java:1027) at java.lang.Throwable$WrappedPrintStream.println(Throwable.java:790) at java.lang.Throwable.printStackTrace(Throwable.java:697) at java.lang.Throwable.printStackTrace(Throwable.java:686) at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:579) at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:571) at java.lang.Thread.dispatchUncaughtException(Thread.java:2556) Exception 'java.lang.NoClassDefFoundError' occurred in thread 'main' at java.io.PrintStream.writeln(PrintStream.java:693) Breakpoint reached at java.io.PrintStream.writeln(PrintStream.java:693) at java.io.PrintStream.println(PrintStream.java:1027) at java.lang.Throwable$WrappedPrintStream.println(Throwable.java:790) at java.lang.Throwable.printStackTrace(Throwable.java:697) at java.lang.Throwable.printStackTrace(Throwable.java:686) at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:579) at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:571) at java.lang.Thread.dispatchUncaughtException(Thread.java:2556) Exception 'java.lang.NoClassDefFoundError' occurred in thread 'main' at java.lang.Throwable.printStackTrace(Throwable.java:710) Breakpoint reached at java.lang.Throwable.printStackTrace(Throwable.java:710) at java.lang.Throwable.printStackTrace(Throwable.java:686) at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:579) at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:571) at java.lang.Thread.dispatchUncaughtException(Thread.java:2556) Disconnected from the target VM, address: 'localhost:35355', transport: 'socket'
…ate at the time the page loaded
…nded # Conflicts: # gui/app/src/hooks/body-parts.ts # server/core/src/main/java/dev/slimevr/solarxr/rpc/resets.kt # solarxr-protocol
Remember to commit everything. Add posterior processing.
Remember to commit everything. Add posterior processing.
…rver into main-extended
Erimelowo
reviewed
Sep 24, 2026
Erimelowo
reviewed
Sep 24, 2026
|
|
||
| private fun getDeltaTimeSeconds(): Float { | ||
| val now = | ||
| System.nanoTime() |
Erimelowo
reviewed
Sep 24, 2026
| val baseRelative = hipRot.inv() * tailRot | ||
|
|
||
| val baseEuler = baseRelative.toEulerAngles(EulerOrder.XYZ) | ||
| val basePitch = Math.toDegrees(baseEuler.x.toDouble()).toFloat() |
Member
There was a problem hiding this comment.
Instead of doing Math.toDegrees and having to cast twice, just multiply by FastMath.RAD_TO_DEG
Erimelowo
reviewed
Sep 24, 2026
| return dt | ||
| } | ||
|
|
||
| companion object { |
Member
There was a problem hiding this comment.
Given that all your constants are private, no need to use a companion object. Just have them at the top of the file; outside the class.
Sebane1
force-pushed
the
main-extended
branch
2 times, most recently
from
September 25, 2026 00:19
15d6532 to
82a7293
Compare
Co-authored-by: Erimel <marioluigivideo@gmail.com>
…rver into main-extended # Conflicts: # gui/app/public/i18n/en/translation.ftl
…nded # Conflicts: # gui/app/public/i18n/en/translation.ftl # gui/app/public/models/skeleton/chest.gltf # gui/app/public/models/skeleton/foot.gltf # gui/app/public/models/skeleton/head.gltf # gui/app/public/models/skeleton/upper_arm.gltf # gui/app/src/components/commons/BodyPartIcon.tsx # gui/app/src/components/commons/PersonFrontIcon.tsx # gui/app/src/components/onboarding/BodyPartAssignment.tsx # gui/app/src/components/onboarding/pages/body-proportions/HeightInput.tsx # gui/app/src/components/onboarding/pages/body-proportions/ScaledProportions.tsx # gui/app/src/components/settings/pages/components/ResetsSettings.tsx # gui/app/src/components/tracker/TrackerSettings.tsx # gui/app/src/components/widgets/SkeletonVisualizerWidget.tsx # gui/app/src/hooks/body-parts.ts # gui/app/src/hooks/onboarding.ts # gui/app/src/hooks/tracker-picker.ts # gui/app/src/utils/skeletonHelper.ts # gui/app/src/utils/skeletonMeshHelper.ts # gui/app/src/utils/skeletonParts.ts # server/core/src/main/java/dev/slimevr/config/settings.kt # server/core/src/main/java/dev/slimevr/event-dispatcher.kt # server/core/src/main/java/dev/slimevr/hid/behaviours/register.kt # server/core/src/main/java/dev/slimevr/resets/bodypart-sets.kt # server/core/src/main/java/dev/slimevr/resets/module.kt # server/core/src/main/java/dev/slimevr/skeleton/behaviours.kt # server/core/src/main/java/dev/slimevr/skeleton/bodypart-structure.kt # server/core/src/main/java/dev/slimevr/skeleton/computedprocessors/velocity.kt # server/core/src/main/java/dev/slimevr/skeleton/fkprocessors/localizer.kt # server/core/src/main/java/dev/slimevr/skeleton/inputprocessors/bone-direct-link.kt # server/core/src/main/java/dev/slimevr/skeleton/module.kt # server/core/src/main/java/dev/slimevr/skeleton/proportions.kt # server/core/src/main/java/dev/slimevr/skeleton/reducer.kt # server/core/src/main/java/dev/slimevr/skeleton/targetprocessors/floor-clip.kt # server/core/src/main/java/dev/slimevr/skeleton/targetprocessors/skating-correction.kt # server/core/src/main/java/dev/slimevr/solarxr/rpc/resets.kt # server/core/src/main/java/dev/slimevr/tracker/behaviours/calibration-refresh.kt # server/core/src/main/java/dev/slimevr/tracker/behaviours/to-skeleton.kt # server/core/src/main/java/dev/slimevr/tracker/module.kt # server/core/src/main/java/dev/slimevr/tracker/reducer.kt # server/core/src/main/java/dev/slimevr/tracker/session-calibration.kt # server/core/src/main/java/dev/slimevr/trackingchecklist/behaviours.kt # server/core/src/main/java/dev/slimevr/vmc/mapping.kt # server/core/src/main/java/dev/slimevr/vmc/output-encoder.kt # server/core/src/test/java/dev/slimevr/TestServer.kt # server/core/src/test/java/dev/slimevr/tracker/PolarityTrackingTest.kt # solarxr-protocol
… offsets to input processors.
…nded # Conflicts: # solarxr-protocol
…nded # Conflicts: # solarxr-protocol
…nded # Conflicts: # .gitignore # gui/app/src/components/settings/SettingsSidebar.tsx # server/android/src/main/java/dev/slimevr/android/ForegroundService.kt # server/core/src/main/java/dev/slimevr/skeleton/proportions.kt # server/desktop/src/main/java/dev/slimevr/desktop/Main.kt
…nded # Conflicts: # server/android/src/main/java/dev/slimevr/android/serial/serial.kt # server/core/src/main/java/dev/slimevr/skeleton/module.kt
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This draft PR currently incorporates rough implementations of the following features:
Custom OSC Parameter Output
Bust tracking, tail tracking, and posterior tracking with automatic hiding of extra joints that aren't explicitly assigned.
Accompanying SolarXR
SlimeVR/SolarXR-Protocol#224