code: protected <X extends MessageDispatcher> X installUpHandler(UpHandler handler, boolean canReplace) {
          UpHandler existing = channel.getUpHandler();
          if (existing == null)
              channel.setUpHandler(handler);
          else if(canReplace) {
              log.warn("Channel already has an up handler installed (%s) but now it is being overridden", existing);
              channel.setUpHandler(handler);
          }
          return (X)this;
      }
docs: Sets the given UpHandler as the UpHandler for the channel. If the relevant handler is already installed,
  the {@code canReplace} controls whether this method replaces it (after logging a WARN) or simply
  leaves {@code handler} uninstalled.<p>
  Passing {@code false} as the {@code canReplace} value allows callers to use this method to install defaults
  without concern about inadvertently overriding
  
  @param handler the UpHandler to install
  @param canReplace {@code true} if an existing Channel upHandler can be replaced; {@code false}
  if this method shouldn't install