# HG changeset patch # User poonam # Date 1237165906 25200 # Node ID 54782a4cd321efc2c643506b6c109c0d02a3ed90 # Parent 3db67f76d308233bf701cffdc3d9a44a0b0d63ef 6812971: SA: re-attaching to process fails Summary: After attaching, de-attaching SA from a process, the second time attach() call fails. This happens because in VM.initialize(), Universe does not get re-initialized before it is accessed. Reviewed-by: swamyv diff -r 3db67f76d308 -r 54782a4cd321 agent/src/share/classes/sun/jvm/hotspot/runtime/VM.java --- a/agent/src/share/classes/sun/jvm/hotspot/runtime/VM.java Thu Mar 05 22:07:29 2009 -0500 +++ b/agent/src/share/classes/sun/jvm/hotspot/runtime/VM.java Sun Mar 15 18:11:46 2009 -0700 @@ -342,11 +342,13 @@ throw new RuntimeException("Attempt to initialize VM twice"); } soleInstance = new VM(db, debugger, debugger.getMachineDescription().isBigEndian()); - debugger.putHeapConst(Universe.getHeapBase(), soleInstance.getHeapOopSize(), - soleInstance.logMinObjAlignmentInBytes); + for (Iterator iter = vmInitializedObservers.iterator(); iter.hasNext(); ) { ((Observer) iter.next()).update(null, null); } + + debugger.putHeapConst(Universe.getHeapBase(), soleInstance.getHeapOopSize(), + soleInstance.logMinObjAlignmentInBytes); } /** This is used by the debugging system */