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

Should clear stackTrace before throwing the preallocated default OutOfMemoryError objects

    Details

    • Type: Bug
    • Status: Closed
    • Priority: P3
    • Resolution: Won't Fix
    • Affects Version/s: 7
    • Fix Version/s: 7
    • Component/s: core-libs
    • Labels:
    • Subcomponent:
    • CPU:
      generic
    • OS:
      generic

      Description

      The Throwable and its subclasses are mutable. The stack trace and suppressed
      exceptions fields can be set programmatically. The VM should clear these fields
      when the preallocated exceptions are reused.

      From Remi Forax:

      This code change the stack trace of permanently allocated OutOfMerroryError.

        public static void main(String[] args) {
          Error last = null;

          for(int i=0; i<100; i++) {
            try {
              Object o = new int[Integer.MAX_VALUE];
            } catch (Error e) {
              StackTraceElement[] stackTrace = e.getStackTrace();
              if (stackTrace != null && stackTrace.length>0 && stackTrace[0].getLineNumber() == -3) {
                e.printStackTrace();
                return;
              }

              if (last == e) {
                StackTraceElement element = new StackTraceElement("Foo", "foo", null, -3);
                e.setStackTrace(new StackTraceElement[]{element});
              }
              last = e;
            }
          }
        }

      To avoid that the VM has to clear the stacktrace when using the default error:
      in universe.cpp, in Universe::gen_out_of_memory_error:

        if (next < 0) {
            // all preallocated errors have been used.
            // return default
      + java_lang_Throwable::clear_stacktrace(default_err);
            return default_err;
          } else {

      And we should do the same for the field suppressed exceptions.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                darcy Joe Darcy
                Reporter:
                mchung Mandy Chung
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:
                  Imported:
                  Indexed: