diff -r 04f64d06050a -r f4362c8da849 hotspot/src/share/vm/prims/methodHandleWalk.cpp --- a/hotspot/src/share/vm/prims/methodHandleWalk.cpp Mon Sep 13 16:45:00 2010 -0700 +++ b/hotspot/src/share/vm/prims/methodHandleWalk.cpp Mon Sep 13 23:24:30 2010 -0700 @@ -333,8 +333,7 @@ ArgToken arglist[2]; arglist[0] = arg; // outgoing value arglist[1] = ArgToken(); // sentinel - assert(false, "I think the argument count must be 1 instead of 0"); - arg = make_invoke(NULL, boxer, Bytecodes::_invokevirtual, false, 0, &arglist[0], CHECK_(empty)); + arg = make_invoke(NULL, boxer, Bytecodes::_invokevirtual, false, 1, &arglist[0], CHECK_(empty)); change_argument(src, arg_slot, T_OBJECT, arg); break; } @@ -1398,7 +1397,9 @@ extern "C" void print_method_handle(oop mh) { - if (java_dyn_MethodHandle::is_instance(mh)) { + if (!mh->is_oop()) { + tty->print_cr("*** not a method handle: "INTPTR_FORMAT, (intptr_t)mh); + } else if (java_dyn_MethodHandle::is_instance(mh)) { //MethodHandlePrinter::print(mh); } else { tty->print("*** not a method handle: ");