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

ByteBufferTest.java: replace endless recursion with RuntimeException in void ck(double x, double y)

    XMLWordPrintable

Details

    • Enhancement
    • Status: Closed
    • P4
    • Resolution: Fixed
    • 19
    • 19
    • hotspot
    • b13
    • Fix failed

    Description

      We have two functions ck, that are supposed to compare the two inputs and make the test fail if they are not equal.

          void ck(long x, long y) {
              if (x != y) {
                  throw new RuntimeException(" x = " + Long.toHexString(x) + ", y = " + Long.toHexString(y));
              }
          }

          void ck(double x, double y) {
              if (x == x && y == y && x != y) {
                  ck(x, y);
              }
          }

      The long throws a RuntimeException.
      The one for double goes into an infinite recursion, and eventually throws a StackOverflowError. This does not make much sense.
      I spoke with the original author [~psandoz], he agrees to replace it with an analogue RuntimeException.

          void ck(double x, double y) {
              if (x == x && y == y && x != y) {
                  throw new RuntimeException(...);
              }
          }

      Code introduced in JDK-8151163.
      Bug in JDK-8282555 encountered both this endless recursion as the RuntimeException, of the respective ck functions.

      Attachments

        Issue Links

          Activity

            People

              epeter Emanuel Peter
              epeter Emanuel Peter
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: