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

Daniel D. Daugherty daniel.daugherty at oracle.com
Fri May 30 13:26:23 UTC 2014


 > webrev: http://cr.openjdk.java.net/~sla/8044398/webrev.00/

src/share/vm/services/attachListener.cpp
     No comment.

Thumbs up!

Dan


On 5/30/14 12:51 AM, Staffan Larsen wrote:
> 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 hotspot-runtime-dev mailing list