Index: vm/vmcore/include/Class.h =================================================================== --- vm/vmcore/include/Class.h (revision 558625) +++ vm/vmcore/include/Class.h (working copy) @@ -704,7 +725,7 @@ /** Converts a class name from an internal (VM) form to the Java form. * @param[in] class_name - the class name in an internal form * @return The class name in the Java form.*/ -String* class_name_get_java_name(const String* class_name); +VMEXPORT String* class_name_get_java_name(const String* class_name); // A Java class extern "C" { Index: vm/interpreter/src/interpreter.cpp =================================================================== --- vm/interpreter/src/interpreter.cpp (revision 558625) +++ vm/interpreter/src/interpreter.cpp (working copy) @@ -2234,7 +2234,7 @@ ManagedObject *obj = UNCOMPRESS_REF(frame.stack.pick().cr); if (!(obj == 0 || vm_instanceof(obj, objClass))) { - interp_throw_exception("java/lang/ClassCastException"); + interp_throw_exception("java/lang/ClassCastException", obj->vt()->clss->get_java_name()->bytes); return; } frame.ip += 3; Index: vm/vmcore/src/jit/jit_runtime_support.cpp =================================================================== --- vm/vmcore/src/jit/jit_runtime_support.cpp (revision 558625) +++ vm/vmcore/src/jit/jit_runtime_support.cpp (working copy) @@ -2271,10 +2271,10 @@ obj = obj_h->object; oh_discard_local_handle(obj_h); END_RAISE_AREA - + Boolean res = class_is_subtype(objClass, castClass); if (!res) { - exn_throw_by_name("java/lang/ClassCastException"); + exn_throw_by_name("java/lang/ClassCastException", objClass->get_java_name()->bytes); } return obj; } Index: vm/vmcore/src/exception/exceptions_jit.cpp =================================================================== --- vm/vmcore/src/exception/exceptions_jit.cpp (revision 558625) +++ vm/vmcore/src/exception/exceptions_jit.cpp (working copy) @@ -956,15 +956,7 @@ Class_Handle exn_get_class_cast_exception_type() { assert(hythread_is_suspend_enabled()); - Class *exn_clss; - - Global_Env *env = VM_Global_State::loader_env; - String *exc_str = env->string_pool.lookup("java/lang/ClassCastException"); - exn_clss = - env->bootstrap_class_loader->LoadVerifyAndPrepareClass(env, exc_str); - assert(exn_clss); - - return exn_clss; + return VM_Global_State::loader_env->java_lang_ClassCastException_Class; } // rth_throw_class_cast_exception throws a class cast exception (lazily)