public void run() {
    setRunning(true);
    try {
      addInfo("listening on " + listener);
      while (!Thread.currentThread().isInterrupted()) {
        T client = listener.acceptClient();
        if (!configureClient(client)) {
          addError(client + ": connection dropped");
          client.close();
          continue;
        }
        try {
          executor.execute(new ClientWrapper(client));
        }
        catch (RejectedExecutionException ex) {
          addError(client + ": connection dropped");
          client.close();
        }
      }
    }
    catch (InterruptedException ex) {
      assert true;  // ok... we'll shut down
    }
    catch (Exception ex) {
      addError("listener: " + ex);
    }

    setRunning(false);
    addInfo("shutting down");
    listener.close();
  }
public void run ( ) { setRunning ( true ) ; try { addInfo ( "listening on " + listener ) ; while ( ! Thread . currentThread ( ) . isInterrupted ( ) ) { T client = listener . acceptClient ( ) ; if ( ! configureClient ( client ) ) { addError ( client + ": connection dropped" ) ; client . close ( ) ; continue ; } try { executor . execute ( new ClientWrapper ( client ) ) ; } catch ( RejectedExecutionException ex ) { addError ( client + ": connection dropped" ) ; client . close ( ) ; } } } catch ( InterruptedException ex ) { assert true ; } catch ( Exception ex ) { addError ( "listener: " + ex ) ; } setRunning ( false ) ; addInfo ( "shutting down" ) ; listener . close ( ) ; }
{@inheritDoc}