6745217: jmap assertion failure
authorpoonam
Sat, 15 May 2010 18:24:34 -0700
changeset 5528 4c95c500fc8b
parent 5414 46657363a8f9
child 5529 62a466bf187f
6745217: jmap assertion failure Summary: SA shows exception with core files > 2GB. These changes fix that by correcting the size of CMSBitmap during its allocation. Reviewed-by: swamyv
hotspot/agent/src/share/classes/sun/jvm/hotspot/memory/CMSBitMap.java
hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/JavaThread.java
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/memory/CMSBitMap.java	Mon May 10 13:09:44 2010 -0700
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/memory/CMSBitMap.java	Sat May 15 18:24:34 2010 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 2007-2010 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -78,9 +78,8 @@
   }
 
   public BitMap bm() {
-    BitMap bitMap = new BitMap((int) (bmWordSize() >> (shifter() + 3) ));
+    BitMap bitMap = new BitMap((int) (bmWordSize() >> shifter() ));
     VirtualSpace vs = virtualSpace();
-    //bitMap.set_size((int)vs.committedSize());
     bitMap.set_map(vs.low());
     return bitMap;
   }
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/JavaThread.java	Mon May 10 13:09:44 2010 -0700
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/JavaThread.java	Sat May 15 18:24:34 2010 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2009 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 2000-2010 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -326,7 +326,13 @@
 
   /** Gets the Java-side thread object for this JavaThread */
   public Oop getThreadObj() {
-    return VM.getVM().getObjectHeap().newOop(threadObjField.getValue(addr));
+    Oop obj = null;
+    try {
+      obj = VM.getVM().getObjectHeap().newOop(threadObjField.getValue(addr));
+    } catch (Exception e) {
+      e.printStackTrace();
+    }
+    return obj;
   }
 
   /** Get the Java-side name of this thread */