< prev index next >

src/hotspot/share/oops/objArrayKlass.cpp

Print this page
rev 50282 : 8203881: Print errornous size in NegativeArraySizeException

@@ -179,11 +179,14 @@
       report_java_out_of_memory("Requested array size exceeds VM limit");
       JvmtiExport::post_array_size_exhausted();
       THROW_OOP_0(Universe::out_of_memory_error_array_size());
     }
   } else {
-    THROW_0(vmSymbols::java_lang_NegativeArraySizeException());
+    ResourceMark rm(THREAD);
+    stringStream ss;
+    ss.print("%d", length);
+    THROW_MSG_0(vmSymbols::java_lang_NegativeArraySizeException(), ss.as_string());
   }
 }
 
 static int multi_alloc_counter = 0;
 

@@ -207,11 +210,14 @@
       // allocated, however the lower dimension values must be checked
       // for illegal values.
       for (int i = 0; i < rank - 1; ++i) {
         sizes += 1;
         if (*sizes < 0) {
-          THROW_0(vmSymbols::java_lang_NegativeArraySizeException());
+          ResourceMark rm(THREAD);
+          stringStream ss;
+          ss.print("%d", *sizes);
+          THROW_MSG_0(vmSymbols::java_lang_NegativeArraySizeException(), ss.as_string());
         }
       }
     }
   }
   return h_array();
< prev index next >