6444286: Possible naked oop related to biased locking revocation safepoint in jni_exit()
Summary: Add missing Handle.
Reviewed-by: acorn, dholmes, dice, sspitsyn
Contributed-by: karen.kinnear@oracle.com
--- a/hotspot/src/share/vm/runtime/synchronizer.cpp Mon Jan 21 16:11:24 2013 -0500
+++ b/hotspot/src/share/vm/runtime/synchronizer.cpp Tue Jan 22 05:55:04 2013 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -333,7 +333,9 @@
void ObjectSynchronizer::jni_exit(oop obj, Thread* THREAD) {
TEVENT (jni_exit) ;
if (UseBiasedLocking) {
- BiasedLocking::revoke_and_rebias(obj, false, THREAD);
+ Handle h_obj(THREAD, obj);
+ BiasedLocking::revoke_and_rebias(h_obj, false, THREAD);
+ obj = h_obj();
}
assert(!obj->mark()->has_bias_pattern(), "biases should be revoked by now");