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: 6578152
Votes 0
Synopsis fill_region_with_object has usability and safety issues
Category hotspot:garbage_collector
Reported Against
Release Fixed hs14(b09), 7(b42) (Bug ID:2172387) , 6u14(b01) (Bug ID:2172855)
State 10-Fix Delivered, bug
Priority: 4-Low
Related Bugs 6656830 , 6679764 , 6786195
Submit Date 09-JUL-2007
Description
SharedHeap::fill_region_with_object has some issues with ...

Usability:  it requires a MemRegion to be passed in, but its designated purpose means that a MemRegion is almost never available at the call site, so one must be constructed just for the call, causing unnecessary obfuscation.

Safety:  it will silently fail to properly fill large regions.
Posted Date : 2007-07-09 11:20:41.0
Work Around
N/A
Evaluation
Usability:  Move the filler object creation code from SharedHeap to CollectedHeap since all collectors inherit from CollectedHeap.  Change the interface to accept a start address and length in words and include an overloaded inline method that accepts a MemRegion for compability.  Replace the custom filler object code in PSMarkSweepDecorator::insert_deadspace() and CompactibleSpace::insert_deadspace() with calls to the common routines.  Use a separate Klass oop for for the filler objs (at least those large enough to be filled with an array) so they can be distinguished from user-created int arrays.

Safety:  allow filling of large regions (>= 8G, the largest int array) in the 64-bit VM with a routine that can create multiple filler objects.

Misc:  tighten up the implementation of arrayOopDesc::max_array_length(); the prior version did not use MinObjAlignment and was off by 2.
Posted Date : 2008-11-04 20:51:14.0

http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/7d7a7c599c17
Posted Date : 2008-12-12 03:18:00.0
Comments
  
  Include a link with my name & email   


PLEASE NOTE: JDK6 is formerly known as Project Mustang