From 3c18eb44aa185c69f01fcb8dc0e23b2c47dc2992 Mon Sep 17 00:00:00 2001 From: Camotoy <20743703+Camotoy@users.noreply.github.com> Date: Thu, 26 Aug 2021 21:43:53 -0400 Subject: [PATCH] Use instance of ThreadLocalRandom for particle offsets Random instances are synchronized meaning this was a potential deadlock situation. --- .../geysermc/connector/network/QueryPacketHandler.java | 3 +-- .../java/world/JavaSpawnParticleTranslator.java | 9 +++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/connector/src/main/java/org/geysermc/connector/network/QueryPacketHandler.java b/connector/src/main/java/org/geysermc/connector/network/QueryPacketHandler.java index 656a88c4f..8d3aeb435 100644 --- a/connector/src/main/java/org/geysermc/connector/network/QueryPacketHandler.java +++ b/connector/src/main/java/org/geysermc/connector/network/QueryPacketHandler.java @@ -43,7 +43,6 @@ import java.security.NoSuchAlgorithmException; import java.util.Arrays; import java.util.HashMap; import java.util.Map; -import java.util.Random; import java.util.concurrent.ThreadLocalRandom; public class QueryPacketHandler { @@ -265,7 +264,7 @@ public class QueryPacketHandler { public void regenerateToken() { byte[] token = new byte[16]; for (int i = 0; i < 16; i++) { - token[i] = (byte) new Random().nextInt(255); + token[i] = (byte) ThreadLocalRandom.current().nextInt(255); } this.token = token; diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/java/world/JavaSpawnParticleTranslator.java b/connector/src/main/java/org/geysermc/connector/network/translators/java/world/JavaSpawnParticleTranslator.java index fcf6d3a63..14f433c92 100644 --- a/connector/src/main/java/org/geysermc/connector/network/translators/java/world/JavaSpawnParticleTranslator.java +++ b/connector/src/main/java/org/geysermc/connector/network/translators/java/world/JavaSpawnParticleTranslator.java @@ -43,11 +43,11 @@ import org.geysermc.connector.registry.type.ParticleMapping; import org.geysermc.connector.utils.DimensionUtils; import java.util.Random; +import java.util.concurrent.ThreadLocalRandom; import java.util.function.Function; @Translator(packet = ServerSpawnParticlePacket.class) public class JavaSpawnParticleTranslator extends PacketTranslator { - private final Random random = new Random(); @Override public void translate(ServerSpawnParticlePacket packet, GeyserSession session) { @@ -58,10 +58,11 @@ public class JavaSpawnParticleTranslator extends PacketTranslator