6663908: NegativeArraySizeException is not thrown
Summary: Don't optimize zero length array allocations at compile time.
Reviewed-by: kvn, never
--- a/hotspot/src/share/vm/opto/parse3.cpp Thu Apr 03 21:26:03 2008 -0700
+++ b/hotspot/src/share/vm/opto/parse3.cpp Mon Apr 07 15:15:16 2008 -0700
@@ -408,7 +408,7 @@
jint dim_con = find_int_con(length[j], -1);
expand_fanout *= dim_con;
expand_count += expand_fanout; // count the level-J sub-arrays
- if (dim_con < 0
+ if (dim_con <= 0
|| dim_con > expand_limit
|| expand_count > expand_limit) {
expand_count = 0;