Java Solaris Communities Sun Store Join SDN My Profile Why Join?
 
Bug Database
Bug Detail
Quick Lists
Top 25 Bugs
Top 25 RFE's
Recently Closed Bugs
Printable Page Printable Page


Bug Database
Bug ID: 6621098
Votes 0
Synopsis "* HeapWordSize" for TrackedInitializationLimit is missing in set_output_for_allocation()
Category hotspot:compiler2
Reported Against
Release Fixed hs12(b02)
State 10-Fix Delivered, bug
Priority: 4-Low
Related Bugs
Submit Date 24-OCT-2007
Description
I investigated EA problem when I see NULL pointer
exception of the oop field of scalar replaced  customer .
And during investigation I noticed that InitializeNode
doesn't cover all fields. Looking further I found
that global flag TrackedInitializationLimit is treated
differently:

c2_globals.hpp
   product(intx, TrackedInitializationLimit, 50,                             \
           "When initializing fields, track up to this many words")          \

GraphKit::set_output_for_allocation()

2810         if (field->offset() >= TrackedInitializationLimit)
2811           continue;  // do not bother to track really large numbers of fields

InitializeNode::captured_store_insertion_point()

2075   // after a certain size, we bail out on tracking all the stores:
2076   intptr_t ti_limit = (TrackedInitializationLimit * HeapWordSize);
2077   if (start >= ti_limit)  return FAIL;

It seems, "* HeapWordSize" is missing in set_output_for_allocation().
As result, my field with offset +48 was initialized to 0, but with offset
+56 is not.
Posted Date : 2007-10-24 17:46:31.0
Work Around
N/A
Evaluation
See description.
Posted Date : 2007-10-24 17:46:31.0
Comments
  
  Include a link with my name & email   


PLEASE NOTE: JDK6 is formerly known as Project Mustang