RFR(M): JDK-8165496 assert(_exception_caught == false) failed: _exception_caught is out of phase

Dmitry Samersoff dmitry.samersoff at oracle.com
Tue Dec 6 09:54:58 UTC 2016


Serguei.

I intentionally decide not to provide generic accessor functions
for _exception_state.

Developers should use set_exception_detected(),  set_exception_caught(),
 clear_exception_state() but don't change _exception_state directly.

And save_exception_state()/restore_exception_state() name and signature
clear indicates that the only valid usage of these functions is backup
of exception_state.

So I would prefer to leave it as is.

-Dmitry


On 2016-12-06 08:57, serguei.spitsyn at oracle.com wrote:
> Hi Dmitry,
> 
> 
> I'm repeating my comments from the internal review.
> 
> It looks pretty good to me.
> Thank you for the work on it!
> 
> I'm not a big fun of new jvmtiThreadState functions though:
> 
> + inline void save_exception_state(ExceptionState *state) { *state =
> _exception_state; }
> + inline void restore_exception_state(ExceptionState state) {
> _exception_state = state; } The functions above do not really
> encapsulate and save/restore the _exception_state value so that these
> names are kind of misleading. The same functionality can be provided
> with a simplified approach:     inline JvmtiThreadState
> exception_state() { return_exception_state;  }
>    inline void set_exception_state(ExceptionState state){
> _exception_state = state; }
> 
>  
> I do not want to insist on my approach and will wait for other people
> comments on this.
> I hope, some compromise can be found here.
> 
> 
> On 12/5/16 01:30, Dmitry Samersoff wrote:
>> Everybody,
>>
>> Please review.
>>
>> http://cr.openjdk.java.net/~dsamersoff/JDK-8165496/webrev.07/
>>
>> Bug link:
>>
>> https://bugs.openjdk.java.net/browse/JDK-8165496
>>
>> Two separate flags, exception_detected and exception_caught, replaced
>> with one that changes it's state.
>>
>> Assert assert(_exception_caught == false) and fix for JDK-8134434 are
>> removed.
>>
>> Testing:
>>    1. Manual testing of instrumented hotspot
>>    2. Local ks with stress agent
>>    3. RBT ks with stress agent
> 
> What the 'ks' stands for?
> I have some guess but still would like to know this abbreviation.
> 
> Thanks,
> Serguei
> 
>>    4. RBT hotspot_all
>>
>> -Dmitry
>>
> 


-- 
Dmitry Samersoff
Oracle Java development team, Saint Petersburg, Russia
* I would love to change the world, but they won't give me the sources.


More information about the hotspot-runtime-dev mailing list