--- old/src/share/vm/oops/constantPool.cpp 2017-05-05 11:33:38.206987820 +0200 +++ new/src/share/vm/oops/constantPool.cpp 2017-05-05 11:33:38.074987824 +0200 @@ -221,7 +221,11 @@ Klass* ConstantPool::klass_at_impl(const constantPoolHandle& this_cp, int which, bool save_resolution_error, TRAPS) { - assert(THREAD->is_Java_thread(), "must be a Java thread"); + //assert(THREAD->is_Java_thread(), "must be a Java thread"); + // TODO re-enable this assert as soon as we have a better solution + // With ValueTypePassFieldsAsArgs, we need to resolve call sites from the GC thread + // to determine the callee signature in nmethod::preserve_callee_argument_oops(). + assert(ValueTypePassFieldsAsArgs || THREAD->is_Java_thread(), "must be a Java thread"); // A resolved constantPool entry will contain a Klass*, otherwise a Symbol*. // It is not safe to rely on the tag bit's here, since we don't have a lock, and