Mercurial > hg > truffle
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 */