code: @Override
  	public void run()
      {
          try
          {
              log.debug("Waiting for clients ["+getName()+"]");
              while (!stopRequired)
              {
                  Socket clientSocket = serverSocket.accept();
                  
                  // Enforce listener capacity
                  int activeClients = getActiveClients();
                  if (activeClients >= listenerCapacity)
                  {
                  	log.warn("Listener is full (max="+listenerCapacity+"), dropping new connection attempt.");
                  	try
                  	{
                  		clientSocket.close();
                  	}
                  	catch (Exception e)
                      {
                          log.error("Cannot close incoming connection",e);
                      }
                  	continue;
                  }
                  
                  String clientId = UUIDProvider.getInstance().getShortUUID();
                  log.debug("Accepting a new client from "+clientSocket.getInetAddress().getHostAddress()+" ("+(activeClients+1)+") : "+clientId+" ["+getName()+"]");
                  try
                  {
                      ClientProcessor processor = createProcessor(clientId,clientSocket);
                      registerClient(processor);
                      processor.start();
                  }
                  catch (Exception e)
                  {
                  	try
                  	{
                  		clientSocket.close();
                  	}
                  	catch (Exception ex)
                  	{
                  		log.error("Could not close socket ["+getName()+"]",ex);
                  	}
                  	
                      log.error("Client failed : "+clientId+" ["+getName()+"]",e);
                  }
              }
          }
          catch (Exception e)
          {
              if (!stopRequired)
                  log.fatal("Server failed ["+getName()+"]",e);
          }
      }
docs: /*
  (non-Javadoc)
  @see net.timewalker.ffmq4.utils.concurrent.SynchronizableThread#run()