Details
-
Type:
Bug
-
Status:
Closed
-
Priority:
Blocker
-
Resolution: Fixed
-
Affects Version/s: None
-
Fix Version/s: 3.0
-
Component/s: None
-
Labels:None
-
Number of attachments :
Description
It's very likely that IdentityHashMaps can't be safely carried over from bootimage writing time to run time because our default hash code won't be the same as the host JVM. Verify this, and if it is the case, we need to rework code to avoid use of any such hash maps in the bootimage.
If there are a small number, of "well-known' identity hash maps in the bootimage, then we could make them work by having the bootimage writer traverse their keys and build up a sidetable of objects in identity hash maps right before it starts writing objects to the bootimage. We would then write these objects in "HASHED_AND_MOVED" form with the hashcode being the system hashcode given them by the host JVM.
It's fragile and restricts the object model options for Jikes RVM to those that can represent the 32 bit hash from the host JVM, but if we must have identity hash maps in the bootimage it's probably the only way to make that actually work.