RFR: 8146416: java.lang.OutOfMemoryError triggers: assert(current_bci == 0) failed: bci isn't zero for do_not_unlock_if_synchronized

Jamsheed C m jamsheed.c.m at oracle.com
Fri May 27 02:35:54 UTC 2016

Hi Roland,

now i would like to defend my change a bit.

By checking for any pending runtime exception before return to 
interpreter, i limit scope of my change and checks to small area of code.
forward_exception_entry is used for checking any pending exception after 
runtime calls..

in this case ,
forward_exception_entry will work perfectly! as return_pc is used only 
for finding where to forward  in case of runtime exception!
and in our case its always interpreter rethrow exception handler, as 
return_pc is always is in interpreter.
(return pc here can be either _rethrow_exception_entry, or a deopt_entry).

interpreter rethrow exception handler is rethrow_exception_entry. 
return_pc is used only for finding this handler. and it will be always 

rethrow_exception_entry will handle exception as expected!

can i go ahead with this change ?

Best Regards,

On 5/26/2016 6:05 PM, Roland Westrelin wrote:
>> On 5/26/2016 4:57 PM, Roland Westrelin wrote:
>>> We are replacing an existing exception with another one. Why would the
>>> expression stack matter?
>> realloc failure in "non exception deoptimization" case.
> In that case, we do nothing more than the existing code does.
> Roland.

More information about the hotspot-compiler-dev mailing list