RFR: 8044398 Attach code should propagate errors in Diagnostic Commands as errors

Staffan Larsen staffan.larsen at oracle.com
Fri May 30 08:21:09 UTC 2014


Thanks, Markus!

On 30 maj 2014, at 09:26, Markus Grönlund <markus.gronlund at oracle.com> wrote:

> Looks good.
> 
> /Markus
> 
> -----Original Message-----
> From: Staffan Larsen 
> Sent: den 30 maj 2014 08:51
> To: serviceability-dev at openjdk.java.net serviceability-dev at openjdk.java.net; hotspot-runtime-dev
> Subject: RFR: 8044398 Attach code should propagate errors in Diagnostic Commands as errors
> 
> The code in attachListener.cpp does this: 
> 
>  DCmd::parse_and_execute(DCmd_Source_AttachAPI, out, op->arg(0), ' ', THREAD); 
>  if (HAS_PENDING_EXCEPTION) { 
>    java_lang_Throwable::print(PENDING_EXCEPTION, out); 
>    out->cr(); 
>    CLEAR_PENDING_EXCEPTION; 
>    // The exception has been printed on the output stream 
>    // If the JVM returns JNI_ERR, the attachAPI throws a generic I/O 
>    // exception and the content of the output stream is not processed. 
>    // By returning JNI_OK, the exception will be displayed on the client side 
>  } 
>  return JNI_OK; 
> 
> That was correct before the fix of JDK-8039173. After that fix, the attach framework is able to propagate error messages as exceptions when an attach command fails. 
> 
> The code in attachListener.cpp should be updated to: 
> 
>  DCmd::parse_and_execute(DCmd_Source_AttachAPI, out, op->arg(0), ' ', THREAD); 
>  if (HAS_PENDING_EXCEPTION) { 
>    java_lang_Throwable::print(PENDING_EXCEPTION, out); 
>    out->cr(); 
>    CLEAR_PENDING_EXCEPTION; 
>    return JNI_ERR; 
>  } 
>  return JNI_OK; 
> 
> webrev: http://cr.openjdk.java.net/~sla/8044398/webrev.00/
> bug: https://bugs.openjdk.java.net/browse/JDK-8044398
> 
> Thanks,
> /Staffan



More information about the serviceability-dev mailing list