Thanks, Markus! On 30 maj 2014, at 09:26, Markus Grönlund <markus.gronl...@oracle.com> wrote:
> Looks good. > > /Markus > > -----Original Message----- > From: Staffan Larsen > Sent: den 30 maj 2014 08:51 > To: serviceability-dev@openjdk.java.net serviceability-dev@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