30 lines
1.8 KiB
Diff
30 lines
1.8 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Bjarne Koll <lynxplay101@gmail.com>
|
|
Date: Sat, 12 Feb 2022 03:20:36 +0100
|
|
Subject: [PATCH] Log exceptions thrown during chat processing
|
|
|
|
Previously the async chat executor service would take chat handling
|
|
using the #submit method, which wraps the logic in a future task.
|
|
The future takes full ownership of the task, including any potential
|
|
exception, meaning that the uncaught exception handler never gets
|
|
notified about potential exceptions thrown during async chat logic.
|
|
|
|
As the chat task does neither need to be cancelled nor returns something
|
|
required later on, this commit moves from #submit to #execute, skipping
|
|
any future task creation. This properly propagates any exception upwards
|
|
to the worker thread in the executor service, allowing the server to
|
|
catch and properly log the exception to the console.
|
|
|
|
diff --git a/src/main/java/net/minecraft/network/protocol/game/ServerboundChatPacket.java b/src/main/java/net/minecraft/network/protocol/game/ServerboundChatPacket.java
|
|
index 5c92aa1cc1a7e7fd0b7a06ae9b21e734fab71c74..3825aa2c381a3ee77e05bea520ff5fb828733857 100644
|
|
--- a/src/main/java/net/minecraft/network/protocol/game/ServerboundChatPacket.java
|
|
+++ b/src/main/java/net/minecraft/network/protocol/game/ServerboundChatPacket.java
|
|
@@ -45,7 +45,7 @@ public class ServerboundChatPacket implements Packet<ServerGamePacketListener> {
|
|
public void handle(final ServerGamePacketListener listener) {
|
|
if ( !this.message.startsWith("/") )
|
|
{
|
|
- ServerboundChatPacket.executors.submit( new Runnable()
|
|
+ ServerboundChatPacket.executors.execute( new Runnable() // Paper - Use #execute to propagate exceptions up instead of swallowing them
|
|
{
|
|
|
|
@Override
|