diff -r 5de73d2d685e src/share/classes/com/sun/corba/se/impl/oa/poa/POAImpl.java --- a/src/share/classes/com/sun/corba/se/impl/oa/poa/POAImpl.java Mon Dec 01 13:38:26 2008 -0800 +++ b/src/share/classes/com/sun/corba/se/impl/oa/poa/POAImpl.java Mon Jan 19 12:31:59 2009 +1100 @@ -467,8 +467,6 @@ private boolean destroyIfNotInitDone() { try { - lock() ; - if (debug) { ORBUtility.dprint( this, "Calling destroyIfNotInitDone on poa " + this ) ; @@ -488,14 +486,18 @@ return success ; } finally { - adapterActivatorCV.signalAll() ; + try { + lock(); - if (debug) { - ORBUtility.dprint( this, - "Exiting destroyIfNotInitDone on poa " + this ) ; - } + adapterActivatorCV.signalAll(); - unlock() ; + if (debug) { + ORBUtility.dprint(this, + "Exiting destroyIfNotInitDone on poa " + this); + } + } finally { + unlock(); + } } }