code: public void     start() throws Exception
      {
          log.debug("Starting");
  
          if ( !started.compareAndSet(false, true) )
          {
              IllegalStateException ise = new IllegalStateException("Already started");
              throw ise;
          }
  
          state.start();
      }
docs: Must be called after construction
  
  @throws IOException errors