private void connectNewClients() {
   while (_numActiveClients == 0 && _newClients.size() == 0) {
     try {
       Thread.sleep(100);
     } catch (InterruptedException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
     }
   }
   for (String client : _newClients) {
     //			StockExchangeBroker keyB = _brokers.firstKey();
     //			StockExchangeBroker broker=_brokers.get(keyB);;
     StockExchangeBroker broker = _brokers.pollFirst();
     ;
     if (broker.getNumOfClients() == N) {
       _stockExchangeStompClient.send("/topic/Connected", "connectFailed " + client + "\n");
       _numActiveClients++;
     } else {
       if (broker.getNumOfClients() == 0) _numActiveCBrokers++;
       broker.addClient(client);
       _stockExchangeStompClient.send(
           "/topic/cConnected", "connected " + client + " " + broker.getName() + "\n");
       _stockExchangeStompClient.subscribe("/topic/cDeals-" + client, this);
       _numActiveClients++;
     }
     _brokers.add(broker);
   }
   _newClients.clear();
 }
 private void disconnectClient(String client) {
   for (Company company : _companies.values()) {
     StockOrder order = company.getBuyOrders().get(client);
     while (order != null) { // remove buy orders
       company.getBuyOrders().remove(client);
       order = company.getBuyOrders().get(client);
     }
     order = company.getSellOrders().get(client);
     while (order != null) { // sell buy orders
       company.getSellOrders().remove(client);
       order = company.getSellOrders().get(client);
     }
   }
   _numActiveClients--;
   for (StockExchangeBroker broker : _brokers) broker.removeClient(client);
   //		//_brokers.get(_clients.get(client)).decClientNum(); TODO:
   //		_clients.remove(client);
   _stockExchangeStompClient.unsubscribe("/topic/cDeals-" + client, this);
   _stockExchangeStompClient.send("/topic/cDisconnected", "disconnected " + client + "\n");
 }