Mirror von
https://github.com/PaperMC/Paper.git
synchronisiert 2024-12-15 02:50:09 +01:00
Fix NPE when retrieving an entity with a null UUID
While the null UUID is almost certainly an error, the old implementation did not NPE as it used a plain HashMap for lookup by UUID, whereas we use a ConcurrentHashMap which will NPE on null keys.
Dieser Commit ist enthalten in:
Ursprung
dd31654684
Commit
dd49fba8c5
@ -5900,7 +5900,7 @@ index 0000000000000000000000000000000000000000..997b05167c19472acb98edac32d4548c
|
|||||||
+}
|
+}
|
||||||
diff --git a/src/main/java/ca/spottedleaf/moonrise/patches/chunk_system/level/entity/EntityLookup.java b/src/main/java/ca/spottedleaf/moonrise/patches/chunk_system/level/entity/EntityLookup.java
|
diff --git a/src/main/java/ca/spottedleaf/moonrise/patches/chunk_system/level/entity/EntityLookup.java b/src/main/java/ca/spottedleaf/moonrise/patches/chunk_system/level/entity/EntityLookup.java
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000000000000000000000000000000..3a8c192d1aed186ff506d69e3960e3b2792ddbd1
|
index 0000000000000000000000000000000000000000..f6a3eb3d1bb070bcc74133818682571d520d9894
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/src/main/java/ca/spottedleaf/moonrise/patches/chunk_system/level/entity/EntityLookup.java
|
+++ b/src/main/java/ca/spottedleaf/moonrise/patches/chunk_system/level/entity/EntityLookup.java
|
||||||
@@ -0,0 +1,1044 @@
|
@@ -0,0 +1,1044 @@
|
||||||
@ -5994,7 +5994,7 @@ index 0000000000000000000000000000000000000000..3a8c192d1aed186ff506d69e3960e3b2
|
|||||||
+
|
+
|
||||||
+ @Override
|
+ @Override
|
||||||
+ public Entity get(final UUID id) {
|
+ public Entity get(final UUID id) {
|
||||||
+ return maskNonAccessible(this.entityByUUID.get(id));
|
+ return maskNonAccessible(id == null ? null : this.entityByUUID.get(id));
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ public boolean hasEntity(final UUID uuid) {
|
+ public boolean hasEntity(final UUID uuid) {
|
||||||
@ -6002,7 +6002,7 @@ index 0000000000000000000000000000000000000000..3a8c192d1aed186ff506d69e3960e3b2
|
|||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ public String getDebugInfo() {
|
+ public String getDebugInfo() {
|
||||||
+ return "count_id:" + this.entityById.size() + ",count_uuid:" + this.entityByUUID.size() + ",region_count:" + this.regions.size();
|
+ return "count_id:" + this.entityById.size() + ",count_uuid:" + this.entityByUUID.size() + ",count_accessible:" + this.getEntityCount() + ",region_count:" + this.regions.size();
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ protected static final class ArrayIterable<T> implements Iterable<T> {
|
+ protected static final class ArrayIterable<T> implements Iterable<T> {
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren