--- old/src/hotspot/share/opto/locknode.cpp 2019-03-11 14:26:45.902354606 +0100 +++ new/src/hotspot/share/opto/locknode.cpp 2019-03-11 14:26:45.690354609 +0100 @@ -182,8 +182,16 @@ void Parse::do_monitor_enter() { kill_dead_locals(); + Node* obj = peek(); + + if (obj->is_ValueType()) { + uncommon_trap(Deoptimization::Reason_class_check, + Deoptimization::Action_none); + return; + } + // Null check; get casted pointer. - Node* obj = null_check(peek()); + obj = null_check(obj); // Check for locking null object if (stopped()) return;