activeObjectMap.Obj obj;
AOM.Obj obj;
  public void destroy(boolean etherealize_objects, boolean wait_for_completion)  {    if (wait_for_completion)      waitWhileRunning();    // Put the brake instead of manager, preventing the subsequent    // requests.    gnuPOAManager g = new gnuPOAManager();    g.state = State.INACTIVE;    m_manager = g;    // Disconnect from parent.    if (parent instanceof gnuPOA)      {        ((gnuPOA) parent).children.remove(this);      }    unregisterFromManager();    // Disconnect from the ORB all objects, registered with this POA.    ArrayList keys = new ArrayList();    keys.addAll(aom.keySet());    byte[] key;    activeObjectMap.Obj obj;    for (int i = 0; i < keys.size(); i++)      {        key = (byte[]) keys.get(i);        obj = aom.get(key);        if (obj.poa == this)          m_orb.disconnect(obj.object);      }    m_orb.identityDestroyed(this);    if (etherealize_objects && servant_activator != null && !m_inDestruction)      {        etherealizeAll();      }    m_inDestruction = true;    POA[] ch = the_children();    for (int i = 0; i < ch.length; i++)      {        ch [ i ].destroy(etherealize_objects, wait_for_completion);      }  }