# HG changeset patch # User poonam # Date 1273973074 25200 # Node ID 9d4dd91c4a0a9ae86baa03700d0703c357f34c5b # Parent 4ad4e0ee37795b4a01616ac80f365b2474e0784e 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 diff -r 4ad4e0ee3779 -r 9d4dd91c4a0a agent/src/share/classes/sun/jvm/hotspot/memory/CMSBitMap.java --- 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; } diff -r 4ad4e0ee3779 -r 9d4dd91c4a0a agent/src/share/classes/sun/jvm/hotspot/runtime/JavaThread.java --- 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 */