From 08fa8ed053c2c618f2de19c15495abec4e613243 Mon Sep 17 00:00:00 2001 From: Bukkit/Spigot Date: Fri, 11 Jan 2013 02:07:38 +0100 Subject: [PATCH] Added negative id check to Material.getMaterial(int). Fixes BUKKIT-3414 Negative id values would try to access the array out of bounds and throw an java.lang.ArrayIndexOutOfBoundsException. By: MikeMatrix --- paper-api/src/main/java/org/bukkit/Material.java | 2 +- paper-api/src/test/java/org/bukkit/MaterialTest.java | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/paper-api/src/main/java/org/bukkit/Material.java b/paper-api/src/main/java/org/bukkit/Material.java index 1a72610483..7d26f61ea1 100644 --- a/paper-api/src/main/java/org/bukkit/Material.java +++ b/paper-api/src/main/java/org/bukkit/Material.java @@ -528,7 +528,7 @@ public enum Material { * @return Material if found, or null */ public static Material getMaterial(final int id) { - if (byId.length > id) { + if (byId.length > id && id >= 0) { return byId[id]; } else { return null; diff --git a/paper-api/src/test/java/org/bukkit/MaterialTest.java b/paper-api/src/test/java/org/bukkit/MaterialTest.java index c1051caf32..e74e2f28be 100644 --- a/paper-api/src/test/java/org/bukkit/MaterialTest.java +++ b/paper-api/src/test/java/org/bukkit/MaterialTest.java @@ -33,6 +33,7 @@ public class MaterialTest { @Test public void getByOutOfRangeId() { assertThat(Material.getMaterial(Integer.MAX_VALUE), is(nullValue())); + assertThat(Material.getMaterial(Integer.MIN_VALUE), is(nullValue())); } @Test