OrionPowered / Orion

High performance, bare-bones Minecraft server software
GNU General Public License v3.0
3 stars 2 forks source link

[Scheduler] NullPointerException: Cannot invoke "Object.hashCode()" because "key" is null #11

Closed alexsobiek closed 2 years ago

alexsobiek commented 2 years ago

Steps to reproduce (does not happen every time): 1.) Join the server 2.) Logout quickly

2022-01-20 14:36:20,585 WARN i.n.c.DefaultChannelPipeline [netty #3] An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception.
io.netty.channel.ChannelPipelineException: pro.prysm.orion.server.net.pipeline.ChannelHandler.handlerRemoved() has thrown an exception.
    at io.netty.channel.DefaultChannelPipeline.callHandlerRemoved0(DefaultChannelPipeline.java:640)
    at io.netty.channel.DefaultChannelPipeline.destroyDown(DefaultChannelPipeline.java:876)
    at io.netty.channel.DefaultChannelPipeline.destroyUp(DefaultChannelPipeline.java:844)
    at io.netty.channel.DefaultChannelPipeline.destroy(DefaultChannelPipeline.java:836)
    at io.netty.channel.DefaultChannelPipeline.access$700(DefaultChannelPipeline.java:46)
    at io.netty.channel.DefaultChannelPipeline$HeadContext.channelUnregistered(DefaultChannelPipeline.java:1392)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelUnregistered(AbstractChannelHandlerContext.java:198)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelUnregistered(AbstractChannelHandlerContext.java:184)
    at io.netty.channel.DefaultChannelPipeline.fireChannelUnregistered(DefaultChannelPipeline.java:821)
    at io.netty.channel.AbstractChannel$AbstractUnsafe$8.run(AbstractChannel.java:839)
    at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)
    at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:469)
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:500)
    at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986)
    at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
    at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.lang.NullPointerException: Cannot invoke "Object.hashCode()" because "key" is null
    at java.base/java.util.concurrent.ConcurrentHashMap.replaceNode(ConcurrentHashMap.java:1111)
    at java.base/java.util.concurrent.ConcurrentHashMap.remove(ConcurrentHashMap.java:1102)
    at pro.prysm.orion.server.scheduler.OrionScheduler.cancel(OrionScheduler.java:39)
    at pro.prysm.orion.server.protocol.handler.play.PlayHandler.onDisconnect(PlayHandler.java:126)
    at pro.prysm.orion.server.net.pipeline.ChannelHandler.handlerRemoved(ChannelHandler.java:33)
    at io.netty.channel.AbstractChannelHandlerContext.callHandlerRemoved(AbstractChannelHandlerContext.java:946)
    at io.netty.channel.DefaultChannelPipeline.callHandlerRemoved0(DefaultChannelPipeline.java:637)
alexsobiek commented 2 years ago

I fixed this a while ago, all good now.