mirror of
https://github.com/PaperMC/Paper.git
synced 2024-11-29 22:13:42 +01:00
61 lines
3.2 KiB
Diff
61 lines
3.2 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Nassim Jahnke <nassim@njahnke.dev>
|
|
Date: Sat, 6 Jan 2024 14:18:58 +0100
|
|
Subject: [PATCH] Return null for empty String in NamespacedKey.fromString
|
|
|
|
|
|
diff --git a/src/main/java/org/bukkit/NamespacedKey.java b/src/main/java/org/bukkit/NamespacedKey.java
|
|
index 8ac72cb0b05e2c493d98310f2e87c3714d15c5e3..95bc1078e35a92624b6627e78ed80080832d1b57 100644
|
|
--- a/src/main/java/org/bukkit/NamespacedKey.java
|
|
+++ b/src/main/java/org/bukkit/NamespacedKey.java
|
|
@@ -89,8 +89,6 @@ public final class NamespacedKey implements net.kyori.adventure.key.Key, com.des
|
|
this.namespace = namespace;
|
|
this.key = key;
|
|
|
|
- String string = toString();
|
|
- Preconditions.checkArgument(string.length() < 256, "NamespacedKey must be less than 256 characters", string);
|
|
}
|
|
|
|
/**
|
|
@@ -116,8 +114,6 @@ public final class NamespacedKey implements net.kyori.adventure.key.Key, com.des
|
|
Preconditions.checkArgument(isValidNamespace(this.namespace), "Invalid namespace. Must be [a-z0-9._-]: %s", this.namespace);
|
|
Preconditions.checkArgument(isValidKey(this.key), "Invalid key. Must be [a-z0-9/._-]: %s", this.key);
|
|
|
|
- String string = toString();
|
|
- Preconditions.checkArgument(string.length() < 256, "NamespacedKey must be less than 256 characters (%s)", string);
|
|
}
|
|
|
|
@NotNull
|
|
@@ -206,7 +202,10 @@ public final class NamespacedKey implements net.kyori.adventure.key.Key, com.des
|
|
*/
|
|
@Nullable
|
|
public static NamespacedKey fromString(@NotNull String string, @Nullable Plugin defaultNamespace) {
|
|
- Preconditions.checkArgument(string != null && !string.isEmpty(), "Input string must not be empty or null");
|
|
+ // Paper - Return null for empty string
|
|
+ Preconditions.checkArgument(string != null, "Input string must not be null");
|
|
+ if (string.isEmpty()) return null;
|
|
+ // Paper end - Return null for empty string
|
|
|
|
String[] components = string.split(":", 3);
|
|
if (components.length > 2) {
|
|
diff --git a/src/test/java/org/bukkit/NamespacedKeyTest.java b/src/test/java/org/bukkit/NamespacedKeyTest.java
|
|
index 6317798e43332f34f79970ded0f023beee868fed..d4e9e24b705a7ac3e9f4fc27eefa44ecb16aa35c 100644
|
|
--- a/src/test/java/org/bukkit/NamespacedKeyTest.java
|
|
+++ b/src/test/java/org/bukkit/NamespacedKeyTest.java
|
|
@@ -29,6 +29,7 @@ public class NamespacedKeyTest {
|
|
assertNull(NamespacedKey.fromString("foo:bar:bazz"));
|
|
}
|
|
|
|
+ @org.junit.jupiter.api.Disabled // Paper - Fixup NamespacedKey handling
|
|
@Test
|
|
public void testFromStringEmptyInput() {
|
|
assertThrows(IllegalArgumentException.class, () -> NamespacedKey.fromString(""));
|
|
@@ -75,6 +76,7 @@ public class NamespacedKeyTest {
|
|
"loremipsumdolorsitametconsecteturadipiscingelitduisvolutpatvelitsitametmaximusscelerisquemorbiullamcorperexacconsequategestas").toString();
|
|
}
|
|
|
|
+ @org.junit.jupiter.api.Disabled // Paper - Fixup NamespacedKey handling
|
|
@Test
|
|
public void testAboveLength() {
|
|
assertThrows(IllegalArgumentException.class, () -> new NamespacedKey("loremipsumdolorsitametconsecteturadipiscingelitduisvolutpatvelitsitametmaximusscelerisquemorbiullamcorperexacconsequategestas",
|