code: @Override
      public final void run() {
          try {
              this.writer = new PrintWriter(this.clientSocket.getOutputStream());
              this.reader = new BufferedReader(new InputStreamReader(this.clientSocket.getInputStream()));
  
              this.sendGreetings();
  
              while (!this.quit) {
                  this.handleCommand();
              }
  
              //this.clientSocket.close();
          } catch (final Exception e) {
              LOGGER.log(Level.SEVERE, "Error", e);
          } finally {
              try {
                  if (this.clientSocket != null)
                      this.clientSocket.close();
              } catch (final IOException ioe) {
                  LOGGER.log(Level.SEVERE, "Error", ioe);
              }
          }
      }
docs: {@inheritDoc}