From 39042c4a369d81eaaf69334fa696cf41b941492a Mon Sep 17 00:00:00 2001 From: Aikar Date: Tue, 4 Sep 2018 00:02:38 -0400 Subject: [PATCH] Fix another case of concurrency issue in data fixers --- .../0360-Fix-concurrency-issues-in-DataFixers.patch | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/Spigot-Server-Patches/0360-Fix-concurrency-issues-in-DataFixers.patch b/Spigot-Server-Patches/0360-Fix-concurrency-issues-in-DataFixers.patch index 182ead74f9..59a95766c7 100644 --- a/Spigot-Server-Patches/0360-Fix-concurrency-issues-in-DataFixers.patch +++ b/Spigot-Server-Patches/0360-Fix-concurrency-issues-in-DataFixers.patch @@ -1,4 +1,4 @@ -From 2f22a5cc15f69a04dd205f4a24c8cf280f0f4a57 Mon Sep 17 00:00:00 2001 +From 361c1cfba32b0bad5325c9f91c468fcca3cba5b5 Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 3 Sep 2018 22:18:38 -0400 Subject: [PATCH] Fix concurrency issues in DataFixers @@ -12,9 +12,18 @@ be synchronized to be safe for use over multiple threads. There may be more cases, but these are extremely obvious ones. diff --git a/src/main/java/com/mojang/datafixers/DataFixerUpper.java b/src/main/java/com/mojang/datafixers/DataFixerUpper.java -index fb2c380f8a..9299cbbdbd 100644 +index fb2c380f8a..c8e7a8aa10 100644 --- a/src/main/java/com/mojang/datafixers/DataFixerUpper.java +++ b/src/main/java/com/mojang/datafixers/DataFixerUpper.java +@@ -65,7 +65,7 @@ public class DataFixerUpper implements DataFixer { + private final Int2ObjectSortedMap schemas; + private final List globalList; + private final IntSortedSet fixerVersions; +- private final Long2ObjectMap rules = new Long2ObjectOpenHashMap<>(); ++ private final Long2ObjectMap rules = it.unimi.dsi.fastutil.longs.Long2ObjectMaps.synchronize(new Long2ObjectOpenHashMap<>()); // Paper + + protected DataFixerUpper(final Int2ObjectSortedMap schemas, final List globalList, final IntSortedSet fixerVersions) { + this.schemas = schemas; @@ -125,7 +125,7 @@ public class DataFixerUpper implements DataFixer { final int expandedDataVersion = DataFixUtils.makeKey(dataVersion);