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

serviceability/sa/ClhsdbJdis.java fails with "java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 1"

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: P4 P4
    • tbd
    • 15
    • hotspot
    • None

      The test has failed a few times for this reason over the past year, but has for the most part been incorrectly linked to other CRs. Here's the failure:

       LingeredApp stdout: [];
       LingeredApp stderr: []
       LingeredApp exitValue = 0
      java.lang.RuntimeException: Test ERROR java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 1
      at ClhsdbJdis.main(ClhsdbJdis.java:89)
      at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.base/java.lang.reflect.Method.invoke(Method.java:564)
      at com.sun.javatest.regtest.agent.MainWrapper$MainThread.run(MainWrapper.java:127)
      at java.base/java.lang.Thread.run(Thread.java:832)
      Caused by: java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 1
      at ClhsdbJdis.main(ClhsdbJdis.java:62)
      ... 6 more

      Looking at the code:

                  String cmdStr = null;
                  String[] parts = output.split("LingeredApp.main");
                  String[] tokens = parts[1].split(" ");
                  for (String token : tokens) {
                      if (token.contains("Method")) {
                          String[] address = token.split("=");
                          // address[1] represents the address of the Method
                          cmdStr = "jdis " + address[1];
                          cmds.add(cmdStr);
                          break;
                      }
                  }

      The exception happens on the parts[1] reference. Probably we did not get the expected output. I also saw one case that had the same error on the address[1] reference. A subtask will be created to have this test do a better job of detecting the incomplete output, and report the output when this happens.

            cjplummer Chris Plummer
            cjplummer Chris Plummer
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: