code: public boolean failAndRecycle(Throwable cause) {
          ReferenceCountUtil.release(msg);
          if (promise != null) {
              promise.setFailure(cause);
          }
          return recycle();
      }
docs: Fails the underlying {@link Promise} with the given cause and recycle this instance.