mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-28 15:30:19 +01:00
Return null for empty String in NamespacedKey.fromString
This commit is contained in:
parent
bafc86226b
commit
607a4b2bdf
2 changed files with 8 additions and 3 deletions
|
@ -90,7 +90,7 @@ public final class NamespacedKey implements net.kyori.adventure.key.Key { // Pap
|
||||||
this.key = key;
|
this.key = key;
|
||||||
|
|
||||||
String string = toString();
|
String string = toString();
|
||||||
Preconditions.checkArgument(string.length() < 256, "NamespacedKey must be less than 256 characters", string);
|
Preconditions.checkArgument(string.length() <= Short.MAX_VALUE, "NamespacedKey must be less than 32768 characters", string); // Paper - Fix improper length validation
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -117,7 +117,7 @@ public final class NamespacedKey implements net.kyori.adventure.key.Key { // Pap
|
||||||
Preconditions.checkArgument(isValidKey(this.key), "Invalid key. Must be [a-z0-9/._-]: %s", this.key);
|
Preconditions.checkArgument(isValidKey(this.key), "Invalid key. Must be [a-z0-9/._-]: %s", this.key);
|
||||||
|
|
||||||
String string = toString();
|
String string = toString();
|
||||||
Preconditions.checkArgument(string.length() < 256, "NamespacedKey must be less than 256 characters (%s)", string);
|
Preconditions.checkArgument(string.length() <= Short.MAX_VALUE, "NamespacedKey must be less than 32768 characters", string); // Paper - Fix improper length validation
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
|
@ -205,7 +205,10 @@ public final class NamespacedKey implements net.kyori.adventure.key.Key { // Pap
|
||||||
*/
|
*/
|
||||||
@Nullable
|
@Nullable
|
||||||
public static NamespacedKey fromString(@NotNull String string, @Nullable Plugin defaultNamespace) {
|
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, check length
|
||||||
|
Preconditions.checkArgument(string != null, "Input string must not be null");
|
||||||
|
if (string.isEmpty() || string.length() > Short.MAX_VALUE) return null;
|
||||||
|
// Paper end - Return null for empty string, check length
|
||||||
|
|
||||||
String[] components = string.split(":", 3);
|
String[] components = string.split(":", 3);
|
||||||
if (components.length > 2) {
|
if (components.length > 2) {
|
||||||
|
|
|
@ -29,6 +29,7 @@ public class NamespacedKeyTest {
|
||||||
assertNull(NamespacedKey.fromString("foo:bar:bazz"));
|
assertNull(NamespacedKey.fromString("foo:bar:bazz"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@org.junit.jupiter.api.Disabled // Paper - Fixup NamespacedKey handling
|
||||||
@Test
|
@Test
|
||||||
public void testFromStringEmptyInput() {
|
public void testFromStringEmptyInput() {
|
||||||
assertThrows(IllegalArgumentException.class, () -> NamespacedKey.fromString(""));
|
assertThrows(IllegalArgumentException.class, () -> NamespacedKey.fromString(""));
|
||||||
|
@ -75,6 +76,7 @@ public class NamespacedKeyTest {
|
||||||
"loremipsumdolorsitametconsecteturadipiscingelitduisvolutpatvelitsitametmaximusscelerisquemorbiullamcorperexacconsequategestas").toString();
|
"loremipsumdolorsitametconsecteturadipiscingelitduisvolutpatvelitsitametmaximusscelerisquemorbiullamcorperexacconsequategestas").toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@org.junit.jupiter.api.Disabled // Paper - Fixup NamespacedKey handling
|
||||||
@Test
|
@Test
|
||||||
public void testAboveLength() {
|
public void testAboveLength() {
|
||||||
assertThrows(IllegalArgumentException.class, () -> new NamespacedKey("loremipsumdolorsitametconsecteturadipiscingelitduisvolutpatvelitsitametmaximusscelerisquemorbiullamcorperexacconsequategestas",
|
assertThrows(IllegalArgumentException.class, () -> new NamespacedKey("loremipsumdolorsitametconsecteturadipiscingelitduisvolutpatvelitsitametmaximusscelerisquemorbiullamcorperexacconsequategestas",
|
||||||
|
|
Loading…
Reference in a new issue