When permissibles recalculate their permissions they set the default permission values in the order as the default permissions are provided by the plugin manager.
This order is currently arbitrary and can even change depending on the number of buckets of the underlying hashset which stores those default permissions.
When a plugin defines default permissions inside its plugin.yml (eg. permission 'A' with default value 'true') and a server admin defines different default values for these permissions inside the permissions.yml (eg. permission 'myDefaultPerms' with default value 'true' and with child 'A' set to 'false'), then the outcome will depend on the order in which those default permissions (and their childs) get evaluated inside PermissableBase#recalculatePermissions().
The permission which gets processed last will overwrite the permission value of 'A' according to its definition. Since this order is arbitrary and inconsistent, the server admin will experience weird behavior with his defined default permissions sometimes working and sometimes not.
As the PotionEffectType class is containing a bunch of constant values
the values method now fits the general idea of the Enum#values method as
it no longer returns a null object at index 0
With Java 7 we can register the classloader as parallel capable to prevent deadlocks caused by certain scenarios. Due to the nature of PluginClassLoader this isn't completely safe, but we can make it safer by switching to concurrency focused collections. Either way this is far better than crashing the server.