changeset 1533:9d4dd91c4a0a

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
author poonam
date Sat, 15 May 2010 18:24:34 -0700
parents 4ad4e0ee3779
children 7ccc203eb6ff
files agent/src/share/classes/sun/jvm/hotspot/memory/CMSBitMap.java agent/src/share/classes/sun/jvm/hotspot/runtime/JavaThread.java
diffstat 2 files changed, 10 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/agent/src/share/classes/sun/jvm/hotspot/memory/CMSBitMap.java	Mon May 10 13:09:44 2010 -0700
+++ b/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/agent/src/share/classes/sun/jvm/hotspot/runtime/JavaThread.java	Mon May 10 13:09:44 2010 -0700
+++ b/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 */