code: protected void initDebugger() {
          if (reader == null || writer == null) {
              throw new NullPointerException("Reader or writer isn't initialized.");
          }
          // If debugging is enabled, we open a window and write out all network traffic.
          if (debugger != null) {
              // Obtain new reader and writer from the existing debugger
              reader = debugger.newConnectionReader(reader);
              writer = debugger.newConnectionWriter(writer);
          }
      }
docs: Initialize the {@link #debugger}. You can specify a customized {@link SmackDebugger}
  by setup the system property <code>smack.debuggerClass</code> to the implementation.
  
  @throws IllegalStateException if the reader or writer isn't yet initialized.
  @throws IllegalArgumentException if the SmackDebugger can't be loaded.