PaperMC / Velocity

The modern, next-generation Minecraft server proxy.
https://papermc.io/software/velocity
GNU General Public License v3.0
1.68k stars 583 forks source link

Fix `null` or empty handling in `LegacyResourcepackHandler` #1331

Closed R00tB33rMan closed 1 month ago

R00tB33rMan commented 1 month ago

I've been running this patch safely on production without any issues for over two weeks.

Fixes the following errors:


[19:58:23 ERROR]: Exception while handling resource pack send for com.velocitypowered.proxy.connection.MinecraftConnection@2aa69008
java.util.concurrent.CompletionException: java.lang.NullPointerException
        at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:315) ~[?:?]
        at java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:320) ~[?:?]
        at java.base/java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:722) ~[?:?]
        at java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:482) ~[?:?]
        at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:173) ~[velocity.jar:3.3.0-SNAPSHOT (git-1ae611b5)]
        at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:166) ~[velocity.jar:3.3.0-SNAPSHOT (git-1ae611b5)]
        at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470) ~[velocity.jar:3.3.0-SNAPSHOT (git-1ae611b5)]
        at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:405) ~[velocity.jar:3.3.0-SNAPSHOT (git-1ae611b5)]
        at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[velocity.jar:3.3.0-SNAPSHOT (git-1ae611b5)]
        at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[velocity.jar:3.3.0-SNAPSHOT (git-1ae611b5)]
        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[velocity.jar:3.3.0-SNAPSHOT (git-1ae611b5)]
        at java.base/java.lang.Thread.run(Thread.java:1583) [?:?]
Caused by: java.lang.NullPointerException

and

[10:35:47 ERROR]: Exception while handling resource pack send for com.velocitypowered.proxy.connection.MinecraftConnection@3bd98dbe
java.util.concurrent.CompletionException: java.lang.NullPointerException: Cannot read the array length because "bytes" is null

(plus its extension)