-
Bug
-
Resolution: Fixed
-
Minor
-
None
-
None
-
java version "11" 2018-09-25
Java(TM) SE Runtime Environment 18.9 (build 11+28)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11+28, mixed mode)
-
This server is running CraftBukkit version git-Spigot-f6a273b-4824655 (MC: 1.13.1) (Implementing API version 1.13.1-R0.1-SNAPSHOT)
-
Yes
Java 11 introduced nest-based access control. The java compiler no longer generates package-protected bridge methods when inner classes access private members of their outer classes, but instead the compiler outputs the nest host and nest members in the bytecode of classes. The JVM allows access to those private members if the classes belong to the same nest.
CraftBukkit's compability layer calls ClassVisitor#readNestHostExperimental which throws the exception, even though my plugin has api-version 1.13 defined in its plugin.yml.
I think the bug can easily be fixed by updating the ASM maven dependency and using Opcodes.ASM7, or by not using the compatibility layer for 1.13 plugins.