finally { CollocatedOrbs.unregisterOrb(this); } }
  public void run()  {    running = true;    // Instantiate the port server for each socket.    Iterator iter = connected_objects.entrySet().iterator();    Map.Entry m;    Connected_objects.cObject obj;    while (iter.hasNext())      {        m = (Map.Entry) iter.next();        obj = (Connected_objects.cObject) m.getValue();        portServer subserver;        if (obj.identity == null)          {            subserver = new portServer(obj.port);            portServers.add(subserver);          }        else          subserver = (portServer) identities.get(obj.identity);                if (!subserver.isAlive())          {            // Reuse the current thread for the last portServer.            if (!iter.hasNext())              {                // Discard the iterator, eliminating lock checks.                iter = null;                subserver.run();                return;              }            else              subserver.start();          }      }  }