Bukkit/Bukkit — pull request #718 by DarthAndroid (2012-11-19 02:56:03+00:00)
Title: Cache calls to getConstructor in org.bukkit.Material to reduce costly reflection lookups

Every call to `ItemStack.setTypeId(int)` causes `Material.getNewData(int)` to reflect a `MaterialData` constructor and then create a new instance of `MaterialData`. This was [proving extremely costly](https://dl.dropbox.com/u/162360/getConstructor.png) on our server, consuming roughly 35% of our main server thread.

While this issue is aggravated by a plugin, it can still be fixed on Bukkit's side by caching the `MaterialData