public static CmdlineRemoteProto.Message.Failure createFailure(@Nls(capitalization = Nls.Capitalization.Sentence) String description, @Nullable Throwable cause) {
    final CmdlineRemoteProto.Message.Failure.Builder builder = CmdlineRemoteProto.Message.Failure.newBuilder();
    if (description != null) {
      builder.setDescription(description);
    }
    if (cause != null) {
      final ByteArrayOutputStream baos = new ByteArrayOutputStream();
      try (PrintStream stream = new PrintStream(baos)) {
        cause.printStackTrace(stream);
      }
      final String stacktrace = new String(baos.toByteArray(), StandardCharsets.UTF_8);
      builder.setStacktrace(stacktrace);
      if (description == null) {
        builder.setDescription(stacktrace);
      }
    }
    return builder.build();
  }
public static CmdlineRemoteProto.Message.Failure createFailure(@Nls(capitalization = Nls.Capitalization.Sentence) String description, @Nullable Throwable cause)