The problem is in the declared signature returned by ciBytecodeStream::get_method which was added with 7192406.
We create a ciSignature object with the constant pool holder as accessing class. ciEnv::get_klass_by_name_impl doesn't delegate to its parent class loaders and we can't call SystemDictionary::resolve_or_null because we are in the compiler thread. Thus all lookups happen in the class loader of the accessing class.
This leads to supposedly unloaded classes like org/jruby/RubyString or even java/lang/Object.