Report errors correctly from FutureTasks

Anything that posts something to main thread was not
correctly reporting their errors to the logger, passing the
ExecutionExcetion instead of the cause. This resolves that,
as well as patches some simple cases of System.nanoTime where mojang
had used a LongSupplier to use a different method on client.
This commit is contained in:
Aikar 2018-10-04 01:45:11 -04:00
parent d7dd3798ec
commit a4df5ddee7
No known key found for this signature in database
GPG Key ID: 401ADFC9891FAAFE
1 changed files with 48 additions and 1 deletions

View File

@ -1,4 +1,4 @@
From 056171fe4ced36a78f0f52df367876fcf6598101 Mon Sep 17 00:00:00 2001
From 9c41b033695b2ef0aaa8f9ba1f6fe6abe50ceb50 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Mon, 28 Mar 2016 20:55:47 -0400
Subject: [PATCH] MC Utils
@ -796,6 +796,53 @@ index a21006290c..6c6f006f3a 100644
public int a() {
return this.b.size();
}
diff --git a/src/main/java/net/minecraft/server/SystemUtils.java b/src/main/java/net/minecraft/server/SystemUtils.java
index 1f1cb6a1b2..ced573d7fb 100644
--- a/src/main/java/net/minecraft/server/SystemUtils.java
+++ b/src/main/java/net/minecraft/server/SystemUtils.java
@@ -34,8 +34,8 @@ public class SystemUtils {
return Collectors.toMap(Entry::getKey, Entry::getValue);
}
- public static <T extends Comparable<T>> String a(IBlockState<T> iblockstate, Object object) {
- return iblockstate.a((Comparable)object);
+ public static <T extends Comparable<T>> String a(IBlockState<T> iblockstate, T object) { // Paper - decompile fix
+ return iblockstate.a(object); // Paper - decompile fix
}
public static String a(String s, @Nullable MinecraftKey minecraftkey) {
@@ -43,11 +43,11 @@ public class SystemUtils {
}
public static long b() {
- return c() / 1000000L;
+ return System.nanoTime() / 1000000L; // Paper
}
public static long c() {
- return a.getAsLong();
+ return System.nanoTime(); // Paper
}
public static long d() {
@@ -109,7 +109,7 @@ public class SystemUtils {
futuretask.run();
return (V)futuretask.get();
} catch (ExecutionException executionexception) {
- logger.fatal("Error executing task", executionexception);
+ logger.fatal("Error executing task", executionexception.getCause() != null ? executionexception.getCause() : executionexception); // Paper
} catch (InterruptedException interruptedexception) {
logger.fatal("Error executing task", interruptedexception);
}
@@ -169,7 +169,7 @@ public class SystemUtils {
}
public static <K> Strategy<K> g() {
- return SystemUtils.IdentityHashingStrategy.INSTANCE;
+ return (Strategy<K>) IdentityHashingStrategy.INSTANCE; // Paper - decompile fix
}
static enum IdentityHashingStrategy implements Strategy<Object> {
--
2.19.0