Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8044398

Attach code should propagate errors in Diagnostic Commands as errors

    XMLWordPrintable

Details

    • Enhancement
    • Resolution: Fixed
    • P4
    • 9
    • 9
    • hotspot
    • svc
    • b19

    Backports

      Description

        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 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;

        Attachments

          Issue Links

            Activity

              People

                sla Staffan Larsen (Inactive)
                sla Staffan Larsen (Inactive)
                Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                  Created:
                  Updated:
                  Resolved: