RFR(S): JDK-8030708: warnings from b119 for jdk/src/share/back: JNI exception pending

Dmitry Samersoff dmitry.samersoff at oracle.com
Thu Oct 16 10:08:45 UTC 2014


David,

Changed. Thank you for review!

please, see:

http://cr.openjdk.java.net/~dsamersoff/JDK-8030708/webrev.02/

-Dmitry

On 2014-10-16 04:24, David Holmes wrote:
> On 16/10/2014 12:33 AM, Dmitry Samersoff wrote:
>> David,
>>
>> Sorry, copied wrong function!
>>
>> I mean this call
>>
>> weakRef = JNI_FUNC_PTR(env,NewWeakGlobalRef)(env, ref);
>>
>> that can post  OutOfMemoryError
> 
> Okay, so shouldn't that be where the exception is cleared:
> 
>    /* Create weak reference to make sure we have a reference */
>     weakRef = JNI_FUNC_PTR(env,NewWeakGlobalRef)(env, ref);
>     if (weakRef == NULL) {
> +       // < clear exception here >
>         jvmtiDeallocate(node);
>         return NULL;
>     }
> 
> Thanks,
> David
> -----
> 
>> commonRef_refToID() ->
>>
>> createNode(JNIEnv *env, jobject ref) ->
>>
>> weakRef = JNI_FUNC_PTR(env,NewWeakGlobalRef)(env, ref);
>>
>> -Dmitry
>>
>> On 2014-10-15 16:21, David Holmes wrote:
>>> On 15/10/2014 8:39 PM, Dmitry Samersoff wrote:
>>>> On 2014-10-15 14:27, David Holmes wrote:
>>>>> On 15/10/2014 8:08 PM, Dmitry Samersoff wrote:
>>>>>> Please review the fix:
>>>>>>
>>>>>> http://cr.openjdk.java.net/~dsamersoff/JDK-8030708/webrev.01/
>>>>>>
>>>>>> Added missed exception checks.
>>>>>
>>>>> src/jdk.jdwp.agent/share/native/libjdwp/outStream.c
>>>>>
>>>>> What is potentially posting the exception?
>>>>
>>>> JvmtiEnv::GetTag(jobject object, jlong* tag_ptr) called from
>>>> commonRef_refToID()
>>>
>>> You mean this call:
>>>
>>>     error = JVMTI_FUNC_PTR(gdata->jvmti,GetTag)(gdata->jvmti, ref,
>>> &tag);
>>
>> x
>>>
>>> in findNodeByRef which is called by commonRef_refToID?  JVM TI doesn't
>>> post exceptions.
>>>
>>> "JVM TI functions never throw exceptions; error conditions are
>>> communicated via the function return value. Any existing exception state
>>> is preserved across a call to a JVM TI function."
>>>
>>> http://docs.oracle.com/javase/8/docs/platform/jvmti/jvmti.html
>>>
>>> David
>>>
>>>> -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 serviceability-dev mailing list