code: protected void compareServerMode(Session other) throws ClientException {
  
          if (transferMode != MODE_EBLOCK) {
  
              super.compareServerMode(other);
  
          } else {
              if (serverMode == SERVER_DEFAULT &&
                  other.serverMode == SERVER_DEFAULT) {
  
                  // this is OK
  
              } else {
                  // active and passive side had already been set;
                  // make sure that it has been done correctly.
                  // in mode E, source must be active and dest passive
  
                  if (!((serverMode == SERVER_EACT && other.serverMode == SERVER_EPAS)
                          || (serverMode == SERVER_EPAS && other.serverMode == SERVER_EACT)
                          || (serverMode == SERVER_ACTIVE && other.serverMode == SERVER_PASSIVE) || (serverMode == SERVER_PASSIVE && other.serverMode == SERVER_ACTIVE))) {
                      throw new ClientException(ClientException.BAD_SERVER_MODE,
                              "One server must be active"
                                      + " and other must be passive");
                  }
              }
          }
      }
docs: called by inherited matches() method