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

Attach code should propagate errors in Diagnostic Commands as errors

    XMLWordPrintable

    Details

    • Type: Enhancement
    • Status: Resolved
    • Priority: P4
    • Resolution: Fixed
    • Affects Version/s: 9
    • Fix Version/s: 9
    • Component/s: hotspot
    • Subcomponent:
      svc
    • Resolved In Build:
      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

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

                  Dates

                  • Created:
                    Updated:
                    Resolved: