1.1 --- a/src/share/vm/opto/library_call.cpp Fri Jun 13 15:04:38 2014 -0700 1.2 +++ b/src/share/vm/opto/library_call.cpp Tue Jun 17 09:02:30 2014 +0000 1.3 @@ -4576,7 +4576,10 @@ 1.4 // It's an instance, and it passed the slow-path tests. 1.5 PreserveJVMState pjvms(this); 1.6 Node* obj_size = NULL; 1.7 - Node* alloc_obj = new_instance(obj_klass, NULL, &obj_size); 1.8 + // Need to deoptimize on exception from allocation since Object.clone intrinsic 1.9 + // is reexecuted if deoptimization occurs and there could be problems when merging 1.10 + // exception state between multiple Object.clone versions (reexecute=true vs reexecute=false). 1.11 + Node* alloc_obj = new_instance(obj_klass, NULL, &obj_size, /*deoptimize_on_exception=*/true); 1.12 1.13 copy_to_clone(obj, alloc_obj, obj_size, false, !use_ReduceInitialCardMarks()); 1.14